All Products
Search
Document Center

AnalyticDB:Migrasikan data dari database Oracle yang dikelola sendiri ke gudang data cloud-native AnalyticDB for PostgreSQL

Last Updated:Mar 28, 2026

Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari database Oracle yang dikelola sendiri ke instans AnalyticDB for PostgreSQL. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental sehingga Anda dapat melakukan migrasi dengan downtime minimal.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Memiliki database Oracle yang dikelola sendiri yang menjalankan versi 9i, 10g, 11g, 12c, 18c, atau 19c.

  • Database Oracle yang berjalan dalam Mode ARSIPLOG — DTS menggunakan LogMiner untuk membaca file log redo yang diarsipkan dan menangkap perubahan inkremental. Tanpa mode ini diaktifkan, migrasi data inkremental tidak dapat dilakukan.

  • Mengaktifkan pencatatan tambahan, termasuk SUPPLEMENTAL_LOG_DATA_PK dan SUPPLEMENTAL_LOG_DATA_UI — hal ini memastikan LogMiner menangkap cukup data kolom untuk merekonstruksi operasi DML secara akurat. Untuk detailnya, lihat Pencatatan Tambahan.

  • Sebuah instance AnalyticDB for PostgreSQL tujuan telah dibuat. Untuk detail selengkapnya, lihat Create an instance.

Penagihan

Jenis migrasiBiaya konfigurasi tugasBiaya lalu lintas Internet
Migrasi skema dan migrasi data penuhGratisDikenakan biaya hanya jika data dimigrasikan dari Alibaba Cloud melalui Internet. Lihat Ikhtisar penagihan.
Migrasi data inkrementalDikenakan biaya. Lihat Ikhtisar penagihan.

Jenis migrasi

Jenis migrasiDeskripsi
Migrasi skemaDTS memigrasikan skema dari sumber ke database tujuan, termasuk tabel, indeks, batasan, fungsi, sekuens, dan tampilan.
Catatan

Karena sumber dan tujuan merupakan database heterogen, DTS tidak menjamin konsistensi skema setelah migrasi. Evaluasi dampak konversi tipe data sebelum melanjutkan. Lihat Pemetaan tipe data antar database heterogen. Untuk tabel partisi, DTS mengabaikan definisi partisi — definisikan partisi secara manual di database tujuan.

Migrasi data penuhDTS memigrasikan semua data historis dari sumber ke database tujuan. Jangan lakukan operasi DDL pada objek yang sedang dimigrasikan selama migrasi skema atau migrasi data penuh, karena hal ini dapat menyebabkan kegagalan migrasi.
Migrasi data inkrementalSetelah migrasi data penuh selesai, DTS membaca file log redo dari database Oracle sumber dan mereplikasi perubahan ke tujuan secara real time. Operasi DML yang didukung: INSERT, UPDATE, DELETE. Operasi DDL yang didukung: ADD COLUMN saja. Migrasi inkremental memungkinkan aplikasi Anda tetap berjalan di database sumber selama proses migrasi berlangsung.

Catatan penggunaan

  • Selama migrasi data penuh, DTS menggunakan resource baca dan tulis di kedua database (sumber dan tujuan), yang dapat meningkatkan beban server. Jalankan migrasi selama jam sepi untuk mengurangi dampaknya.

  • Jika tugas migrasi data gagal dan secara otomatis dilanjutkan oleh DTS, hentikan atau lepas tugas tersebut sebelum mengalihkan beban kerja ke database tujuan. Jika tidak, data dari sumber akan menimpa data di tujuan setelah tugas dilanjutkan.

  • Jika database Oracle yang dikelola sendiri menggunakan arsitektur Real Application Cluster (RAC) dan terhubung ke DTS melalui virtual private cloud (VPC) Alibaba Cloud, hubungkan alamat IP Single Client Access Name (SCAN) dari Oracle RAC dan alamat IP virtual (VIP) dari setiap node ke VPC, serta konfigurasikan entri rute untuk memastikan tugas DTS berjalan sesuai harapan. Lihat Hubungkan pusat data ke DTS menggunakan VPN Gateway.

Penting

Saat mengonfigurasi database Oracle sumber di konsol DTS, tentukan alamat IP SCAN dari Oracle RAC sebagai titik akhir database atau alamat IP.

Izin yang diperlukan untuk akun database

DatabaseMigrasi skemaMigrasi data penuhMigrasi data inkremental
Database Oracle yang dikelola sendiriIzin pemilik skemaIzin pemilik skemaAdministrator basis data (DBA)
AnalyticDB for PostgreSQLIzin baca dan tulisIzin baca dan tulisIzin baca dan tulis

Untuk membuat akun database dan memberikan izin, lihat:

Penting

Jika Anda memerlukan migrasi data inkremental tetapi tidak dapat memberikan izin DBA kepada akun database, berikan izin detail halus sebagai gantinya. Lihat bagian berikut.

Aktifkan pencatatan dan berikan izin detail halus (ketika izin DBA tidak tersedia)

Jika Anda tidak dapat memberikan izin DBA ke akun database Oracle, ikuti langkah-langkah berikut untuk mengaktifkan pencatatan arsip dan pencatatan tambahan, lalu berikan izin minimum yang diperlukan.

Langkah 1: Aktifkan pencatatan

JenisPernyataan
Pencatatan arsipshutdown immediate;
startup mount;
alter database archivelog;
alter database open;
archive log list;
Pencatatan tambahan (tingkat database — direkomendasikan untuk stabilitas tugas DTS)alter database add supplemental log data;
alter database add supplemental log data (primary key,unique index) columns;
Pencatatan tambahan (tingkat tabel — mengurangi penggunaan disk pada sumber)alter database add supplemental log data;
Kemudian untuk setiap tabel, jalankan salah satu:
alter table table_name add supplemental log data (primary key) columns;
atau:
alter table tb_name add supplemental log data (all) columns;
Pencatatan paksaalter database force logging;

Langkah 2: Berikan izin detail halus

Temukan versi dan arsitektur Oracle Anda pada tabel di bawah ini, lalu jalankan blok SQL yang sesuai.

Oracle databaseBuka
Versi 9i, 10g, atau 11gVersi Oracle 9i hingga 11g
Versi 12c hingga 19c, arsitektur multitenan (CDB/PDB)Versi Oracle 12c hingga 19c — arsitektur multitenan
Versi 12c hingga 19c, arsitektur non-multitenan (non-CDB)Versi Oracle 12c hingga 19c — arsitektur non-multitenan

Versi Oracle 9i hingga 11g

-- Buat akun database bernama rdsdt_dtsacct dan berikan izin ke akun tersebut.
create user rdsdt_dtsacct IDENTIFIED BY rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant resource to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;
grant select on V_$LOGMNR_LOGS 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 select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;
-- hak akses v$log
grant select on v_$log to rdsdt_dtsacct;
-- hak akses v$logfile
grant select on v_$logfile to rdsdt_dtsacct;
-- hak akses v$archived_log
grant select on v_$archived_log to rdsdt_dtsacct;
-- hak akses v$parameter
grant select on v_$parameter to rdsdt_dtsacct;
-- hak akses v$database
grant select on v_$database to rdsdt_dtsacct;
-- hak akses v$active_instances
grant select on v_$active_instances to rdsdt_dtsacct;
-- hak akses v$instance
grant select on v_$instance to rdsdt_dtsacct;
-- hak akses v$logmnr_contents
grant select on v_$logmnr_contents to rdsdt_dtsacct;
-- Tabel sistem
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;
grant select_catalog_role TO rdsdt_dtsacct;

Versi Oracle 12c hingga 19c — arsitektur multitenan

Jalankan SQL berikut dalam dua tahap: pertama di database yang dapat dicolokkan (PDB), lalu di root database kontainer (CDB).

Tahap 1: Beralih ke PDB dan berikan izin

-- Beralih ke database yang dapat dicolokkan (PDB).
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 resource to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr 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 select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;
-- hak akses v$log
grant select on v_$log to rdsdt_dtsacct;
-- hak akses v$logfile
grant select on v_$logfile to rdsdt_dtsacct;
-- hak akses v$archived_log
grant select on v_$archived_log to rdsdt_dtsacct;
-- hak akses v$parameter
grant select on v_$parameter to rdsdt_dtsacct;
-- hak akses v$database
grant select on v_$database to rdsdt_dtsacct;
-- hak akses v$active_instances
grant select on v_$active_instances to rdsdt_dtsacct;
-- hak akses v$instance
grant select on v_$instance to rdsdt_dtsacct;
-- hak akses v$logmnr_contents
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;
-- hak akses V$PDBS
grant select on V_$PDBS to rdsdt_dtsacct;
grant select on v$database to rdsdt_dtsacct;
grant select on dba_objects to rdsdt_dtsacct;
grant select on DBA_TAB_COMMENTS to rdsdt_dtsacct;
grant select on dba_tab_cols to rdsdt_dtsacct;
grant select_catalog_role TO rdsdt_dtsacct;

Tahap 2: Beralih ke CDB$ROOT dan berikan izin

-- Beralih ke CDB$ROOT (kontainer root dari database kontainer).
ALTER SESSION SET container = CDB$ROOT;
-- Ubah parameter default Oracle untuk mengizinkan pembuatan pengguna di CDB$ROOT.
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 select on v_$logmnr_contents to rdsdt_dtsacct;
grant LOGMINING TO rdsdt_dtsacct;
grant EXECUTE_CATALOG_ROLE to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;

Versi Oracle 12c hingga 19c — arsitektur non-multitenan

-- Buat akun database bernama rdsdt_dtsacct dan berikan izin ke akun tersebut.
create user rdsdt_dtsacct IDENTIFIED BY rdsdt_dtsacct;
grant create session to rdsdt_dtsacct;
grant connect to rdsdt_dtsacct;
grant resource to rdsdt_dtsacct;
grant select on V_$LOGMNR_LOGS 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 select any table to rdsdt_dtsacct;
grant select any transaction to rdsdt_dtsacct;
grant select on v$database to rdsdt_dtsacct;
grant select on dba_objects to rdsdt_dtsacct;
grant select on DBA_TAB_COMMENTS to rdsdt_dtsacct;
grant select on dba_tab_cols to rdsdt_dtsacct;
-- hak akses v$log
grant select on v_$log to rdsdt_dtsacct;
-- hak akses v$logfile
grant select on v_$logfile to rdsdt_dtsacct;
-- hak akses v$archived_log
grant select on v_$archived_log to rdsdt_dtsacct;
-- hak akses v$parameter
grant select on v_$parameter to rdsdt_dtsacct;
-- hak akses v$database
grant select on v_$database to rdsdt_dtsacct;
-- hak akses v$active_instances
grant select on v_$active_instances to rdsdt_dtsacct;
-- hak akses v$instance
grant select on v_$instance to rdsdt_dtsacct;
-- hak akses v$logmnr_contents
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;
grant LOGMINING TO rdsdt_dtsacct;
grant EXECUTE_CATALOG_ROLE to rdsdt_dtsacct;
grant execute on sys.dbms_logmnr to rdsdt_dtsacct;
grant select_catalog_role TO rdsdt_dtsacct;

Buat tugas migrasi

  1. Masuk ke Konsol DTS.

    Jika Anda dialihkan ke Konsol Data Management (DMS), klik ikon old di image untuk kembali ke versi sebelumnya Konsol DTS.
  2. Di panel navigasi kiri, klik Data Migration.

  3. Di bagian atas halaman Migration Tasks, pilih wilayah tempat instans tujuan berada.

  4. Di pojok kanan atas, klik Create Migration Task.

  5. Konfigurasikan database sumber dan tujuan.

    BagianParameterDeskripsi
    N/ANama TugasNama tugas yang dihasilkan DTS secara otomatis. Tentukan nama deskriptif agar mudah mengidentifikasi tugas tersebut. Nama tugas tidak perlu unik.
    Database SumberTipe InstansMetode akses untuk database sumber. Pada contoh ini, dipilih User-Created Database in ECS Instance.
    Penting

    Jika Anda memilih tipe instans berbeda, siapkan lingkungan yang diperlukan untuk database yang dikelola sendiri terlebih dahulu. Lihat Ikhtisar persiapan.

    Wilayah InstansWilayah tempat instans Elastic Compute Service (ECS) yang menjalankan database Oracle sumber berada.
    ID Instans ECSID instans ECS yang menjalankan database Oracle sumber.
    Tipe DatabaseJenis database sumber. Pilih Oracle.
    Nomor PortPort layanan database Oracle sumber. Default: 1521.
    Tipe InstansArsitektur database Oracle sumber. Pilih Non-RAC Instance untuk menentukan parameter SID, atau RAC or PDB Instance untuk menentukan parameter Service Name. Contoh ini menggunakan Non-RAC Instance.
    SIDID sistem (SID) database Oracle sumber.
    Akun DatabaseAkun untuk database Oracle sumber. Untuk izin yang diperlukan, lihat Izin yang diperlukan untuk akun database.
    Kata Sandi DatabaseKata sandi untuk akun database. Setelah memasukkan detail database sumber, klik Test Connectivity di samping Database Password untuk memverifikasi koneksi. Status Passed menunjukkan kredensial valid; jika muncul Failed, klik Check untuk meninjau dan memperbaiki detailnya.
    Database TujuanTipe InstansJenis database tujuan. Pilih AnalyticDB for PostgreSQL.
    Wilayah InstanceWilayah tempat instans AnalyticDB for PostgreSQL tujuan berada.
    ID InstansID instans AnalyticDB for PostgreSQL tujuan.
    Nama DatabaseNama database tujuan.
    Akun DatabaseAkun untuk instans AnalyticDB for PostgreSQL tujuan. Untuk izin yang diperlukan, lihat Izin yang diperlukan untuk akun database.
    Kata Sandi DatabaseKata sandi untuk akun database.

    Configure the source and destination databases

  6. Di pojok kanan bawah, klik Set Whitelist and Next.

    Peringatan

    Menambahkan blok CIDR server DTS ke daftar putih database atau aturan security group ECS menciptakan risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan seperti menerapkan kredensial kuat, membatasi port yang terbuka, mengotentikasi panggilan API, mengaudit aturan daftar putih secara berkala, dan lebih memilih Express Connect, VPN Gateway, atau Smart Access Gateway untuk menghubungkan database Anda ke DTS.

  7. Pilih jenis migrasi, jenis operasi, dan objek yang akan dimigrasikan.

    PengaturanDeskripsi
    Jenis migrasiUntuk hanya melakukan migrasi skema dan migrasi data penuh, pilih Schema Migration dan Full Data Migration. Untuk menjaga aplikasi tetap berjalan selama migrasi, pilih juga Incremental Data Migration.
    Catatan

    Jika Incremental Data Migration tidak dipilih, hindari menulis data ke database sumber selama migrasi data penuh untuk menjaga konsistensi data.

    Jenis operasiPilih jenis operasi yang akan dimigrasikan selama migrasi data inkremental. Semua jenis operasi dipilih secara default.
    Objek yang akan dimigrasikanPilih objek dari bagian Available dan klik ikon 向右小箭头 untuk memindahkannya ke bagian Selected. Anda dapat memilih kolom, tabel, atau skema. Nama objek tetap tidak berubah di tujuan secara default. Untuk mengganti nama objek di tujuan, gunakan fitur pemetaan nama objek. Lihat Pemetaan nama objek.
    Catatan

    Mengganti nama objek dapat menyebabkan migrasi objek dependen gagal.

    Pemetaan nama objekGunakan fitur ini untuk mengganti nama objek di instans tujuan. Lihat Pemetaan nama objek.
    Rentang waktu percobaan ulangJika DTS tidak dapat terhubung ke database sumber atau tujuan, DTS akan mencoba ulang hingga 12 jam secara default. Sesuaikan rentang ini sesuai kebutuhan Anda. DTS akan melanjutkan tugas migrasi jika terhubung kembali dalam jendela percobaan ulang; jika tidak, tugas akan gagal.
    Catatan

    Anda dikenai biaya untuk instans DTS selama jendela percobaan ulang. Segera lepas instans DTS setelah instans sumber dan tujuan dilepas.

    Lampirkan nama objek dalam tanda kutipJika dipilih dan kondisi berikut berlaku, DTS akan melampirkan nama objek dalam tanda kutip tunggal (') atau ganda (") selama migrasi skema dan migrasi data inkremental: lingkungan bisnis sumber peka huruf besar/kecil dan nama database mengandung huruf besar dan kecil; nama tabel sumber tidak diawali huruf atau mengandung karakter selain huruf, angka, garis bawah (_), tanda pagar (#), atau tanda dolar ($); nama skema, tabel, atau kolom merupakan kata kunci, kata kunci yang dicadangkan, atau karakter tidak valid di database tujuan.

    Select the migration types and the objects to be migrated

  8. Tentukan kolom kunci primer dan kunci distribusi untuk tabel yang dimigrasikan ke AnalyticDB for PostgreSQL.

    Untuk detail tentang kolom kunci primer dan kunci distribusi, lihat Definisikan batasan dan Definisikan distribusi tabel. Jika DTS mendeteksi tabel tanpa kunci primer, opsi Set Primary Keys and Distribution Keys of All Tables Without Primary Keys to ROWID akan muncul. Memilihnya akan menambahkan ROWID sebagai kunci primer dan kunci distribusi untuk tabel tujuan tersebut.

    Advanced settings: Migrate Oracle to AnalyticDB for PostgreSQL

  9. Di pojok kanan bawah, klik Precheck.

    DTS menjalankan pemeriksaan awal sebelum memulai tugas migrasi. Tugas hanya dapat dimulai setelah lulus pemeriksaan awal. Jika ada item yang gagal, klik ikon Info icon untuk melihat detailnya, perbaiki masalah berdasarkan penyebabnya, dan jalankan ulang pemeriksaan awal. Anda juga dapat mengabaikan item yang gagal dan menjalankan ulang pemeriksaan awal jika kegagalannya tidak kritis.
  10. Setelah tugas lulus pemeriksaan awal, klik Next.

  11. Pada kotak dialog Confirm Settings, atur parameter Channel Specification dan pilih Data Transmission Service (Pay-As-You-Go) Service Terms.

  12. Klik Buy and Start untuk memulai tugas migrasi.

Hentikan migrasi dan alihkan

Cara menghentikan migrasi tergantung pada jenis migrasi yang Anda pilih.

Hanya migrasi skema dan migrasi data penuh

Jangan hentikan tugas secara manual. Tunggu hingga tugas berhenti secara otomatis. Menghentikan lebih awal dapat menyebabkan database tujuan memiliki data yang tidak lengkap.

Migrasi skema, migrasi data penuh, dan migrasi data inkremental

Tugas migrasi inkremental tidak berhenti secara otomatis. Hentikan tugas secara manual ketika data Anda sudah sepenuhnya sinkron.

Penting

Hentikan tugas selama jam sepi atau tepat sebelum Anda mengalihkan trafik aplikasi ke instans tujuan.

Untuk mengalihkan:

  1. Tunggu hingga bilah progres menampilkan Incremental Data Migration dan status The migration task is not delayed.

  2. Hentikan penulisan data ke database sumber selama beberapa menit. Latensi migrasi inkremental mungkin meningkat sebentar.

  3. Tunggu hingga status kembali menjadi The migration task is not delayed.

  4. Hentikan tugas migrasi secara manual.

    Stop an incremental data migration task

  5. Arahkan trafik aplikasi Anda ke instans AnalyticDB for PostgreSQL tujuan.

Langkah selanjutnya