CRX2Oak è uno strumento progettato per migrare i dati tra diversi repository.
Può essere utilizzato per migrare i dati dalle versioni precedenti di CQ basate su Apache Jackrabbit 2 a Oak e può essere utilizzato anche per copiare i dati tra i repository Oak.
È possibile scaricare la versione più recente di crx2oak dall'archivio pubblico Adobe in questa posizione:
https://repo.adobe.com/nexus/content/groups/public/com/adobe/granite/crx2oak/
L'elenco delle modifiche e delle correzioni per la versione più recente è disponibile nelle Note sulla versione di CRX2Oak.
Per ulteriori informazioni su Apache Oak e sui concetti chiave della persistenza AEM, vedere Introduzione alla piattaforma AEM.
Lo strumento può essere utilizzato per:
Il supporto per la migrazione dei repository tramite store Blob esterni (comunemente noti come Data Store) è fornito in diverse combinazioni. Un possibile percorso di migrazione è da un repository CRX2 che utilizza un FileDataStore
esterno a un repository Oak utilizzando un S3DataStore
.
Il diagramma seguente illustra tutte le possibili combinazioni di migrazione supportate da CRX2Oak:
CRX2Oak viene chiamato durante AEM aggiornamenti in modo che l'utente possa specificare un profilo di migrazione predefinito che automatizza la riconfigurazione delle modalità di persistenza. Questa è chiamata modalità di avvio rapido.
Può anche essere eseguito separatamente nel caso in cui richieda una maggiore personalizzazione. Tuttavia, in questa modalità le modifiche vengono apportate solo al repository e ogni ulteriore riconfigurazione di AEM deve essere eseguita manualmente. Questa modalità è detta modalità standalone.
Un'altra cosa da notare è che con le impostazioni predefinite in modalità standalone, verrà migrato solo il Node Store e il nuovo repository riutilizzerà il vecchio archivio binario.
Dalla AEM 6.3, CRX2Oak è in grado di gestire i profili di migrazione definiti dall'utente che possono essere configurati con tutte le opzioni di migrazione già disponibili. Ciò consente sia una maggiore flessibilità, sia la possibilità di automatizzare la configurazione di AEM, funzioni non disponibili se si utilizza lo strumento in modalità standalone.
Per passare da CRX2Oak alla modalità QuickStart è necessario definire il percorso della cartella crx-quickstart nella directory di installazione AEM tramite questa variabile ambientale del sistema operativo:
Per sistemi basati su UNIX e macOS:
export SLING_HOME="/path/to/crx-quickstart"
Per Windows:
SET "SLING_HOME=/path/to/crx-quickstart"
La migrazione può essere interrotta in qualsiasi momento, con la possibilità di riprenderla successivamente.
La logica Java personalizzata può essere implementata anche utilizzando CommitHooks
. È possibile implementare classi RepositoryInitializer
personalizzate per inizializzare l'archivio con valori personalizzati.
CRX2Oak supporta anche le operazioni di mappatura della memoria per impostazione predefinita. La mappatura della memoria migliora notevolmente le prestazioni e dovrebbe essere utilizzata quando possibile.
Tuttavia, le operazioni mappate sulla memoria non sono supportate per le piattaforme Windows. Pertanto, è consigliabile aggiungere il parametro —disable-mmap quando si esegue la migrazione in Windows.
Per impostazione predefinita, lo strumento esegue la migrazione dell’intero repository sotto il percorso "/"
. Tuttavia, avete il controllo completo sul contenuto da migrare.
Se nella nuova istanza è presente una parte del contenuto non necessaria, potete utilizzare il parametro --exclude-path
per escludere il contenuto e ottimizzare la procedura di aggiornamento.
Se i dati devono essere copiati tra due repository e si dispone di un percorso di contenuto diverso su entrambe le istanze, è possibile definirlo nel parametro --merge-path
. Una volta fatto, CRX2Oak copierà solo i nuovi nodi nel repository di destinazione e manterrà quelli vecchi in posizione.
Per impostazione predefinita, AEM creare una versione di ciascun nodo o pagina che viene modificato e memorizzarla nella directory archivio. Le versioni possono quindi essere utilizzate per ripristinare lo stato precedente della pagina.
Tuttavia, queste versioni non vengono mai eliminate anche se la pagina originale viene eliminata. Quando si gestiscono repository che sono in funzione da molto tempo, la migrazione potrebbe dover elaborare molti dati ridondanti causati dalle versioni orfane.
Una caratteristica utile per questi tipi di situazioni è l'aggiunta del parametro --copy-versions
. Può essere utilizzato per saltare i nodi di versione durante la migrazione o la copia di un repository.
È inoltre possibile scegliere se copiare le versioni orfane aggiungendo --copy-orphaned-versions=true
.
Entrambi i parametri supportano anche un formato di data YYYY-MM-DD
, nel caso in cui si desideri copiare le versioni entro una data specifica.
Una versione open source di CRX2Oak è disponibile sotto forma di aggiornamento della quercia. Supporta tutte le funzioni tranne:
Per ulteriori informazioni, vedere la documentazione Apache.
--cache
: Dimensione cache in MB (impostazione predefinita: 256
)
--mmap
: Abilita l'accesso ai file mappati di memoria per l'archivio segmenti
--src-password:
Password per il database RDB di origine
--src-user:
Utente per l'RDB di origine
--user
: Utente per il RDB di destinazione
--password
: Password per il RDB di destinazione.
--early-shutdown
: Chiude l'archivio JCR2 di origine dopo che i nodi vengono copiati e prima che vengano applicati i ganci di commit
--fail-on-error
: Impone un errore di migrazione se i nodi non possono essere letti dall'archivio di origine.
--ldap
: Consente di migrare gli utenti LDAP da un’istanza CQ 5.x a una basata su Oak. Affinché questo funzioni, il provider di identità nella configurazione Oak deve essere denominato ldap. Per ulteriori informazioni, consultate la documentazione LDAP.
--ldap-config:
Utilizzate questo insieme al --ldap
parametro per i repository CQ 5.x che utilizzavano più server LDAP per l’autenticazione. È possibile utilizzarlo per puntare ai file di configurazione CQ 5.x ldap_login.conf
o jaas.conf
. Il formato è --ldapconfig=path/to/ldap_login.conf
.
--copy-orphaned-versions
: Ignora la copia delle versioni isolate. I parametri supportati sono: true
, false
e yyyy-mm-dd
. Impostazione predefinita true
.
--copy-versions:
Copia l'archivio delle versioni. Parametri: true
, false
, yyyy-mm-dd
. Impostazione predefinita true
.
--include-paths:
Elenco di percorsi separati da virgola da includere durante la copia--merge-paths
: Elenco di percorsi da unire separati da virgole durante la copia--exclude-paths:
Elenco di percorsi da escludere durante la copia separati da virgole.--src-datastore:
La directory del datastore da utilizzare come origine FileDataStore
--src-fileblobstore
: La directory del datastore da utilizzare come origine FileBlobStore
--src-s3datastore
: La directory del datastore da utilizzare per l'origine S3DataStore
--src-s3config
: Il file di configurazione per l'origine S3DataStore
.
--datastore:
La directory del datastore da utilizzare come destinazione FileDataStore
--fileblobstore:
La directory del datastore da utilizzare come destinazione FileBlobStore
--s3datastore
: La directory del datastore da utilizzare per la destinazione S3DataStore
--s3config
: Il file di configurazione per la destinazione S3DataStore
.
-?, -h, --help:
Visualizza le informazioni della guida.Potete inoltre abilitare le informazioni di debug per il processo di migrazione al fine di risolvere eventuali problemi che potrebbero verificarsi durante il processo. È possibile eseguire questa operazione in modo diverso a seconda della modalità in cui si desidera eseguire lo strumento:
Modalità CRX2Oak | Azione |
Modalità Quickstart | Durante l'esecuzione di CRX2Oak, è possibile aggiungere alla riga di comando le opzioni —log-level TRACE o —log-level DEBUG . In questa modalità i registri vengono reindirizzati automaticamente al file upgrade.log. |
Modalità indipendente | Aggiungete le opzioni —trace alla riga di comando CRX2Oak per visualizzare gli eventi TRACE sull'output standard (è necessario reindirizzare i file di registro utilizzando il carattere di reindirizzamento: '>' o 'tee' per un'ispezione successiva). |
Durante la migrazione a un set di repliche MongoDB, assicurarsi di impostare il parametro WriteConcern
su 2
su tutte le connessioni ai database Mongo.
A questo scopo, aggiungete il parametro w=2
alla fine della stringa di connessione, come segue:
java -Xmx4092m -XX:MaxPermSize=1024m -jar crx2oak.jar crx-quickstart/repository/ mongodb://localhost:27017/aem-author?replicaset=replica1&w=2
Per ulteriori informazioni, vedere la documentazione relativa alla stringa di connessione MongoDB in Write Concerns.