View a markdown version of this page

Fase 2: fase di roll-forward (il database di origine rimane online) - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Fase 2: fase di roll-forward (il database di origine rimane online)

È possibile ripetere la fase di roll-forward tutte le volte necessarie per caricare il file di dati di destinazione nel database di origine.

La fase di roll-forward consiste nei seguenti passaggi.

  1. Crea un backup incrementale dal database di origine.

  2. Trasferisci il backup sul sistema di destinazione.

  3. Convertire il backup nel formato endian del sistema di destinazione.

  4. Applica il backup alle copie del file di dati di destinazione convertito per eseguirne il rollforward.

Ogni backup incrementale successivo dovrebbe richiedere meno tempo e aggiornerà le copie dei file di dati di destinazione con il database di origine.

Fase 1: Eseguire backup incrementali in parallelo

Effettua backup incrementali dei gruppi di tablespace trasportati sul sistema di origine in parallelo.

Questo passaggio crea backup incrementali per tutti i tablespaces= elencati nel file. xtt.properties

Se è possibile attivare la funzione BLOCK CHANGE TRACKING sul sistema di origine, è possibile ridurre notevolmente il tempo del backup incrementale.

Il comando seguente riconosce automaticamente l'SCN successivo dopo il backup completo.

cd /u01/oracle/expimp/xtt<nn> export TMPDIR=/u01/oracle/expimp/out/out<nn> $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup --debug 3

Passaggio 2: Trasferire i backup incrementali e il file res.txt nel sistema di destinazione

Se disponi di una larghezza di banda sufficiente, puoi ridurre la durata del trasferimento utilizzando. Direct Connect

Trasferisci i backup incrementali tra e. src_scratch_location dest_scratch_location Trasferisci il res.txt file tra $TMPDIR il sistema di origine e $TMPDIR il sistema di destinazione.

Se si eseguono più backup incrementali, il res.txt file deve essere copiato dopo l'ultimo backup incrementale prima di poter essere applicato sul sistema di destinazione.

[source]$ scp $TMPDIR/res.txt oracle@[dest]:/u01/oracle/expimp/out/out<nn> [source]$ scp <src_scratch_location>/* oracle@[dest]:<dest_scratch_location>

Fase 3: Convertire e applicare i backup incrementali

Converti i backup incrementali nel formato endian del sistema di destinazione e applica i backup incrementali alle copie dei file di dati di destinazione sul sistema di destinazione.

In questa guida, supponiamo che i gruppi di tablespace siano quattro. Esegui ogni xttdriver.pl comando con l'--restoreopzione per ogni gruppo di tablespace.

In questo passaggio, l'utilità Oracle XTTS richiede il riavvio del database di destinazione. Per eseguire il comando in parallelo, è necessario utilizzare la seguente personalizzazione nello script Perl,. xttdriver.pl

  1. Commenta le seguenti righe:

    • Linea 4867: my $outputstart = `sqlplus -L -s \"/ as sysdba\" \@xttstartupnomount.sql`;

    • Linea 4868: checkError ("Error in executing xttstartupnomount.sql", $outputstart);

    • Linea 4992: my $outputstart = `sqlplus -L -s \"/ as sysdba\" \@xttdbopen.sql`;\

  2. Imposta lo NOMOUNT stato del DB di destinazione.

    sqlplus / as sysdba @xttstartupnomount.sql
  3. Esegui un rollforward dei backup incrementali in parallelo.

    cd /u01/oracle/expimp/xtt<nn> export TMPDIR=/u01/oracle/expimp/out/out<nn> $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore --debug 3
  4. Dopo aver eseguito il rollforward di tutti i backup incrementali, imposta lo stato del DB di destinazione. OPEN

    sqlplus / as sysdba @xttdbopen.sql

A questo punto, puoi ripetere la fase 2 finché i SCNs database di origine e di destinazione non si avvicinano abbastanza. È necessario decidere se passare alla fase 3 o ripetere la fase 2, a seconda del tempo di inattività previsto.

Per ridurre i tempi di inattività durante la fase 3 (la fase di trasporto), è possibile esportare e importare i metadati di oggetti non basati su segmenti, ad esempio,, e USER PACKAGE PROCEDUREFUNCTION, prima di impostare il database di origine come. READ ONLY

Se il numero di oggetti di database nel database di origine è estremamente elevato (centinaia di migliaia), l'esportazione e l'importazione dei metadati richiederanno diverse ore. In questo caso, prendete in considerazione l'esportazione dei metadati.

L'esportazione di oggetti non basati su segmenti viene eseguita nel sistema di origine. read/write È quindi necessario importare gli oggetti nel sistema di destinazione prima che il sistema di origine sia impostato su. READ ONLY Al momento, è necessario mantenere FUNCTION invariati gli oggetti di origine del database come PACKAGEPROCEDURE, e.

Questo è un esempio del file dei parametri dump utilizzato per esportare i metadati di oggetti non basati su segmenti, tra cuiUSER,, e. PACKAGE_SPEC PACKAGE_BODY PROCEDURE FUNCTION

directory=dmpdir dumpfile=xttsmsc%U.dmp full=y filesize=1048576000 logfile=expmsc.log metrics=y exclude=TABLE,INDEX,CONSTRAINT,COMMENT, MATERIALIZED_VIEW,MATERIALIZED_VIEW_LOG,SCHEMA_CALLOUT

Utilizzate il comando seguente per esportare i metadati.

SQL> create directory dmpdir as <location>; expdp system/<system password> parfile=<parameter file>

Questo è un esempio del file dei parametri dump per importare metadati di oggetti non segmentati.

directory=dmpdir dumpfile=xttsmsc%U.dmp full=y logfile=impmsc1.log EXCLUDE=TABLESPACE, PROCOBJ, RLS_CONTEXT, RLS_GROUP, RLS_POLICY, TABLESPACE_QUOTA metrics=y remap_tablespace= APPS_TS_ARCHIVE:SYSTEM, APPS_TS_INTERFACE:SYSTEM, APPS_TS_SEED:SYSTEM, APPS_TS_SUMMARY:SYSTEM, …..

Al momento, non ci sono tablespace ad eccezione diSYSTEM, SYSAUXUNDO, e nel sistema di destinazione. TEMP Quindi è necessario rimappare tutti gli oggetti da importare nel tablespace. SYSTEM

Utilizzate il seguente comando per importare i metadati.

SQL> create directory dmpdir as <location>; impdp system/<system password> parfile=<parameter file>

Ora puoi vedere gli oggetti creati nel database di destinazione.

SQL> select object_type, count(*) from dba_objects group by object_type order by count(*) desc; OBJECT_TYPE COUNT(*) ------------------------------- ---------- SYNONYM 89327 PACKAGE 55670 PACKAGE BODY 54447 VIEW 41378 JAVA CLASS 31978 SEQUENCE 12766 …..

Non ci sono tablespace tranneSYSTEM,SYSAUX, UNDO e. TEMP L'USERoggetto viene creato con USERS come tablespace di default. Durante la fase 3, verranno create le tablespace trasportabili e quindi gli oggetti USER verranno modificati con le tablespace predefinite originali.