CRX2Oak è uno strumento progettato per migrare i dati tra archivi diversi.
Può essere utilizzato per migrare i dati dalle versioni precedenti di CQ basate su Apache Jackrabbit 2 a Oak e può anche essere utilizzato per copiare i dati tra archivi Oak.
Puoi scaricare la versione più recente di crx2oak dall'archivio pubblico di 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 si trova nelle Note sulla versione CRX2Oak.
Per ulteriori informazioni su Apache Oak e sui concetti chiave della persistenza AEM, consulta Introduzione alla piattaforma AEM.
Lo strumento può essere utilizzato per:
Il supporto per la migrazione degli archivi tramite Blob Store esterni (comunemente noti come Data Store) è fornito in diverse combinazioni. Un possibile percorso di migrazione è da un archivio CRX2 che utilizza un FileDataStore
esterno a un archivio Oak utilizzando un S3DataStore
.
Il diagramma seguente illustra tutte le possibili combinazioni di migrazione supportate da CRX2Oak:
CRX2Oak viene chiamato durante gli aggiornamenti AEM in un modo in cui l'utente può specificare un profilo di migrazione predefinito che automatizza la riconfigurazione delle modalità di persistenza. Si chiama modalità quickstart .
Può anche essere eseguito separatamente nel caso in cui richieda una maggiore personalizzazione. Tuttavia, in questa modalità le modifiche vengono apportate solo all’archivio e ogni ulteriore riconfigurazione di AEM deve essere eseguita manualmente. Si chiama modalità autonoma.
Un'altra cosa da notare è che con le impostazioni predefinite in modalità autonoma, verrà effettuata la migrazione solo del Node Store e il nuovo archivio riutilizzerà il vecchio archivio binario.
A partire dalla versione 6.3 di AEM, CRX2Oak è in grado di gestire 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 che non sono disponibili se si utilizza lo strumento in modalità autonoma.
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 mappate in memoria per impostazione predefinita. La mappatura della memoria migliora notevolmente le prestazioni e deve essere utilizzata quando possibile.
Tuttavia, le operazioni mappate in memoria non sono supportate per le piattaforme Windows. Pertanto, si consiglia di aggiungere il parametro —disable-mmap quando si esegue la migrazione su Windows.
Per impostazione predefinita, lo strumento esegue la migrazione dell’intero archivio sotto il percorso "/"
. Tuttavia, hai il controllo completo sul contenuto da migrare.
Se nella nuova istanza è presente una parte del contenuto non necessaria, puoi utilizzare il parametro --exclude-path
per escludere il contenuto e ottimizzare la procedura di aggiornamento.
Se i dati devono essere copiati tra due archivi e si dispone di un percorso di contenuto diverso in entrambe le istanze, è possibile definirli nel parametro --merge-path
. Una volta fatto, CRX2Oak copierà solo i nuovi nodi nell'archivio di destinazione e manterrà quelli vecchi al posto.
Per impostazione predefinita, AEM creerà una versione di ogni nodo o pagina che viene modificato e la memorizzerà nell'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 gestisci archivi che sono in funzione da molto tempo, la migrazione potrebbe dover elaborare molti dati ridondanti causati da versioni orfane.
Una funzione 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 archivio.
Puoi anche scegliere di 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 oak-upgrade. Supporta tutte le funzioni eccetto:
Per ulteriori informazioni, consulta la Documentazione Apache .
--cache
: Dimensione della cache in MB (il valore predefinito è 256
)
--mmap
: Abilita l'accesso ai file mappati in memoria per l'archivio segmenti
--src-password:
Password per il database RDB di origine
--src-user:
Utente per il database 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 la copia dei nodi e prima che vengano applicati gli hook di commit
--fail-on-error
: Forza un errore di migrazione se i nodi non possono essere letti dall'archivio di origine.
--ldap
: Esegue la migrazione degli 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, consulta la documentazione LDAP.
--ldap-config:
Utilizza questo insieme al --ldap
parametro per gli archivi CQ 5.x che hanno utilizzato più server LDAP per l'autenticazione. Puoi 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 orfane. 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 da includere durante la copia separati da virgole--merge-paths
: Elenco dei percorsi da unire separati da virgole durante la copia--exclude-paths:
Elenco di percorsi da escludere durante la copia separati da virgole.--src-datastore:
Directory del datastore da utilizzare come origine FileDataStore
--src-fileblobstore
: Directory del datastore da utilizzare come origine FileBlobStore
--src-s3datastore
: Directory del datastore da utilizzare per la sorgente S3DataStore
--src-s3config
: Il file di configurazione per l'origine S3DataStore
.
--datastore:
Directory del datastore da utilizzare come destinazione FileDataStore
--fileblobstore:
Directory del datastore da utilizzare come destinazione FileBlobStore
--s3datastore
: 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.È inoltre possibile abilitare le informazioni di debug per il processo di migrazione al fine di risolvere eventuali problemi che potrebbero verificarsi durante il processo. Puoi eseguire questa operazione in modo diverso a seconda della modalità in cui desideri eseguire lo strumento:
Modalità CRX2Oak | Azione |
Modalità Quickstart | È possibile aggiungere le opzioni —TRACE a livello di registro o —DEBUG a livello di registro alla riga di comando durante l'esecuzione di CRX2Oak. In questa modalità i registri vengono automaticamente reindirizzati al file upgrade.log. |
Modalità autonoma | Aggiungi le opzioni —trace alla riga di comando CRX2Oak per visualizzare gli eventi TRACE sull'output standard (è necessario reindirizzare i registri manualmente utilizzando il carattere di reindirizzamento: comando '>' 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.
Per farlo, aggiungi il parametro w=2
alla fine della stringa di connessione, come riportato di seguito:
java -Xmx4092m -XX:MaxPermSize=1024m -jar crx2oak.jar crx-quickstart/repository/ mongodb://localhost:27017/aem-author?replicaset=replica1&w=2
Per ulteriori informazioni, consulta la documentazione di MongoDB Connection String su Write Concerns.