

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Bermigrasi dengan tampilan terwujud Oracle
<a name="Oracle.Procedural.Importing.Materialized"></a>

Untuk memigrasikan set data berukuran besar secara efisien, Anda dapat menggunakan replikasi tampilan terwujud Oracle. Dengan replikasi, tabel target tetap dapat sinkron dengan tabel sumber. Dengan demikian, Anda dapat beralih ke Amazon RDS nantinya, jika perlu. 

Sebelum Anda dapat bermigrasi menggunakan tampilan terwujud, pastikan Anda memenuhi persyaratan berikut:
+ Konfigurasikan akses dari basis data target ke basis data sumber. Dalam contoh berikut, aturan akses diaktifkan pada basis data sumber agar basis data target RDS for Oracle dapat terhubung ke sumber melalui SQL\*Net. 
+ Buat tautan basis data dari instans DB RDS for Oracle ke basis data sumber.

**Cara memigrasikan data menggunakan tampilan terwujud**

1. Buat akun pengguna pada instans sumber maupun instans target RDS for Oracle yang dapat diautentikasi dengan kata sandi yang sama. Contoh berikut membuat pengguna bernama `dblink_user`.

   ```
   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;
   ```
**catatan**  
Tentukan kata sandi selain perintah yang ditampilkan di sini sebagai praktik terbaik keamanan.

1. Buat tautan basis data dari instans target RDS for Oracle ke instans sumber menggunakan pengguna yang baru Anda buat.

   ```
   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}})))';
   ```
**catatan**  
Tentukan kata sandi selain perintah yang ditampilkan di sini sebagai praktik terbaik keamanan.

1. Uji tautan tersebut:

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

1. Buat tabel sampel dengan kunci primer dan log tampilan terwujud pada instans sumber.

   ```
   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. Pada instans DB RDS for Oracle target, buat tampilan terwujud. 

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

1. Pada instans DB RDS for Oracle target, refresh tampilan terwujud.

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

1. Batalkan tampilan terwujud dan sertakan klausa `PRESERVE TABLE` untuk mempertahankan tabel kontainer tampilan terwujud beserta kontennya.

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

   Tabel yang dipertahankan memiliki nama yang sama dengan tampilan terwujud yang dibatalkan.