全部产品
Search
文档中心

Data Transmission Service:Batasan dan persiapan untuk database Oracle

更新时间:Dec 03, 2025

Sebelum menggunakan Data Transfer Service (DTS) untuk mentransfer data dari atau ke database Oracle, pahami fitur yang didukung, batasan, serta langkah-langkah persiapan guna memastikan sinkronisasi atau migrasi data berjalan lancar.

Batasan database

Oracle yang dikelola sendiri sebagai sumber

Batasan

Deskripsi

Versi yang didukung

Versi 10g, 11g, 12c, 18c, dan 19c didukung.

Arsitektur yang didukung

  • Arsitektur single-node dan Real Application Clusters (RAC) didukung.

    Catatan

    Jangan menambahkan atau menghapus node dari database Oracle dalam arsitektur RAC. Hal ini dapat menyebabkan tugas DTS gagal.

  • Arsitektur Container Database (CDB) dan non-CDB didukung untuk versi 12c dan yang lebih baru.

    Catatan

    Satu tugas hanya dapat memigrasikan satu Pluggable Database (PDB).

Data yang didukung

  • Tabel umum, indeks (termasuk indeks berbasis fungsi), tipe data, dan set karakter didukung. Untuk informasi selengkapnya tentang tipe data dan set karakter yang didukung, lihat Lampiran.

  • Operasi cascade delete dan update didukung.

  • Operasi Data Manipulation Language (DML) pada partisi dan subpartisi didukung. Operasi Data Definition Language (DDL) pada tabel partisi tidak didukung, tetapi tugas akan tetap berjalan.

  • Penguraian log transaksi terdistribusi didukung.

  • Rollback transaksi penuh dan sebagian didukung.

  • Sinkronisasi dan migrasi objek dengan nama lebih dari 30 byte didukung.

  • Sinkronisasi dan migrasi objek null, seperti empty_blob() dan empty_clob(), didukung.

  • Sinkronisasi dan migrasi kolom virtual didukung.

  • Sinkronisasi dan migrasi data dengan Hybrid Columnar Compression (HCC) didukung.

  • Tugas migrasi penuh mendukung kolom invisible. Tugas sinkronisasi inkremental tidak mendukungnya.

  • Pemetaan case-sensitive untuk nama atribut, seperti nama tabel dan kolom, didukung.

Bandwidth jaringan

Harus 100 Mb/s atau lebih tinggi.

Persyaratan bisnis

  • Volume log puncak harus kurang dari 1 TB. Volume log rata-rata per jam harus kurang dari 50 GB. Trafik puncak harus kurang dari 15 MB/s.

    Penting

    DTS secara default menarik log untuk seluruh instansiasi basis data. Volume perubahan data yang tinggi pada objek yang tidak disinkronisasi atau dimigrasikan juga dapat menyebabkan latensi tugas.

  • Pembaruan data batch atau perubahan skala besar pada tipe data large object (LOB), seperti CLOB, BLOB, dan LONG, dapat menyebabkan latensi tugas. Jalankan operasi tersebut dalam batch yang lebih kecil atau hindari jika memungkinkan.

  • Hindari operasi delete atau update yang sering pada tabel tanpa primary key. Hal ini dapat menyebabkan latensi tugas.

  • Kurangi frekuensi operasi DDL. Jangan mengeksekusi lebih dari 10 pernyataan DDL per detik untuk menghindari latensi tugas.

  • Hindari transaksi besar di mana satu transaksi menghasilkan lebih dari 100 GB log. Hal ini dapat menyebabkan tugas gagal.

Jenis koneksi

  • Koneksi menggunakan alamat IP jaringan publik dan Alamat IP pribadi didukung.

  • Untuk arsitektur RAC, koneksi menggunakan Scan IP, VIP single-node, atau alamat IP fisik didukung.

  • Koneksi melalui Jalur sewa didukung. Koneksi ke Scan IP node RAC melalui Jalur sewa tidak didukung.

  • Koneksi ke database primary dan secondary dalam konfigurasi ADG didukung.

    Catatan

    Jika koneksi DTS mengarah ke database secondary ADG dan file redo online belum diarsipkan, instans DTS akan mengalami latensi.

  • Amazon RDS for Oracle didukung sebagai database sumber.

Batasan lainnya

  • Sebelum memulai tugas sinkronisasi atau migrasi data, evaluasi performa database sumber dan tujuan. Jalankan tugas selama jam sepi. Selama fase migrasi penuh, DTS mengonsumsi beberapa resource baca pada database sumber, yang dapat meningkatkan beban database. Biasanya, dampaknya kurang dari 2 core CPU dan 4 GB memori. Dampak beban aktual tergantung pada status database.

  • Tabel yang akan disinkronisasi atau dimigrasikan harus memiliki primary key atau kendala UNIK, dan field-field tersebut harus unik. Jika tidak, latensi tugas atau data duplikat di database tujuan dapat terjadi.

  • Ketika Oracle menjadi sumber, DTS mendukung skenario di mana set karakter penulisan berbeda dari set karakter database.

    Catatan

    Anda harus mengatur parameter Actual Write Code (source.column.encoding).

  • Jangan menjalankan perintah resetlogs saat tugas sedang berjalan. Hal ini dapat menyebabkan tugas DTS gagal.

  • Operasi DCL tidak didukung.

  • Tugas sinkronisasi inkremental tidak mendukung trigger. Nonaktifkan trigger di database Oracle tujuan.

  • Tugas sinkronisasi inkremental tidak mendukung data dengan kendala kunci asing.

  • Tugas sinkronisasi inkremental tidak mendukung data yang diimpor ke database sumber menggunakan Oracle Data Pump.

  • Selama tugas inkremental, hindari rollback parsial transaksi besar dan penghapusan batch dalam transaksi besar di database sumber. Hal ini dapat menyebabkan hilangnya pernyataan DELETE inkremental.

  • Saat Anda menyinkronisasi atau memigrasikan data dari tabel tanpa primary key atau unique key:

    • Kecepatan penulisan data lambat, yang dapat menyebabkan latensi tugas.

    • Konsistensi data tidak dapat dijamin. Data duplikat mungkin terjadi.

  • Sinkronisasi dan migrasi objek dengan nama lebih dari 30 byte tidak didukung.

  • Operasi `RENAME TABLE` berturut-turut tidak didukung. Hal ini dapat menyebabkan tugas gagal.

  • Tabel temporary global tidak didukung. Tugas akan tetap berjalan tetapi tidak akan memigrasikan tabel-tabel tersebut.

  • Tabel yang berisi fungsi dalam nilai default tidak didukung. Hal ini dapat menyebabkan ketidakkonsistenan data.

  • Tabel dengan ekspresi dalam nilai default tidak didukung.

  • Tabel asing tidak didukung.

  • Kolom terkomputasi dan kolom terenkripsi tidak didukung.

  • VPD tidak didukung.

  • Pekerjaan yang dibuat oleh `dbms_scheduler` dan `dbms_job` tidak didukung.

  • Perubahan nama skema tidak didukung.

  • Tabel bersarang tidak didukung. Hal ini dapat menyebabkan tugas gagal.

  • Materialized view tidak didukung.

  • Operasi DDL pada atribut dengan nama yang mengandung kata kunci atau karakter khusus tidak didukung.

  • Operasi perubahan ROWID, seperti `split partition`, `table move`, `table shrink`, dan `move partition key`, tidak didukung. Hal ini dapat menyebabkan ketidakkonsistenan data atau kegagalan tugas.

  • Enkripsi SSL tidak didukung untuk transfer data.

  • Mode Oracle Label Security tidak didukung.

  • Oracle adalah database komersial closed-source. Format log-nya dapat menimbulkan masalah yang tidak terhindarkan selama CDC dan penguraian oleh DTS karena karakteristik format yang diketahui maupun tidak diketahui. Sebelum mengaktifkan sinkronisasi inkremental atau migrasi dari sumber Oracle di lingkungan produksi, lakukan pengujian POC yang komprehensif. Pengujian ini harus mencakup semua jenis perubahan bisnis, penyesuaian skema tabel, dan pengujian stres jam puncak. Karena sifat tak terduga dari format log Oracle, pastikan logika bisnis di lingkungan produksi identik dengan fase POC. Hal ini sangat penting untuk operasi DTS yang stabil dan efisien.

Amazon RDS for Oracle sebagai sumber

Batasan

Deskripsi

Versi yang didukung

Versi 10g, 11g, 12c, 18c, dan 19c didukung.

Arsitektur yang didukung

  • Arsitektur single-node dan RAC didukung.

  • Untuk versi 12c, 18c, dan 19c, hanya arsitektur non-CDB yang didukung.

Data yang didukung

  • Tabel umum, indeks (termasuk indeks berbasis fungsi), tipe data, dan set karakter didukung. Untuk informasi selengkapnya tentang tipe data dan set karakter yang didukung, lihat Lampiran.

  • Operasi cascade delete dan update didukung.

  • Operasi Data Manipulation Language (DML) pada partisi dan subpartisi didukung. Operasi Data Definition Language (DDL) pada tabel partisi tidak didukung, tetapi tugas akan tetap berjalan.

  • Penguraian log transaksi terdistribusi didukung.

  • Rollback transaksi penuh dan sebagian didukung.

  • Sinkronisasi dan migrasi objek dengan nama lebih dari 30 byte didukung.

  • Sinkronisasi dan migrasi objek null, seperti empty_blob() dan empty_clob(), didukung.

  • Sinkronisasi dan migrasi kolom virtual didukung.

  • Sinkronisasi dan migrasi data dengan Hybrid Columnar Compression (HCC) didukung.

  • Tugas migrasi penuh mendukung kolom invisible. Tugas sinkronisasi inkremental tidak mendukungnya.

  • Pemetaan case-sensitive untuk nama atribut, seperti nama tabel dan kolom, didukung.

Bandwidth jaringan

Harus 100 Mb/s atau lebih tinggi.

Persyaratan bisnis

  • Volume log puncak harus kurang dari 1 TB. Volume log rata-rata per jam harus kurang dari 50 GB. Trafik puncak harus kurang dari 15 MB/s.

    Penting

    DTS secara default menarik log untuk seluruh instansiasi basis data. Volume perubahan data yang tinggi pada objek yang tidak disinkronisasi atau dimigrasikan juga dapat menyebabkan latensi tugas.

  • Pembaruan data batch atau perubahan skala besar pada tipe data large object (LOB), seperti CLOB, BLOB, dan LONG, dapat menyebabkan latensi tugas. Jalankan operasi tersebut dalam batch yang lebih kecil atau hindari jika memungkinkan.

  • Hindari operasi delete atau update yang sering pada tabel tanpa primary key. Hal ini dapat menyebabkan latensi tugas.

  • Kurangi frekuensi operasi DDL. Jangan mengeksekusi lebih dari 10 pernyataan DDL per detik untuk menghindari latensi tugas.

  • Hindari transaksi besar di mana satu transaksi menghasilkan lebih dari 100 GB log. Hal ini dapat menyebabkan tugas gagal.

Jenis koneksi

  • Koneksi menggunakan alamat IP jaringan publik dan Alamat IP pribadi didukung.

  • Untuk arsitektur RAC, koneksi menggunakan Scan IP, VIP single-node, atau alamat IP fisik didukung.

  • Koneksi melalui Jalur sewa didukung. Koneksi ke Scan IP node RAC melalui Jalur sewa tidak didukung.

  • Koneksi ke database primary dan secondary dalam konfigurasi ADG didukung.

    Catatan

    Jika koneksi DTS mengarah ke database secondary ADG dan file redo online belum diarsipkan, instans DTS akan mengalami latensi.

Batasan lainnya

  • Sebelum memulai tugas sinkronisasi atau migrasi data, evaluasi performa database sumber dan tujuan. Jalankan tugas selama jam sepi. Selama fase migrasi penuh, DTS mengonsumsi beberapa resource baca pada database sumber, yang dapat meningkatkan beban database. Biasanya, dampaknya kurang dari 2 core CPU dan 4 GB memori. Dampak beban aktual tergantung pada status database.

  • Tabel yang akan disinkronisasi atau dimigrasikan harus memiliki primary key atau kendala UNIK, dan field-field tersebut harus unik. Jika tidak, latensi tugas atau data duplikat di database tujuan dapat terjadi.

  • Ketika Oracle menjadi sumber, DTS mendukung skenario di mana set karakter penulisan berbeda dari set karakter database.

    Catatan

    Anda harus mengatur parameter Actual Write Code (source.column.encoding).

  • Jangan menjalankan perintah resetlogs saat tugas sedang berjalan. Hal ini dapat menyebabkan tugas DTS gagal.

  • Operasi DCL tidak didukung.

  • Tugas sinkronisasi inkremental tidak mendukung trigger. Nonaktifkan trigger di database Oracle tujuan.

  • Tugas sinkronisasi inkremental tidak mendukung data dengan kendala kunci asing.

  • Tugas sinkronisasi inkremental tidak mendukung data yang diimpor ke database sumber menggunakan Oracle Data Pump.

  • Selama tugas inkremental, hindari rollback parsial transaksi besar dan penghapusan batch dalam transaksi besar di database sumber. Hal ini dapat menyebabkan hilangnya pernyataan DELETE inkremental.

  • Saat Anda menyinkronisasi atau memigrasikan data dari tabel tanpa primary key atau unique key:

    • Kecepatan penulisan data lambat, yang dapat menyebabkan latensi tugas.

    • Konsistensi data tidak dapat dijamin. Data duplikat mungkin terjadi.

  • Sinkronisasi dan migrasi objek dengan nama lebih dari 30 byte tidak didukung.

  • Operasi `RENAME TABLE` berturut-turut tidak didukung. Hal ini dapat menyebabkan tugas gagal.

  • Tabel temporary global tidak didukung. Tugas akan tetap berjalan tetapi tidak akan memigrasikan tabel-tabel tersebut.

  • Tabel yang berisi fungsi dalam nilai default tidak didukung. Hal ini dapat menyebabkan ketidakkonsistenan data.

  • Tabel dengan ekspresi dalam nilai default tidak didukung.

  • Tabel asing tidak didukung.

  • Kolom terkomputasi dan kolom terenkripsi tidak didukung.

  • VPD tidak didukung.

  • Pekerjaan yang dibuat oleh `dbms_scheduler` dan `dbms_job` tidak didukung.

  • Perubahan nama skema tidak didukung.

  • Tabel bersarang tidak didukung. Hal ini dapat menyebabkan tugas gagal.

  • Materialized view tidak didukung.

  • Operasi DDL pada atribut dengan nama yang mengandung kata kunci atau karakter khusus tidak didukung.

  • Operasi perubahan ROWID, seperti `split partition`, `table move`, `table shrink`, dan `move partition key`, tidak didukung. Hal ini dapat menyebabkan ketidakkonsistenan data atau kegagalan tugas.

  • Enkripsi SSL tidak didukung untuk transfer data.

  • Mode Oracle Label Security tidak didukung.

  • Oracle adalah database komersial closed-source. Format log-nya dapat menimbulkan masalah yang tidak terhindarkan selama CDC dan penguraian oleh DTS karena karakteristik format yang diketahui maupun tidak diketahui. Sebelum mengaktifkan sinkronisasi inkremental atau migrasi dari sumber Oracle di lingkungan produksi, lakukan pengujian POC yang komprehensif. Pengujian ini harus mencakup semua jenis perubahan bisnis, penyesuaian skema tabel, dan pengujian stres jam puncak. Karena sifat tak terduga dari format log Oracle, pastikan logika bisnis di lingkungan produksi identik dengan fase POC. Hal ini sangat penting untuk operasi DTS yang stabil dan efisien.

Oracle sebagai tujuan

Batasan

Deskripsi

Versi yang didukung

Versi 10g, 11g, 12c, 18c, dan 19c didukung.

Arsitektur yang didukung

  • Arsitektur single-node dan Real Application Clusters (RAC) didukung.

    Catatan

    Jangan menambahkan atau menghapus node dari database Oracle dalam arsitektur RAC. Hal ini dapat menyebabkan tugas DTS gagal.

  • Arsitektur Container Database (CDB) dan non-CDB didukung untuk versi 12c dan yang lebih baru.

    Catatan

    Satu tugas hanya dapat memigrasikan satu Pluggable Database (PDB).

Bandwidth jaringan

Harus 100 Mb/s atau lebih tinggi.

Jenis koneksi

  • Koneksi menggunakan alamat IP jaringan publik dan Alamat IP pribadi didukung.

  • Untuk arsitektur RAC, koneksi menggunakan Scan IP, VIP single-node, atau alamat IP fisik didukung.

  • Koneksi melalui Jalur sewa didukung. Koneksi ke Scan IP node RAC melalui Jalur sewa tidak didukung.

  • Koneksi ke database primary dan secondary dalam konfigurasi ADG didukung.

    Catatan

    Jika koneksi DTS mengarah ke database secondary ADG dan file redo online belum diarsipkan, instans DTS akan mengalami latensi.

  • Amazon RDS for Oracle didukung sebagai database tujuan.

Batasan lainnya

  • Sebelum memulai tugas sinkronisasi atau migrasi data, evaluasi performa database tujuan. Jalankan tugas selama jam sepi. Selama fase migrasi penuh, DTS mengonsumsi beberapa resource jaringan dan tulis pada database tujuan. Hal ini dapat meningkatkan beban database. Misalnya, pertahankan Beban CPU pada database sumber dan tujuan di bawah 30%.

  • DTS melakukan operasi `INSERT` secara konkuren selama sinkronisasi atau migrasi data penuh. Hal ini dapat menyebabkan fragmentasi tabel tertentu di database tujuan. Akibatnya, storage space yang digunakan oleh database tujuan akan lebih besar daripada database sumber setelah tugas selesai.

  • Oracle memperlakukan string kosong bertipe `VARCHAR` atau `VARCHAR2` sebagai `NULL`. Jika Anda menyinkronisasi atau memigrasikan data antar database heterogen dengan tujuan Oracle, hapus kendala NOT NULL dari field `VARCHAR` dan `VARCHAR2` di database Oracle. Jika tidak, instans DTS mungkin gagal.

  • Di Oracle, field dengan presisi karakter, seperti `VARCHAR` dan `VARCHAR2`, dapat menyimpan maksimal 4000 byte. Jika Anda menyinkronisasi atau memigrasikan data antar database heterogen dengan tujuan Oracle dan data gagal ditulis ke field `VARCHAR` atau `VARCHAR2`, ubah tipe field tersebut menjadi `CLOB` dan restart instans DTS.

Konfigurasi database

  • Untuk tugas penuh dengan sumber Oracle, tidak diperlukan konfigurasi khusus pada database sumber.

  • Untuk tugas inkremental dengan sumber Oracle, Anda harus menyelesaikan konfigurasi berikut pada database Oracle untuk menangkap perubahan inkremental dengan mengambil dan mengurai log sumber.

  • Untuk tugas penuh atau inkremental dengan tujuan Oracle, tidak diperlukan konfigurasi khusus pada database tujuan.

Oracle yang dikelola sendiri sebagai sumber

Aktifkan Mode ARSIPLOG

  1. Periksa apakah Mode ARSIPLOG sudah diaktifkan pada database sumber.

    archive log list;
    Catatan
    • Jika Database log mode diatur ke Archive Mode, Mode ARSIPLOG sudah diaktifkan. Lanjutkan ke Aktifkan pencatatan tambahan.

    • Periode retensi untuk log arsip harus minimal 3 hari.

  2. Restart database.

    Penting

    Untuk menghindari gangguan layanan, lakukan operasi ini selama jam sepi.

    shutdown immediate;
    startup mount;
  3. Aktifkan Mode ARSIPLOG.

    alter database archivelog;
    alter database open;
  4. Verifikasi bahwa konfigurasi Mode ARSIPLOG telah berlaku.

    archive log list;

Aktifkan pencatatan tambahan

DTS mendukung dua mode pencatatan tambahan: tingkat database dan tingkat tabel. Anda dapat memilih mode sesuai kebutuhan.

  • Pencatatan tambahan tingkat database: Mode ini meningkatkan stabilitas tugas DTS.

  • Pencatatan tambahan tingkat tabel: Mode ini menghemat ruang disk pada database Oracle sumber. Namun, jika granularitas migrasi berada pada tingkat database, tabel yang ditambahkan menggunakan Data Definition Language (DDL) dan tidak memiliki pencatatan tambahan yang diaktifkan tidak akan dimigrasikan.

Aktifkan pencatatan tambahan tingkat database

  1. Periksa apakah pencatatan tambahan tingkat database sudah diaktifkan.

    SELECT supplemental_log_data_min, supplemental_log_data_pk,supplemental_log_data_ui FROM v$database;

    Jika output sebagai berikut, pencatatan tambahan tingkat database sudah diaktifkan dan Anda tidak perlu melakukan langkah-langkah berikutnya.

    SUPPLEME SUP SUP
    -------- --- ---
    IMPLICIT YES YES
  2. Aktifkan pencatatan tambahan minimal untuk database.

    alter database add supplemental log data;
  3. Aktifkan pencatatan tambahan untuk primary key dan unique key pada tingkat database.

    alter database add supplemental log data (primary key,unique index) columns;
  4. Verifikasi bahwa pencatatan tambahan tingkat database sudah diaktifkan.

    SELECT supplemental_log_data_min, supplemental_log_data_pk,supplemental_log_data_ui FROM v$database;

Aktifkan pencatatan tambahan tingkat tabel

  1. Aktifkan pencatatan tambahan minimal.

    alter database add supplemental log data;
  2. Aktifkan pencatatan tambahan tingkat tabel. Anda dapat memilih salah satu metode berikut.

    • Aktifkan pencatatan tambahan primary key untuk tabel

      alter table <table_name> add supplemental log data (primary key) columns;
    • Aktifkan pencatatan tambahan semua kolom untuk tabel

      alter table <table_name> add supplemental log data (all) columns;

Amazon RDS for Oracle sebagai sumber

Aktifkan Mode ARSIPLOG

Jalankan perintah berikut untuk melihat dan mengatur periode retensi log arsip.

exec rdsadmin.rdsadmin_util.show_configuration;
exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours', 72);

Aktifkan pencatatan tambahan

DTS mendukung dua mode pencatatan tambahan: tingkat database dan tingkat tabel. Anda dapat memilih mode sesuai kebutuhan.

  • Pencatatan tambahan tingkat database: Mode ini meningkatkan stabilitas tugas DTS.

  • Pencatatan tambahan tingkat tabel: Mode ini menghemat ruang disk pada database Oracle sumber. Namun, jika granularitas migrasi berada pada tingkat database, tabel yang ditambahkan menggunakan Data Definition Language (DDL) dan tidak memiliki pencatatan tambahan yang diaktifkan tidak akan dimigrasikan.

Aktifkan pencatatan tambahan tingkat database

  1. Periksa apakah pencatatan tambahan tingkat database sudah diaktifkan.

    SELECT supplemental_log_data_min, supplemental_log_data_pk,supplemental_log_data_ui FROM v$database;

    Jika output sebagai berikut, pencatatan tambahan tingkat database sudah diaktifkan dan Anda tidak perlu melakukan langkah-langkah berikutnya.

    SUPPLEME SUP SUP
    -------- --- ---
    IMPLICIT YES YES
  2. Aktifkan mode forced logging.

    exec rdsadmin.rdsadmin_util.force_logging(p_enable => true);
  3. Aktifkan pencatatan tambahan untuk primary key dan unique key pada tingkat database.

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'PRIMARY KEY');
    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'UNIQUE');

Aktifkan pencatatan tambahan tingkat tabel

  1. Aktifkan pencatatan tambahan semua kolom untuk tabel.

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'ALL');
  2. Aktifkan pencatatan tambahan primary key untuk tabel.

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD', 'PRIMARY KEY');

Oracle sebagai tujuan

Tidak diperlukan konfigurasi khusus.

Persiapan akun database

Oracle sebagai sumber

Saat menggunakan DTS untuk menyinkronisasi atau memigrasikan data dari sumber Oracle, Anda harus membuat akun database untuk pengumpulan data dan memberikan izin yang diperlukan kepada akun tersebut. Izin yang diperlukan bervariasi berdasarkan jenis tugas:

  • Untuk tugas skema dan penuh, Anda dapat memberikan role DBA atau izin detail halus.

  • Untuk tugas inkremental, Anda harus memberikan izin detail halus.

    Penting

    Untuk tugas inkremental dari sumber Oracle non-container database (non-CDB), Anda juga dapat memberikan role DBA kepada akun pengumpulan data.

Berikan role DBA

# Buat akun database (misalnya, rdsdt_dtsacct) dan berikan izin.
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant dba to rdsdt_dtsacct;

# Masuk dengan akun rdsdt_dtsacct dan periksa apakah izin telah diberikan.
select * from user_tab_privs;
select granted_role from user_role_privs;

Izin detail halus untuk tugas skema dan penuh

# Buat akun database (misalnya, rdsdt_dtsacct) dan berikan izin.
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;
grant select any table to rdsdt_dtsacct;

# Masuk dengan akun rdsdt_dtsacct dan periksa apakah izin telah diberikan.
select * from user_role_privs;
select * from user_sys_privs;

Izin detail halus untuk tugas inkremental

Oracle 10g dan 11g

# Buat akun database (misalnya, rdsdt_dtsacct) dan berikan izin.
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;

grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;

grant select on all_objects to rdsdt_dtsacct;
grant select on all_tab_cols to rdsdt_dtsacct;
grant select on dba_registry to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;

grant select on v_$log to rdsdt_dtsacct;
grant select on v_$logfile to rdsdt_dtsacct;
grant select on v_$standby_log to rdsdt_dtsacct;
-- Berikan izin v_$standby_log jika database Oracle adalah database secondary ADG.
grant select on v_$archived_log to rdsdt_dtsacct;
grant select on v_$parameter to rdsdt_dtsacct;
grant select on v_$database to rdsdt_dtsacct;
grant select on v_$active_instances to rdsdt_dtsacct;
grant select on v_$instance to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;

grant select on sys.USER$ to rdsdt_dtsacct;
grant select on sys.OBJ$ to rdsdt_dtsacct;
grant select on sys.COL$ to rdsdt_dtsacct;
grant select on sys.IND$ to rdsdt_dtsacct;
grant select on sys.ICOL$ to rdsdt_dtsacct;
grant select on sys.CDEF$ to rdsdt_dtsacct;
grant select on sys.CCOL$ to rdsdt_dtsacct;
grant select on sys.TABPART$ to rdsdt_dtsacct;
grant select on sys.TABSUBPART$ to rdsdt_dtsacct;
grant select on sys.TABCOMPART$ to rdsdt_dtsacct;

# Masuk dengan akun rdsdt_dtsacct dan periksa apakah izin telah diberikan.
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

Oracle 12c hingga 19c (non-CDB)

# Buat akun database (misalnya, rdsdt_dtsacct) dan berikan izin.
create user rdsdt_dtsacct IDENTIFIED BY rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;
grant logmining to rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;

grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;

grant select on all_objects to rdsdt_dtsacct;
grant select on all_tab_cols to rdsdt_dtsacct;
grant select on dba_registry to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;

grant select on v_$log to rdsdt_dtsacct;
grant select on v_$logfile to rdsdt_dtsacct;
grant select on v_$standby_log to rdsdt_dtsacct;
-- Berikan izin v_$standby_log jika database Oracle adalah database secondary ADG.
grant select on v_$archived_log to rdsdt_dtsacct;
grant select on v_$parameter to rdsdt_dtsacct;
grant select on v_$database to rdsdt_dtsacct;
grant select on v_$active_instances to rdsdt_dtsacct;
grant select on v_$instance to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;

grant select on sys.USER$ to rdsdt_dtsacct;
grant select on sys.OBJ$ to rdsdt_dtsacct;
grant select on sys.COL$ to rdsdt_dtsacct;
grant select on sys.IND$ to rdsdt_dtsacct;
grant select on sys.ICOL$ to rdsdt_dtsacct;
grant select on sys.CDEF$ to rdsdt_dtsacct;
grant select on sys.CCOL$ to rdsdt_dtsacct;
grant select on sys.TABPART$ to rdsdt_dtsacct;
grant select on sys.TABSUBPART$ to rdsdt_dtsacct;
grant select on sys.TABCOMPART$ to rdsdt_dtsacct;

# Masuk dengan akun rdsdt_dtsacct dan periksa apakah izin telah diberikan.
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

Oracle 12c hingga 19c (CDB)

Penting

Nama akun yang Anda buat di pluggable database (PDB) harus sama dengan nama akun yang Anda buat di kontainer CDB$ROOT, tanpa awalan C## untuk pengguna umum.

# Beralih ke PDB, buat akun database (misalnya, rdsdt_dtsacct), dan berikan izin.
alter session set container = ORCLPDB1;

create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant select_catalog_role to rdsdt_dtsacct;
grant logmining TO rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;

grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;

grant select on all_objects to rdsdt_dtsacct;
grant select on all_tab_cols to rdsdt_dtsacct;
grant select on dba_registry to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;

grant select on v_$pdbs to rdsdt_dtsacct;
grant select on v_$log to rdsdt_dtsacct;
grant select on v_$logfile to rdsdt_dtsacct;
grant select on v_$standby_log to rdsdt_dtsacct;
-- Berikan izin v_$standby_log jika database Oracle adalah database secondary ADG.
grant select on v_$archived_log to rdsdt_dtsacct;
grant select on v_$parameter to rdsdt_dtsacct;
grant select on v_$database to rdsdt_dtsacct;
grant select on v_$active_instances to rdsdt_dtsacct;
grant select on v_$instance to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;

grant select on sys.USER$ to rdsdt_dtsacct;
grant select on sys.OBJ$ to rdsdt_dtsacct;
grant select on sys.COL$ to rdsdt_dtsacct;
grant select on sys.IND$ to rdsdt_dtsacct;
grant select on sys.ICOL$ to rdsdt_dtsacct;
grant select on sys.CDEF$ to rdsdt_dtsacct;
grant select on sys.CCOL$ to rdsdt_dtsacct;
grant select on sys.TABPART$ to rdsdt_dtsacct;
grant select on sys.TABSUBPART$ to rdsdt_dtsacct;
grant select on sys.TABCOMPART$ to rdsdt_dtsacct;

# Beralih ke CDB$ROOT, buat akun, dan berikan izin.
alter session set container = CDB$ROOT;

# Buat akun database (misalnya, rdsdt_dtsacct) dan berikan izin. Jika menggunakan metode ini, Anda harus mengubah parameter default database Oracle.
alter session set "_ORACLE_SCRIPT"=true;
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant logmining to rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;
grant select on v_$logmnr_contents to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;

# Masuk dengan akun rdsdt_dtsacct dan periksa apakah izin telah diberikan.
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

Amazon RDS for Oracle (non-CDB)

Catatan

Gunakan Oracle SQL Developer untuk memberikan izin.

# Buat akun database (misalnya, RDSDT_DTSACCT) dan berikan izin.
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant logmining to rdsdt_dtsacct;
grant execute_catalog_role to rdsdt_dtsacct;

grant select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;

exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_OBJECTS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_COLS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGFILE','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ACTIVE_INSTANCES','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$INSTANCE','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR','RDSDT_DTSACCT','EXECUTE');

exec rdsadmin.rdsadmin_util.grant_sys_object('USER$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('OBJ$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('COL$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('IND$',  'RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ICOL$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('CDEF$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('CCOL$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('TABPART$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('TABSUBPART$','RDSDT_DTSACCT','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('TABCOMPART$','RDSDT_DTSACCT','SELECT');

# Masuk dengan akun RDSDT_DTSACCT dan periksa apakah izin telah diberikan.
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;

Oracle sebagai tujuan

Saat menggunakan DTS untuk menyinkronisasi atau memigrasikan data ke tujuan Oracle, Anda harus membuat akun database untuk replikasi data dan memberikan izin yang diperlukan kepada akun tersebut. Izin yang diperlukan bervariasi berdasarkan jenis tugas:

  • Untuk tugas skema, Anda harus memberikan role DBA.

  • Untuk tugas penuh dan inkremental, Anda harus memberikan role resource.

Berikan role DBA

# Buat akun database (misalnya, rdsdt_dtsacct) dan berikan izin.
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant dba to rdsdt_dtsacct;

# Masuk dengan akun rdsdt_dtsacct dan periksa apakah izin telah diberikan.
select * from user_tab_privs;
select granted_role from user_role_privs;

Berikan role resource

# Buat akun database (misalnya, rdsdt_dtsacct) dan berikan izin.
create user rdsdt_dtsacct identified by rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;

grant connect to rdsdt_dtsacct;
grant resource to rdsdt_dtsacct;

# Masuk dengan akun rdsdt_dtsacct dan periksa apakah izin telah diberikan.
select * from user_tab_privs;
select granted_role from user_role_privs;

Langkah selanjutnya

Konfigurasikan tugas dengan sumber atau tujuan Oracle. Untuk informasi selengkapnya, lihat topik konfigurasi terkait di Solusi sinkronisasi atau Solusi migrasi.

Lampiran

Tabel berikut mencantumkan tipe data dan set karakter Oracle yang didukung oleh tugas DTS.

Tipe data

Didukung

Tidak didukung

  • NUMBER

  • FLOAT

  • REAL

  • BINARY_FLOAT

  • CHAR [(size [BYTE | CHAR])]

  • NCHAR[(size)]

  • VARCHAR2(size [BYTE | CHAR])

  • NVARCHAR2(size)

  • CLOB

  • NCLOB

  • LONG

  • DATE

  • XMLTYPE: Disimpan sebagai Character Large Object (CLOB) didukung. Disimpan sebagai Binary Large Object (BLOB) tidak didukung.

    Catatan

    Mode penyimpanan Character Large Object (CLOB) didukung. Mode penyimpanan Binary Large Object (BLOB) tidak didukung.

  • RAW(size)

  • LONG_RAW

  • BLOB

  • TIMESTAMP[fractional_seconds_precision]

  • TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE

  • TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE

  • INTERVAL YEAR [(year_precision)] TO MONTH

  • INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)]

  • SDO_GEOMETRY

  • SDO_TOPO_GEOMETRY

  • SDO_GEORASTER

  • ROWID

  • UROWID

  • ANYTYPE

  • ANYDATA

  • ANYDATASET

  • VARRAY

  • Tipe yang ditentukan pengguna

Set karakter

Didukung

Tidak didukung

ASCII, ISO, UNICODE, US7ASCII, WE8HP, US8PC437, WE8EBCDIC285, WE8PC850, D7DEC, F7DEC, S7DEC, E7DEC, SF7ASCII, NDK7DEC, I7DEC, NL7DEC, CH7DEC, YUG7ASCII, SF7DEC, TR7DEC, IW7IS960, IN8ISCII, EE8ISO8859P2, SE8ISO8859P3, NEE8ISO8859P4, CL8ISO8859P5, AR8ISO8859P6, EL8ISO8859P7, IW8ISO8859P8, WE8ISO8859P9, NE8ISO8859P10, TH8TISASCII, BN8BSCII, VN8VN3, VN8MSWIN1258, WE8NEXTSTEP, AR8ASMO708PLUS, AR8EBCDICX, AR8XBASIC, EL8DEC, TR8DEC, WE8EBCDIC37, WE8EBCDIC37C, WE8EBCDIC500, WE8EBCDIC500C, WE8EBCDIC871, WE8EBCDIC284, EEC8EUROASCI, EEC8EUROPA3, LA8PASSPORT, BG8PC437S, EE8PC852, RU8PC866, RU8BESTA, IW8PC1507, RU8PC855, TR8PC857, CL8MACCYRILLIC, CL8MACCYRILLICS, WE8PC860, IS8PC861, EE8MSWIN1250, CL8MSWIN1251, ET8MSWIN923, BG8MSWIN, EL8MSWIN1253, IW8MSWIN1255, LT8MSWIN921, TR8MSWIN1254, WE8MSWIN1252, BLT8MSWIN1257, D8EBCDIC273, I8EBCDIC280, DK8EBCDIC277, S8EBCDIC278, F8EBCDIC297, IW8EBCDIC1086, N8PC865, BLT8CP921, LV8PC1117, LV8PC8LR, LV8RST104090, CL8KOI8R, BLT8PC775, F7SIEMENS9780X, E7SIEMENS9780X, S7SIEMENS9780X, DK7SIEMENS9780X, N7SIEMENS9780X, I7SIEMENS9780X, D7SIEMENS9780X, WE8GCOS7, EL8GCOS7, US8BS2000, D8BS2000, F8BS2000, E8BS2000, DK8BS2000, S8BS2000, WE8BS2000, WE8BS2000L5, CL8BS2000, WE8DG, WE8NCR4970, WE8ROMAN8, EE8MACCE, EE8MACCES, EE8MACCROATIAN, EE8MACCROATIANS, TR8MACTURKISH, TR8MACTURKISHS, IS8MACICELANDIC, IS8MACICELANDICS, EL8MACGREEK, EL8MACGREEKS, IW8MACHEBREW, IW8MACHEBREWS, US8ICL, WE8ICL, WE8ISOICLUK, WE8MACROMAN8, WE8MACROMAN8S, TH8MACTHAI, TH8MACTHAIS, HU8CWI2, EL8PC437S, EL8PC737, LT8PC772, LT8PC774, EL8PC869, EL8PC851, CDN8PC863, HU8ABMOD, AR8ASMO8X, AR8HPARABIC8T, AR8NAFITHA711, AR8NAFITHA711T, AR8SAKHR707, AR8SAKHR707T, AR8MUSSAD768, AR8MUSSAD768T, AR8ADOS710, AR8ADOS710T, AR8ADOS720, AR8ADOS720T, AR8APTEC715, AR8APTEC715T, AR8MSAWIN, AR8NAFITHA721, AR8NAFITHA721T, AR8SAKHR706, AR8ARABICMAC, AR8ARABICMACS, AR8ARABICMACT, LA8ISO6937, US8NOOP, WE8DEC, WE8DECTST, JA16VMS, JA16EUC, JA16EUCYEN, JA16EUCTILDE, JA16DBCS, JA16SJIS, JA16SJISTILDE, JA16SJISYEN, JA16EBCDIC930, JA16MACSJIS, KO16KSC5601, KO16DBCS, KO16KSCCS, KO16MSWIN949, ZHS16CGB231280, ZHS16MACCGB231280, ZHS16GBK, ZHS16DBCS, ZHS32GB18030, ZHT32EUC, ZHT32SOPS, ZHT16DBT, ZHT32TRIS, ZHT16DBCS, ZHT16BIG5, ZHT16CCDC, ZHT16MSWIN950, AL24UTFFSS, UTF8, UTFE, KO16TSTSET, JA16TSTSET2, JA16TSTSET, US16TSTFIXED, AL16UTF16LE, TH8TISEBCDIC, TH8TISEBCDICS, BLT8EBCDIC1112, BLT8EBCDIC1112S, CE8BS2000, CL8EBCDIC1025, CL8EBCDIC1025C, CL8EBCDIC1025R, CL8EBCDIC1025S, CL8EBCDIC1025X, CL8EBCDIC1158, CL8EBCDIC1158R, D8EBCDIC1141, DK8EBCDIC1142, EE8BS2000, EE8EBCDIC870, EE8EBCDIC870C, EE8EBCDIC870S, EL8EBCDIC423R, EL8EBCDIC875, EL8EBCDIC875S, EL8EBCDIC875R, F8EBCDIC1147, I8EBCDIC1144, WE8BS2000E, WE8EBCDIC1047, WE8EBCDIC1047E, WE8EBCDIC1140, WE8EBCDIC1140C, WE8EBCDIC1145, WE8EBCDIC1146, WE8EBCDIC1148, WE8EBCDIC1148C, AR8EBCDIC420S, IW8EBCDIC424, IW8EBCDIC424S, TR8EBCDIC1026, TR8EBCDIC1026S, ZHT16HKSCS, ZHT16HKSCS31, BLT8ISO8859P13, WE8ISO8859P1, WE8ISO8859P15, AR8MSWIN1256, S8EBCDIC1143, AZ8ISO8859P9E, CEL8ISO8859P14, CL8ISOIR111, CL8KOI8U, WE8PC858, WE8EBCDIC924, AL32UTF8, AL16UTF16

Set karakter lainnya