

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 nanti, jika diperlukan. 

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 database sumber untuk memungkinkan database target Oracle RDS untuk terhubung ke sumber melalui SQL \$1Net. 
+ Buat tautan database dari instance RDS for Oracle DB ke database sumber.

**Cara memigrasikan data menggunakan tampilan terwujud**

1. Buat akun pengguna di sumber dan RDS untuk instance target Oracle yang dapat mengautentikasi 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**  
Tetapkan kata sandi selain penggugah (prompt) yang ditampilkan di sini sebagai praktik terbaik keamanan.

1. Buat tautan database dari instance target RDS untuk Oracle ke instance sumber menggunakan pengguna yang baru dibuat.

   ```
   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**  
Tetapkan kata sandi selain penggugah (prompt) 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 target RDS instans Oracle DB, buat tampilan terwujud. 

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

1. Pada target RDS instans Oracle DB, segarkan 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.