Utilizzo dei file di log di ripetizione del database Oracle

Database Migration Service utilizza l'API Oracle LogMiner, che fa parte di Oracle Database, per eseguire query sui file di redo log archiviati. Questi file contengono informazioni sulla cronologia delle attività di un database. Ogni database Oracle ha un insieme di file di redo log online. Tutti i record delle transazioni nel database vengono registrati nei file.

Quando il file di redo log corrente viene ruotato (o cambiato), il processo di archiviazione copia questo file in uno spazio di archiviazione di 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 redo log online, ma funziona solo con i file di log archiviati. L'accesso ai file di redo log archiviati aggiunge intrinsecamente una certa latenza al processo di migrazione. Questa pagina descrive la configurazione suggerita per i database di origine Oracle per controllare l'impatto della latenza.

Impostare i parametri di configurazione per i file di redo log di Oracle

Questo design ha implicazioni profonde sulla potenziale latenza di Database Migration Service. Se i file di redo log di Oracle vengono cambiati di frequente o mantenuti di dimensioni ridotte (ad esempio, < 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 di log:

  • Dimensioni: i file di redo log 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 ed eliminando i file di log precedenti.

    Per trovare le dimensioni dei file di redo log online, esegui la seguente query:

    SELECT GROUP#, STATUS, BYTES/1024/1024 MB FROM V$LOG
  • Ora: il parametro ARCHIVE_LAG_TARGET fornisce un limite massimo di tempo (in secondi) per cui può estendersi il log corrente del database primario.

    Questo non è l'orario esatto di cambio del log, perché tiene conto del tempo necessario per archiviare il log. Il valore predefinito è 0 (nessun limite superiore), ed è consigliabile un valore ragionevole di 1800 (o 30 minuti) o inferiore.

    Puoi utilizzare i seguenti comandi per impostare il parametro ARCHIVE_LAG_TARGET, durante l'inizializzazione o mentre il database è attivo:

    • SHOW PARAMETER ARCHIVE_LAG_TARGET; Questo comando mostra quanti secondi saranno necessari per l'estensione del 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 a 10 minuti (o 600 secondi), inserisci ALTER SYSTEM SET ARCHIVE_LAG_TARGET = 600;