Per visualizzare correttamente questo contenuto, è necessario abilitare JavaScript
Esegui la migrazione di MongoDB a Oracle Database senza tempi di inattività
Scopri come utilizzare OCI GoldenGate per MongoDB in Oracle Database senza tempi di inattività.
OCI GoldenGate Big Data supporta le migrazioni da MongoDB e MongoDB Atlas a Oracle Autonomous JSON Database, Oracle Autonomous Database e Oracle Database senza tempi di inattività. Autonomous JSON Database e Oracle Autonomous Database sono dotati di stringhe di connessione Oracle API per MongoDB preconfigurate che OCI GoldenGate utilizza per connettersi ai sistemi Oracle Database di destinazione. Per ulteriori informazioni, vedere Using Oracle Database API for MongoDB. Se la tua destinazione è un Oracle Database on-premise, puoi utilizzare i servizi di dati Oracle Rest per abilitare Oracle Database API for MongoDB con Oracle Database on-premise.
Prima di iniziare
Per completare correttamente questo avvio rapido, assicurarsi di avere:
MongoDB Strumenti di database, tra cui mongodump e mongostore, installati e i rispettivi percorsi di directory aggiunti alla variabile di ambiente PATH
Impostare ed eseguire la migrazione
Nella utility di dump MongoDB di origine eseguire la utility di dump MongoDB.
Eseguire mongodump con l'opzione --oplog per creare uno snapshot del database MongoDB di origine:
<date+timestamp> getting most recent oplog timestamp
<date+timestamp> writing admin.system.version to dump/admin/system.version.bson
<date+timestamp> done dumping admin.system.version (1 document)
<date+timestamp> dumping up to 4 collections in parallel
<date+timestamp> writing testDB.coll1 to dump/testDB/coll1.bson
<date+timestamp> writing testDB.coll2 to dump/testDB/coll2.bson
<date+timestamp> writing testDB.coll3 to dump/testDB/coll3.bson
<date+timestamp> done dumping testDB.coll3 (10000 documents)
<date+timestamp> done dumping testDB.coll1 (10000 documents)
<date+timestamp> done dumping testDB.coll2 (10000 documents)
<date+timestamp> writing captured oplog to
<date+timestamp> dumped 7 oplog entries
Questa operazione genera una cartella di dump contenente il file di dati dell'archivio binario per tutti i database e le raccolte nella seguente posizione:
Eseguire lo script OplongLSN.sh nell'origine MongoDB nella stessa directory in cui si trova mongodump, passando la posizione a oplog.bson come argomento come indicato di seguito.
$./oplogLSN.sh /path/to/dump/oplog.bson
Il comando restituisce quanto segue:
<date+timestamp> 1 objects found
First LSN: 1740663867.1
Last LSN: 1740663946.211
Ispezionare le voci Oplog. Se durante il dump sono state eseguite operazioni in entrata, il file oplog.bson contiene voci per tali operazioni, ognuna con un indicatore orario. È possibile utilizzare OplogLSN.sh per acquisire gli indicatori orari della prima e dell'ultima operazione oppure convertirli in un file JSON per l'ispezione manuale, come mostrato nel passo precedente.
Eseguire la utility di ripristino MongoDB. Utilizzare la utility mongorestore per ripristinare le raccolte selezionate dal dump nell'istanza di destinazione MongoDB:
<date+timestamp> using write concern: &{majority <nil> 0s}
<date+timestamp> using default 'dump' directory
<date+timestamp> preparing collections to restore from
<date+timestamp> found collection admin.system.version bson to restore to admin.system.version
<date+timestamp> found collection metadata from admin.system.version to restore to admin.system.version
<date+timestamp> don't know what to do with file "dump/oplog.json", skipping...
<date+timestamp> found collection testDB.coll1 bson to restore to testDB.coll1
<date+timestamp> found collection metadata from testDB.coll1 to restore to testDB.coll1
<date+timestamp> found collection testDB.coll2 bson to restore to testDB.coll2
<date+timestamp> found collection metadata from testDB.coll2 to restore to testDB.coll2
<date+timestamp> reading metadata for testDB.coll1 from dump/testDB/coll1.metadata.json
<date+timestamp> reading metadata for testDB.coll2 from dump/testDB/coll2.metadata.json
<date+timestamp> creating collection testDB.coll1 with no metadata
<date+timestamp> creating collection testDB.coll2 with no metadata
<date+timestamp> restoring testDB.coll1 from dump/testDB/coll1.bson
<date+timestamp> restoring testDB.coll2 from dump/testDB/coll2.bson
<date+timestamp> finished restoring testDB.coll1 (10000 documents, 0 failures)
<date+timestamp> finished restoring testDB.coll2 (10000 documents, 0 failures)
<date+timestamp> no indexes to restore for collection testDB.coll1
<date+timestamp> no indexes to restore for collection testDB.coll2
<date+timestamp> 20000 document(s) restored successfully. 0 document(s) failed to restore.
Il comando ripristina le definizioni di dati, metadati e indice per la raccolta specificata nell'istanza MongoDB/ORDS di destinazione. Ad esempio, coll1 e coll2 nel database testDB come mostrato nell'output precedente.
Creare ed eseguire un'estrazione CDC (Change Data Capture) nella distribuzione Big Data di origine per MongoDB. Avviare l'estrazione CDC MongoDB dall'indicatore orario della prima operazione (primo LSN) ottenuto nel passo 2b. In questo modo, CDC Extract acquisisce le operazioni che si verificano dopo l'avvio del processo di dump.
Utilizzare il file trail CDC generato dal passo 4.
Impostare oplongReplayLastLsn sull'indicatore orario dell'ultima operazione (Ultimo LSN) ottenuto nel passo 2b oppure il percorso a oplog.bson e l'ultimo LSN viene ottenuto automaticamente. Ciò garantisce che Replicat venga eseguito in modalità oplong-replay, evitando collisioni e garantendo un avvio preciso senza perdita o duplicazione di dati. Dopo l'elaborazione dell'ultimo indicatore orario, Replicat continua in modalità normale.
Suggerimenti
Ecco alcuni suggerimenti per garantire che la migrazione vada senza problemi:
Si consiglia di utilizzare mongodb-database-tools versione 100.10.0 o successiva.
Prima di eseguire mongodump, eseguire il cleanup della cartella di dump esistente per eliminare i dati incoerenti.
Ripristino MongoDB: è possibile replicare più raccolte di un database utilizzando più opzioni --nsInclude nel comando mongorestore. Tuttavia, non è possibile ripristinare più database ORDS utilizzando comandi --nsInclude multipli. È necessario utilizzare più comandi di ripristino, uno per ogni database da ripristinare.