Esegui la migrazione di MongoDB a Oracle AI Database senza tempi di inattività
Scopri come utilizzare OCI GoldenGate per MongoDB in Oracle AI Database senza tempi di inattività.
OCI GoldenGate Big Data supporta le migrazioni da MongoDB e MongoDB Atlas alle destinazioni seguenti senza tempi di inattività:
-
Oracle Autonomous AI JSON Database
-
Oracle Autonomous AI Database
-
Oracle AI Database
Autonomous AI JSON Database e Autonomous AI Database sono dotati di Oracle API preconfigurata per le stringhe di connessione MongoDB utilizzate da OCI GoldenGate per connettersi AI sistemi Oracle AI Database di destinazione. Per ulteriori informazioni, vedere Using Oracle AI Database API for MongoDB.
Se la tua destinazione è un Oracle AI Database on-premise, puoi utilizzare i servizi di dati Oracle Rest per abilitare Oracle AI Database API for MongoDB con Oracle AI Database on-premise.
Prima di iniziare
Per completare correttamente questo avvio rapido, assicurarsi di avere:
-
Un'origine MongoDB, versione 5 o successiva
-
Creazione di una distribuzione Big Data OCI GoldenGate, versione 23.7 o successiva
-
Strumenti di database MongoDB, inclusi mongodump e mongostore, installati e i rispettivi percorsi di directory aggiunti alla variabile di ambiente PATH
Impostare ed eseguire la migrazione
-
In MongoDB di origine, eseguire MongoDB Dump Utility.
-
Eseguire
mongodumpcon l'opzione--oplogper creare uno snapshot del database MongoDB di origine:$ ./bin/mongodump --uri="mongodb://localhost:27021" --oplog -vIl comando restituisce quanto segue:
<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 entriesQuesta operazione genera una cartella di dump contenente il file di dati dell'archivio binario per tutti i database e le raccolte nella seguente posizione:
dump/database-name/collection-name/collection-name.bsonCrea anche un
oplog.bsondirettamente nella cartella di dump. -
Per ispezionare il contenuto del file
oplog.bson(che è in formato binario), è possibile convertirlo in JSON utilizzando l'utilità bsondump:$ ./bin/bsondump --pretty --outFile /path/to/oplog.json dump/oplog.bsonIl comando restituisce quanto segue:
<date+timestamp> 7 objects found
-
-
Estrai gli indicatori orari della prima e dell'ultima operazione da
oplong.bson:-
Eseguire lo script OplongLSN.sh nel MongoDB di origine nella stessa directory in cui si trova
mongodump, passando la posizione aoplog.bsoncome argomento come indicato di seguito.$./oplogLSN.sh /path/to/dump/oplog.bsonIl 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.bsoncontiene le voci per tali operazioni, ognuna con un indicatore orario. È possibile utilizzareOplogLSN.shper acquisire gli indicatori orari della prima e dell'ultima operazione o convertirli in un file JSON per l'ispezione manuale, come mostrato nel passo precedente.
-
Eseguire la utility di ripristino MongoDB. Utilizzare la utility
mongorestoreper ripristinare le raccolte selezionate dal dump all'istanza MongoDB di destinazione:$ ./mongorestore --uri="mongodb://localhost:27021" --nsInclude=testDB.coll1 --nsInclude=testDB.coll2 /path/to/dump -vIl comando restituisce quanto segue:
<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 in 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 dal primo indicatore orario dell'operazione (primo LSN) ottenuto nel passo 2b. Ciò garantisce che CDC Extract acquisisca le operazioni che si verificano dopo l'avvio del processo di dump.
-
Creare ed eseguire una replica MongoDB.
-
Utilizzare il file trail CDC generato dal passo 4.
-
Impostare
oplongReplayLastLsnsull'indicatore orario dell'ultima operazione (Ultima LSN) ottenuto al passo 2b oppure il percorso aoplog.bsone 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-toolsversione 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
--nsIncludenel comandomongorestore. Tuttavia, non è possibile ripristinare più database ORDS utilizzando più comandi--nsInclude. È necessario utilizzare più comandi di ripristino, uno per ogni database da ripristinare.