

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

# Migrasi dari Oracle Database ke Amazon RDS for Oracle AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToRDSOracle"></a>

Beberapa hal yang perlu dipertimbangkan saat memigrasikan skema dan kode Oracle ke Amazon RDS for Oracle: 
+ AWS SCT dapat menambahkan objek direktori ke pohon objek. *Objek direktori* adalah struktur logis yang masing-masing mewakili direktori fisik pada sistem file server. Anda dapat menggunakan objek direktori dengan paket seperti DBMS\_LOB, UTL\_FILE, DBMS\_FILE\_TRANSFER, utilitas DATAPUMP, dan sebagainya.
+ AWS SCT mendukung konversi ruang meja Oracle ke Amazon RDS for Oracle DB instans. Oracle menyimpan data secara logis di tablespaces dan secara fisik dalam file data yang terkait dengan tablespace yang sesuai. Di Oracle, Anda dapat membuat tablespace dengan nama file data. Amazon RDS mendukung Oracle Managed Files (OMF) untuk file data, file log, dan file kontrol saja. AWS SCT membuat file data yang dibutuhkan selama konversi.
+ AWS SCT dapat mengonversi peran dan hak istimewa tingkat server. Mesin database Oracle menggunakan keamanan berbasis peran. Peran adalah kumpulan hak istimewa yang dapat Anda berikan atau cabut dari pengguna. Peran yang telah ditentukan di Amazon RDS, yang disebut DBA, biasanya memungkinkan semua hak administratif pada mesin database Oracle. Hak istimewa berikut ini tidak tersedia untuk peran DBA di instans DB Amazon RDS yang menggunakan mesin Oracle:
  + Mengubah basis data
  + Mengubah sistem
  + Buat direktori apa pun
  + Berikan hak istimewa apa pun
  + Berikan peran apa pun
  + Buat pekerjaan eksternal

  Anda dapat memberikan semua hak istimewa lainnya ke peran pengguna Amazon RDS for Oracle, termasuk hak istimewa pemfilteran dan kolom lanjutan.
+ AWS SCT mendukung konversi pekerjaan Oracle menjadi pekerjaan yang dapat berjalan di Amazon RDS for Oracle. Ada beberapa batasan untuk konversi, termasuk yang berikut:
  + Pekerjaan yang dapat dieksekusi tidak didukung.
  + Menjadwalkan pekerjaan yang menggunakan tipe data ANYDATA sebagai argumen tidak didukung.
+ Oracle Real Application Clusters (RAC) One Node adalah opsi untuk Oracle Database Enterprise Edition yang diperkenalkan dengan Oracle Database 11g Release 2. Amazon RDS for Oracle tidak mendukung fitur RAC. Untuk ketersediaan tinggi, gunakan Amazon RDS Multi-AZ. 

  Dalam penerapan Multi-AZ, Amazon RDS secara otomatis menyediakan dan mempertahankan replika siaga yang sinkron di Availability Zone yang berbeda. Instans DB utama direplikasi secara sinkron di seluruh Availability Zones ke replika siaga. Fungsionalitas ini menyediakan redundansi data, menghilangkan I/O pembekuan, dan meminimalkan lonjakan latensi selama pencadangan sistem.
+ Oracle Spatial menyediakan skema dan fungsi SQL yang memfasilitasi penyimpanan, pengambilan, pembaruan, dan kueri kumpulan data spasial dalam basis data Oracle. Oracle Locator menyediakan kemampuan yang biasanya dibutuhkan untuk mendukung aplikasi berbasis layanan nirkabel dan internet serta solusi GIS berbasis mitra. Oracle Locator adalah subset terbatas dari Oracle Spatial.

  Untuk menggunakan fitur Oracle Spatial dan Oracle Locator, tambahkan opsi SPATIAL atau opsi LOCATOR (saling eksklusif) ke grup opsi instans DB Anda.

  Ada beberapa prasyarat untuk menggunakan Oracle Spatial dan Oracle Locator pada instans Amazon RDS for Oracle DB:
  + Instans harus menggunakan Oracle Enterprise Edition versi 12.1.0.2.v6 atau lebih tinggi, atau 11.2.0.4.v10 atau lebih tinggi.
  + Instans harus berada di dalam virtual private cloud (VPC).
  + Instance harus kelas instans DB yang dapat mendukung fitur Oracle. Misalnya, Oracle Spatial tidak didukung untuk kelas instans db.m1.small, db.t1.micro, db.t2.micro, atau db.t2.small DB. Untuk informasi selengkapnya, lihat [dukungan kelas instans DB untuk Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.InstanceClasses).
  + Instans harus mengaktifkan opsi Auto Minor Version Upgrade. Amazon RDS memperbarui instans DB Anda ke Oracle PSU terbaru jika ada kerentanan keamanan dengan skor CVSS 9\+ atau kerentanan keamanan lainnya yang diumumkan. Untuk informasi selengkapnya, silakan lihat 

    [Pengaturan untuk instans Oracle DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyInstance.Oracle.html#USER_ModifyInstance.Oracle.Settings).
  + Jika instans DB Anda adalah versi 11.2.0.4.v10 atau lebih tinggi, Anda harus menginstal opsi XMLDB. Untuk informasi selengkapnya, silakan lihat

    [Oracle XML-DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.XMLDB.html).
  + Anda harus memiliki lisensi Oracle Spatial dari Oracle. Untuk informasi selengkapnya, lihat [Oracle Spatial and Graph](https://shop.oracle.com/apex/product?p1=OracleSpatialandGraph) dalam dokumentasi Oracle.
+ Data Guard disertakan dengan Oracle Database Enterprise Edition. Untuk ketersediaan tinggi, gunakan fitur Amazon RDS Multi-AZ. 

  Dalam penerapan Multi-AZ, Amazon RDS secara otomatis menyediakan dan mempertahankan replika siaga yang sinkron di Availability Zone yang berbeda. Instans DB utama direplikasi secara sinkron di seluruh Availability Zones ke replika siaga. Fungsionalitas ini menyediakan redundansi data, menghilangkan I/O pembekuan, dan meminimalkan lonjakan latensi selama pencadangan sistem.
+ AWS SCT mendukung konversi objek Oracle DBMS\_SCHEDULER saat bermigrasi ke Amazon RDS for Oracle. Laporan AWS SCT penilaian menunjukkan apakah objek jadwal dapat dikonversi. Untuk informasi selengkapnya tentang penggunaan objek jadwal dengan Amazon RDS, lihat dokumentasi [Amazon RDS.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.System.html#Appendix.Oracle.CommonDBATasks.ModifyScheduler)
+ Untuk konversi Oracle ke Amazon RDS for Oracle, DB Links didukung. Sebuah link database adalah objek skema dalam satu database yang memungkinkan Anda untuk mengakses objek pada database lain. Database lain tidak perlu menjadi database Oracle. Namun, untuk mengakses database non-Oracle Anda harus menggunakan Oracle Heterogenous Services.

  Setelah Anda membuat link database, Anda dapat menggunakan link dalam pernyataan SQL untuk merujuk ke tabel, tampilan, dan PL/SQL objek dalam database lainnya. Untuk menggunakan link database, tambahkan `@dblink` ke tabel, tampilan, atau nama PL/SQL objek. Anda dapat menanyakan tabel atau tampilan di database lain dengan pernyataan SELECT. Untuk informasi selengkapnya tentang menggunakan tautan database Oracle, lihat dokumentasi [Oracle](https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12083).

  Untuk informasi selengkapnya tentang menggunakan tautan database dengan Amazon RDS, lihat dokumentasi [Amazon RDS.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Database.html#Appendix.Oracle.CommonDBATasks.DBLinks)
+ Laporan AWS SCT penilaian menyediakan metrik server untuk konversi. Metrik tentang instans Oracle Anda ini mencakup yang berikut:
  + Komputasi dan kapasitas memori instans DB target.
  + Fitur Oracle yang tidak didukung seperti Real Application Clusters yang tidak didukung Amazon RDS.
  + Beban baca-tulis disk
  + Total throughput disk rata-rata
  + Informasi server seperti nama server, OS, nama host, dan set karakter.

## Hak istimewa untuk RDS untuk Oracle sebagai target
<a name="CHAP_Source.Oracle.ToRDSOracle.ConfigureTarget"></a>

Untuk bermigrasi ke Amazon RDS for Oracle, buat pengguna database istimewa. Anda dapat menggunakan contoh kode berikut.

```
CREATE USER {{user_name}} IDENTIFIED BY {{your_password}};

-- System privileges
GRANT DROP ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT ALTER ANY CUBE TO {{user_name}};
GRANT CREATE ANY CUBE DIMENSION TO {{user_name}};
GRANT CREATE ANY ASSEMBLY TO {{user_name}};
GRANT ALTER ANY RULE TO {{user_name}};
GRANT SELECT ANY DICTIONARY TO {{user_name}};
GRANT ALTER ANY DIMENSION TO {{user_name}};
GRANT CREATE ANY DIMENSION TO {{user_name}};
GRANT ALTER ANY TYPE TO {{user_name}};
GRANT DROP ANY TRIGGER TO {{user_name}};
GRANT CREATE ANY VIEW TO {{user_name}};
GRANT ALTER ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT CREATE ANY CREDENTIAL TO {{user_name}};
GRANT DROP ANY CUBE DIMENSION TO {{user_name}};
GRANT DROP ANY ASSEMBLY TO {{user_name}};
GRANT DROP ANY PROCEDURE TO {{user_name}};
GRANT ALTER ANY PROCEDURE TO {{user_name}};
GRANT ALTER ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT DROP ANY MEASURE FOLDER TO {{user_name}};
GRANT CREATE ANY MEASURE FOLDER TO {{user_name}};
GRANT DROP ANY CUBE TO {{user_name}};
GRANT DROP ANY MINING MODEL TO {{user_name}};
GRANT CREATE ANY MINING MODEL TO {{user_name}};
GRANT DROP ANY EDITION TO {{user_name}};
GRANT CREATE ANY EVALUATION CONTEXT TO {{user_name}};
GRANT DROP ANY DIMENSION TO {{user_name}};
GRANT ALTER ANY INDEXTYPE TO {{user_name}};
GRANT DROP ANY TYPE TO {{user_name}};
GRANT CREATE ANY PROCEDURE TO {{user_name}};
GRANT CREATE ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT CREATE ANY CUBE TO {{user_name}};
GRANT COMMENT ANY MINING MODEL TO {{user_name}};
GRANT ALTER ANY MINING MODEL TO {{user_name}};
GRANT DROP ANY SQL PROFILE TO {{user_name}};
GRANT CREATE ANY JOB TO {{user_name}};
GRANT DROP ANY EVALUATION CONTEXT TO {{user_name}};
GRANT ALTER ANY EVALUATION CONTEXT TO {{user_name}};
GRANT CREATE ANY INDEXTYPE TO {{user_name}};
GRANT CREATE ANY OPERATOR TO {{user_name}};
GRANT CREATE ANY TRIGGER TO {{user_name}};
GRANT DROP ANY ROLE TO {{user_name}};
GRANT DROP ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY CLUSTER TO {{user_name}};
GRANT DROP ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT ALTER ANY ASSEMBLY TO {{user_name}};
GRANT CREATE ANY RULE SET TO {{user_name}};
GRANT ALTER ANY OUTLINE TO {{user_name}};
GRANT UNDER ANY TYPE TO {{user_name}};
GRANT CREATE ANY TYPE TO {{user_name}};
GRANT DROP ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY ROLE TO {{user_name}};
GRANT DROP ANY VIEW TO {{user_name}};
GRANT ALTER ANY INDEX TO {{user_name}};
GRANT COMMENT ANY TABLE TO {{user_name}};
GRANT CREATE ANY TABLE TO {{user_name}};
GRANT CREATE USER TO {{user_name}};
GRANT DROP ANY RULE SET TO {{user_name}};
GRANT CREATE ANY CONTEXT TO {{user_name}};
GRANT DROP ANY INDEXTYPE TO {{user_name}};
GRANT ALTER ANY OPERATOR TO {{user_name}};
GRANT CREATE ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY SYNONYM TO {{user_name}};
GRANT CREATE ANY SYNONYM TO {{user_name}};
GRANT DROP USER TO {{user_name}};
GRANT ALTER ANY MEASURE FOLDER TO {{user_name}};
GRANT ALTER ANY EDITION TO {{user_name}};
GRANT DROP ANY RULE TO {{user_name}};
GRANT CREATE ANY RULE TO {{user_name}};
GRANT ALTER ANY RULE SET TO {{user_name}};
GRANT CREATE ANY OUTLINE TO {{user_name}};
GRANT UNDER ANY TABLE TO {{user_name}};
GRANT UNDER ANY VIEW TO {{user_name}};
GRANT DROP ANY DIRECTORY TO {{user_name}};
GRANT ALTER ANY CLUSTER TO {{user_name}};
GRANT CREATE ANY CLUSTER TO {{user_name}};
GRANT ALTER ANY TABLE TO {{user_name}};
GRANT CREATE ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT ALTER ANY CUBE DIMENSION TO {{user_name}};
GRANT CREATE ANY EDITION TO {{user_name}};
GRANT CREATE ANY SQL PROFILE TO {{user_name}};
GRANT ALTER ANY SQL PROFILE TO {{user_name}};
GRANT DROP ANY OUTLINE TO {{user_name}};
GRANT DROP ANY CONTEXT TO {{user_name}};
GRANT DROP ANY OPERATOR TO {{user_name}};
GRANT DROP ANY LIBRARY TO {{user_name}};
GRANT ALTER ANY LIBRARY TO {{user_name}};
GRANT CREATE ANY LIBRARY TO {{user_name}};
GRANT ALTER ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY TRIGGER TO {{user_name}};
GRANT CREATE ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY INDEX TO {{user_name}};
GRANT CREATE ANY INDEX TO {{user_name}};
GRANT DROP ANY TABLE TO {{user_name}};
GRANT SELECT_CATALOG_ROLE TO {{user_name}};
GRANT SELECT ANY SEQUENCE TO {{user_name}};

-- Database Links
GRANT CREATE DATABASE LINK TO {{user_name}};
GRANT CREATE PUBLIC DATABASE LINK TO {{user_name}};
GRANT DROP PUBLIC DATABASE LINK TO {{user_name}};


-- Server Level Objects (directory)
GRANT CREATE ANY DIRECTORY TO {{user_name}};
GRANT DROP ANY DIRECTORY TO {{user_name}};
-- (for RDS only)
GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TO {{user_name}};

-- Server Level Objects (tablespace)
GRANT CREATE TABLESPACE TO {{user_name}};
GRANT DROP TABLESPACE TO {{user_name}};

-- Server Level Objects (user roles)
/* (grant source privileges with admin option or convert roles/privs as DBA) */

-- Queues
grant execute on DBMS_AQADM to {{user_name}};
grant aq_administrator_role to {{user_name}};

-- for Materialized View Logs creation
GRANT SELECT ANY TABLE TO {{user_name}};

-- Roles
GRANT RESOURCE TO {{user_name}};
GRANT CONNECT TO {{user_name}};
```

Pada contoh sebelumnya, ganti {{user\_name}} dengan nama pengguna Anda. Kemudian, ganti {{your\_password}} dengan kata sandi yang aman.

## Keterbatasan saat mengonversi Oracle ke Amazon RDS for Oracle
<a name="CHAP_Source.Oracle.ToRDSOracle.Limitations"></a>

Beberapa batasan yang harus Anda pertimbangkan saat memigrasikan skema dan kode Oracle ke Amazon RDS for Oracle: 
+  Peran yang telah ditentukan di Amazon RDS, yang disebut DBA, biasanya memungkinkan semua hak administratif pada mesin database Oracle. Hak istimewa berikut ini tidak tersedia untuk peran DBA di instans DB Amazon RDS yang menggunakan mesin Oracle:
  + Mengubah basis data
  + Mengubah sistem
  + Buat direktori apa pun
  + Berikan hak istimewa apa pun
  + Berikan peran apa pun
  + Buat pekerjaan eksternal

  Anda dapat memberikan semua hak istimewa lainnya untuk peran pengguna Oracle RDS.
+ Amazon RDS for Oracle mendukung audit tradisional, audit halus menggunakan paket DBMS\_FGA, dan Oracle Unified Audit.
+ Amazon RDS for Oracle tidak mendukung pengambilan data perubahan (CDC). Untuk melakukan CDC selama dan setelah migrasi database, gunakan AWS Database Migration Service.