

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Phase 2 — Roll-Forward-Phase (Quelldatenbank bleibt online)
<a name="phase2"></a>

Sie können die Roll-Forward-Phase so oft wie nötig wiederholen, um die Zieldatendatei in der Quelldatenbank abzufangen.

Die Roll-Forward-Phase besteht aus den folgenden Schritten.

1. Erstellen Sie ein inkrementelles Backup aus der Quelldatenbank.

1. Übertragen Sie das Backup auf das Zielsystem.

1. Konvertiert das Backup in das Endian-Format des Zielsystems.

1. Wenden Sie das Backup auf die konvertierten Zieldatendateikopien an, um sie weiterzuleiten.

Jede aufeinanderfolgende inkrementelle Sicherung sollte weniger Zeit in Anspruch nehmen und die Kopien der Zieldatendatei mit der Quelldatenbank auf den neuesten Stand bringen.

## Schritt 1: Inkrementelle Backups parallel durchführen
<a name="phase2-step1"></a>

Erstellen Sie inkrementelle Backups der Tablespace-Gruppen, die parallel auf dem Quellsystem transportiert werden.

Dieser Schritt erstellt inkrementelle Backups für alle Tablespaces=, die in der Datei aufgeführt sind. `xtt.properties`

Wenn Sie die Funktion **BLOCK CHANGE TRACKING** auf dem Quellsystem aktivieren können, können Sie die Zeit für das inkrementelle Backup erheblich reduzieren.

Der folgende Befehl erkennt den nächsten SCN nach der vollständigen Sicherung automatisch.

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

## Schritt 2: Übertragen Sie die inkrementellen Backups und die Datei res.txt auf das Zielsystem
<a name="phase2-step2"></a>

Wenn Sie über genügend Bandbreite verfügen, können Sie die Übertragungsdauer reduzieren, indem Sie Direct Connect

Übertragen Sie die inkrementellen Backups zwischen `src_scratch_location` und`dest_scratch_location`. Übertragen Sie die `res.txt` Datei zwischen `$TMPDIR` dem Quellsystem und `$TMPDIR` dem Zielsystem.

Wenn Sie mehrere inkrementelle Backups erstellen, muss die `res.txt` Datei nach der letzten inkrementellen Sicherung kopiert werden, bevor sie auf das Zielsystem angewendet werden kann.

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

## Schritt 3: Inkrementelle Backups konvertieren und anwenden
<a name="phase2-step3"></a>

Konvertiert inkrementelle Backups in das Endian-Format des Zielsystems und wendet inkrementelle Backups auf die Kopien der Zieldatendateien auf dem Zielsystem an.

Nehmen wir in diesem Handbuch an, dass es sich bei den Tablespace-Gruppen um vier Gruppen handelt. Führen Sie jeden `xttdriver.pl` Befehl mit der `--restore` Option für jede Tablespace-Gruppe aus.

In diesem Schritt veranlasst das Oracle XTTS-Hilfsprogramm, die Zieldatenbank neu zu starten. Um den Befehl parallel auszuführen, müssen Sie die folgende Anpassung im Perl-Skript verwenden,`xttdriver.pl`.

****

1. Kommentieren Sie die folgenden Zeilen aus:
   + Zeile 4867: ` my $outputstart = `sqlplus -L -s \"/ as sysdba\" \@xttstartupnomount.sql`;`
   + Zeile 4868: ` checkError ("Error in executing xttstartupnomount.sql", $outputstart);`
   + Zeile 4992: ` my $outputstart = `sqlplus -L -s \"/ as sysdba\" \@xttdbopen.sql`;\`

1. Setzen Sie die Ziel-DB in `NOMOUNT` den Status.

   ```
   sqlplus / as sysdba @xttstartupnomount.sql
   ```

1. Führen Sie parallel einen Rollforward der inkrementellen Backups durch.

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

1. Nachdem Sie alle inkrementellen Backups weitergeleitet haben, setzen Sie die Ziel-DB in `OPEN` den Status.

   ```
   sqlplus / as sysdba @xttdbopen.sql
   ```

An diesem Punkt können Sie Phase 2 wiederholen, bis sich die SCNs Quell- und Zieldatenbanken nahe genug sind. Abhängig von der gewünschten Ausfallzeit müssen Sie entscheiden, ob Sie mit Phase 3 fortfahren oder Phase 2 wiederholen möchten.

Um die Ausfallzeit während Phase 3 (der Transportphase) zu reduzieren, können Sie die Metadaten nicht segmentbasierter Objekte wie,, und exportieren und importieren `USER` `PACKAGE` `PROCEDURE``FUNCTION`, bevor Sie die Quelldatenbank als festlegen. `READ ONLY`

Wenn die Anzahl der Datenbankobjekte in der Quelldatenbank extrem groß ist (Hunderttausende), dauert der Export und Import der Metadaten mehrere Stunden. In diesem Fall sollten Sie den Export von Metadaten in Betracht ziehen.

Das Exportieren von Objekten, die nicht auf Segmenten basieren, wird im read/write Quellsystem ausgeführt. Anschließend müssen Sie die Objekte in das Zielsystem importieren, bevor das Quellsystem auf eingestellt ist. `READ ONLY` Zu diesem Zeitpunkt müssen Sie die Datenbankquellobjekte wie`PACKAGE`,`PROCEDURE`, `FUNCTION` unverändert lassen.

Dies ist ein Beispiel für die Dump-Parameterdatei, die zum Exportieren von Metadaten von Objekten verwendet wird, die nicht auf Segmenten basieren, einschließlich, `USER``PACKAGE_SPEC`, `PACKAGE_BODY` und. `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
```

Verwenden Sie den folgenden Befehl, um Metadaten zu exportieren.

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

Dies ist ein Beispiel für die Dump-Parameterdatei zum Importieren von Metadaten von Objekten, die keine Segmente sind.

```
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,
…..
```

Derzeit gibt es keine Tablespaces außer`SYSTEM`, `SYSAUX``UNDO`, und `TEMP` auf dem Zielsystem. Sie müssen also alle Objekte, die in den Tablespace importiert werden sollen, neu zuordnen. `SYSTEM`

Verwenden Sie den folgenden Befehl, um Metadaten zu importieren.

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

Jetzt können Sie die erstellten Objekte in der Zieldatenbank sehen.

```
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
…..
```

Es gibt keine Tablespaces außer`SYSTEM`, `SYSAUX``UNDO`, und. `TEMP` Das `USER` Objekt wird `USERS` als Standard-Tablespace erstellt. In Phase 3 werden die transportierbaren Tablespaces erstellt, und dann werden die USER-Objekte mit den ursprünglichen Standard-Tablespaces geändert.