

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.

# Migrieren mit materialisierten Oracle-Ansichten
<a name="Oracle.Procedural.Importing.Materialized"></a>

Um große Datenmengen effizient zu migrieren, können Sie die Oracle-Replikation von materialisierten Ansichten verwenden. Mit der Replikation können Sie die Zieltabellen mit den Quelltabellen synchronisieren. So können Sie bei Bedarf später zu Amazon RDS wechseln. 

Bevor Sie mit materialisierten Ansichten migrieren können, müssen Sie sicherstellen, dass Sie die folgenden Anforderungen erfüllen:
+ Konfigurieren Sie den Zugriff von der Zieldatenbank auf die Quelldatenbank. Im folgenden Beispiel wurden in der Quelldatenbank Zugriffsregeln aktiviert, die der Zieldatenbank von RDS für Oracle erlauben, sich über SQL\$1Net mit der Quelle zu verbinden. 
+ Erstellen Sie einen Datenbank-Link von der DB-Instance von RDS für Oracle zur Quelldatenbank.

**So migrieren Sie Daten mithilfe materialisierter Ansichten**

1. Erstellen Sie sowohl auf der Quell- als auch auf der RDS for Oracle-Ziel-Instance ein Benutzerkonto, das sich mit demselben Kennwort authentifizieren kann. Im folgenden Beispiel wird ein Benutzer mit dem Namen `dblink_user` erstellt.

   ```
   CREATE USER dblink_user IDENTIFIED BY my-password
     DEFAULT TABLESPACE users
     TEMPORARY TABLESPACE temp;
      
   GRANT CREATE SESSION TO dblink_user;
   
   GRANT SELECT ANY TABLE TO dblink_user;
   
   GRANT SELECT ANY DICTIONARY TO dblink_user;
   ```
**Anmerkung**  
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

1. Erstellen Sie einen Datenbanklink von der Ziel-Instance von RDS für Oracle zur Quell-Instance unter Verwendung des neu erstellten Benutzers.

   ```
   CREATE DATABASE LINK remote_site
     CONNECT TO dblink_user IDENTIFIED BY my-password
     USING '(description=(address=(protocol=tcp) (host=my-host) 
       (port=my-listener-port)) (connect_data=(sid=my-source-db-sid)))';
   ```
**Anmerkung**  
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

1. Testen Sie die Verbindung:

   ```
   SELECT * FROM V$INSTANCE@remote_site;
   ```

1. Erstellen Sie eine Beispiel-Tabelle mit einem Primärschlüssel und einem Protokoll für materialisierte Ansichten in der Quell-Instance.

   ```
   CREATE TABLE customer_0 TABLESPACE users 
     AS (SELECT ROWNUM id, o.* 
         FROM   ALL_OBJECTS o, ALL_OBJECTS x
         WHERE  ROWNUM <= 1000000);
   
   ALTER TABLE customer_0 ADD CONSTRAINT pk_customer_0 PRIMARY KEY (id) USING INDEX;
   
   CREATE MATERIALIZED VIEW LOG ON customer_0;
   ```

1. Erstellen Sie eine materialisierte Ansicht in der Ziel-DB-Instance von RDS für Oracle. 

   ```
   CREATE MATERIALIZED VIEW customer_0 
     BUILD IMMEDIATE REFRESH FAST 
     AS (SELECT * 
         FROM   cust_dba.customer_0@remote_site);
   ```

1. Aktualisieren Sie auf der Ziel-DB-Instance von RDS für Oracle die materialisierte Ansicht.

   ```
   EXEC DBMS_MVIEW.REFRESH('CUSTOMER_0', 'f');
   ```

1. Verwerfen Sie die materialisierte Ansicht und schließen Sie die `PRESERVE TABLE`-Klausel ein, um die Container-Tabelle der materialisierten Ansicht und deren Inhalt beizubehalten.

   ```
   DROP MATERIALIZED VIEW customer_0 PRESERVE TABLE;
   ```

   Die beibehaltene Tabelle hat denselben Namen wie die entfernte materialisierte Ansicht.