Database Migration Service sfrutta l'API Oracle LogMiner, che fa parte di Oracle Database, per eseguire query sui file di log di ripetizione archiviati. Questi file contengono informazioni sulla cronologia dell'attività su un database. Ogni database Oracle ha un insieme di file di log di ripetizione online. Tutti i record delle transazioni nel database vengono registrati nei file.
Quando il file di log di ripristino corrente viene ruotato (o commutato), il processo di archiviazione copia questo file in uno spazio di archiviazione dell'archivio. Nel frattempo, il database promuove un altro file come file corrente.
Quando Database Migration Service utilizza l'API Oracle LogMiner, non accede ai file di log di ripetizione online, ma funziona solo con i file di log archiviati. L'accesso ai file di log di ripetizione archiviati aggiunge inevitabilmente un po' di latenza al processo di migrazione. Questa pagina descrive la configurazione consigliata per i database di origine Oracle per controllare l'impatto della latenza.
Impostare i parametri di configurazione per i file di log di ripetizione di Oracle
Questo design ha implicazioni profonde sulla potenziale latenza di Database Migration Service. Se i file di log di ripetizione di Oracle vengono modificati di frequente o mantenuti di dimensioni ridotte (ad esempio, inferiori a 256 MB), Database Migration Service può replicare le modifiche più rapidamente.
Esistono parametri di configurazione che puoi impostare per controllare la frequenza di rotazione dei file log:
Dimensioni: i file di log di ripetizione online hanno una dimensione minima di 4 MB e la dimensione predefinita dipende dal sistema operativo. Puoi modificare le dimensioni dei file di log creando nuovi file di log online e eliminando quelli meno recenti.
Per trovare le dimensioni dei file di log di ripetizione online, esegui la seguente query:
SELECT GROUP#, STATUS, BYTES/1024/1024 MB FROM V$LOG
- Ora:il parametro
ARCHIVE_LAG_TARGET
fornisce un limite superiore per la durata (in secondi) del log corrente del database principale.Non si tratta del momento esatto del passaggio del log, perché viene preso in considerazione il tempo necessario per archiviare il log. Il valore predefinito è
0
(nessun limite superiore) e viene suggerito un valore ragionevole pari o inferiore a1800
(30 minuti).Puoi utilizzare i seguenti comandi per impostare il parametro
ARCHIVE_LAG_TARGET
durante l'inizializzazione o quando il database è attivo:SHOW PARAMETER ARCHIVE_LAG_TARGET;
Questo comando mostra quanti secondi occorreranno per completare il log corrente.ALTER SYSTEM SET ARCHIVE_LAG_TARGET = number-of-seconds;
Utilizza questo comando per modificare il limite superiore.Ad esempio, per impostare il limite superiore su 10 minuti (o 600 secondi), inserisci
ALTER SYSTEM SET ARCHIVE_LAG_TARGET = 600;