Pour différentes raisons (par exemple pour une consolidation d'infrastructure), il peut s'avéré judicieux de migrer des données binaires existantes stockées dans un DataStore [1] vers un autre. Comment effectuer une migration ?
Actuellement, il n’existe aucun outil disponible pour la migration DataStore. Cependant, elle peut être facilement réalisée avec l'aide d'une instance CRX temporaire montée via WebDAV [2]. L’exemple suivant indique comment migrer des fichiers binaires d’un FileDataStore vers un DbDataStore.
Remarque : cette procédure doit être testée et vérifiée sur une instance de test avant l'application sur une instance de production.
La première étape consiste à configurer une deuxième instance CRX temporaire unique avec une banque de données basée sur DB (DbDataStore) configurée :
crx-xxx-quickstart.jar
et license.properties
à un emplacement temporaire, par exemple /tmp/crx_dbdatastore
Jar java- crx-xxx-quickstart.jar -unpack
crx-quickstart/server/webapps
crx-explorer_crx
: unzip -d crx-explorer_crx crx-explorer_crx.war
crx-explorer_crx.war
repository.xml
La configuration DataStore doit être adaptée à l’implémentation de DbDataStore, par exemple :
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore"> <param name="url" value="jdbc:h2:~/test" /> <param name="user" value="sa" /> <param name="password" value="sa" /> <param name="databaseType" value="h2" /> <param name="driver" value="org.h2.Driver" <param name="maxConnections" value="3"/> <param name="copyWhenReading" value="true"/> <param name="tablePrefix" value=""/> <param name="schemaObjectPrefix" value=""/> <param name="minRecordLength" value="4096"/> </DataStore>
Une fois ceci terminé :
crx-explorer_crx/WEB-INF/lib
crx-explorer_crx
de crx-explorer_crx.war
Au cours de l’installation, CRX créera un certain nombre de fichiers binaires dans le référentiel qui doivent être stockés dans la base de données configurée. Vérifiez qu’il fonctionne correctement.
L'étape suivante consiste à installer l'instance CRX temporaire via WebDAV [2] sur le serveur hébergeant l'instance CRX actuelle. Dans cet exemple, le point de montage WebDAV /tmp/crxwebdav
est utilisé.
Le FileDataStore conserve des fichiers binaires par défaut dans <crx_home>/crx-quickstart/repository/shared/repository/datastore
en utilisant le hachage du contenu d'un fichier en tant que nom de fichier. Copier ceci sur le CRX temporaire avec DbDataStore configuré créera les mêmes binaires avec les mêmes codes de hachage et pourra donc être réutilisé plus tard.
Copiez régulièrement tous les fichiers et dossiers sur le point de montage WebDAV :
cd <crx_home> cp -Rv crx-quickstart/repository/shared/repository/datastore /tmp/crxwebdav
Selon le contenu binaire, cela peut prendre un certain temps. Dès que l'opération de copie récursive est terminée, vous pouvez également démonter et arrêter l'instance CRX temporaire.
L'étape suivante consiste à modifier la configuration DataStore de l'instance CRX actuelle (repository.xml
) pour utiliser la même configuration DbDataStore que l'instance temporaire. Une fois terminé, démarrez l’instance CRX et vérifiez que les fichiers binaires soient disponibles comme avant.
Une fois la procédure de migration ci-dessus vérifiée, les éléments suivants peuvent être supprimés :
crx-quickstart/repository/shared/repository/datastore
CRX1.3.x, CRX1.4.x, CRX2.x
[1] DataStore
[2] Comment accéder au référentiel via WebDAV
Accéder à votre compte