All Products
Search
Document Center

AnalyticDB:Sinkronisasi data dari database SQL Server yang dikelola sendiri pada instans ECS ke instans gudang data cloud-native AnalyticDB for PostgreSQL

Last Updated:Mar 28, 2026

Gunakan Data Transmission Service (DTS) untuk menyiapkan pipeline sinkronisasi data berkelanjutan dari database SQL Server yang dikelola sendiri yang dihosting pada Elastic Compute Service (ECS) ke instans AnalyticDB for PostgreSQL. DTS menangani pemuatan penuh awal, lalu menangkap perubahan berkelanjutan melalui log transaksi SQL Server sehingga beban kerja analitik Anda tetap selaras dengan database operasional.

Cara kerja

DTS membaca log transaksi SQL Server untuk menangkap perubahan inkremental setelah sinkronisasi data penuh awal. Agar proses ini berjalan, database sumber harus beroperasi dalam mode pemulihan penuh (full recovery mode)—yang memastikan log transaksi menyimpan perubahan cukup lama agar dapat dibaca oleh DTS. DTS juga menambahkan tabel heartbeat bernama <source_table_name>_dts_mysql_heartbeat ke database sumber guna melacak latensi sinkronisasi.

Prasyarat

Sebelum memulai, pastikan hal-hal berikut:

  • Versi SQL Server adalah 2008, 2008 R2, 2012, 2014, 2016, 2017, atau 2019.

  • Tabel yang akan disinkronkan memiliki kunci primer atau indeks UNIQUE NOT NULL.

  • Instans AnalyticDB for PostgreSQL memiliki ruang penyimpanan tersedia yang lebih besar daripada total ukuran data di database SQL Server sumber.

  • Jika database SQL Server Anda dideploy dalam grup ketersediaan Always On, gunakan mode synchronous-commit.

Penagihan

Tipe sinkronisasiBiaya
Sinkronisasi skema dan sinkronisasi data penuhGratis
Sinkronisasi data inkrementalDikenai biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan.

Batasan

Objek skema yang tidak didukung

DTS tidak menyinkronkan assembly, Service Broker, indeks teks penuh (full-text indexes), katalog teks penuh (full-text catalogs), skema terdistribusi, fungsi terdistribusi, prosedur tersimpan CLR, fungsi skalar bernilai CLR, fungsi bernilai tabel CLR, tabel internal, sistem, atau fungsi agregat.

Tipe data yang tidak didukung

DTS tidak menyinkronkan kolom dengan tipe berikut: TIMESTAMP, CURSOR, ROWVERSION, HIERARCHYID, SQL\_VARIANT, SPATIAL GEOMETRY, SPATIAL GEOGRAPHY, dan TABLE.

Batasan lainnya

  • Tabel dengan kolom terhitung (computed columns) tidak disinkronkan.

  • Operasi DDL transaksional tidak dimigrasikan.

Operasi SQL yang didukung

  • DML: INSERT, UPDATE, dan DELETE

  • DDL: hanya ADD COLUMN

Izin yang diperlukan

Izin yang diperlukan bergantung pada apakah Anda memerlukan sinkronisasi data inkremental.

Hanya sinkronisasi penuh (skema + data penuh)

DatabaseIzin yang diperlukan
SQL Server yang dikelola sendirisysadmin
AnalyticDB for PostgreSQLLOGIN; SELECT, CREATE, INSERT, UPDATE, dan DELETE pada tabel tujuan; CONNECT dan CREATE pada database tujuan; CREATE pada skema tujuan; izin COPY

Sinkronisasi penuh + sinkronisasi data inkremental

Set izin yang sama berlaku. Untuk akun AnalyticDB for PostgreSQL, akun awal instans tersebut telah memiliki semua izin yang diperlukan.

Untuk petunjuk pemberian izin, lihat:

Catatan penggunaan

  • DTS menggunakan sumber daya baca dan tulis pada kedua instans sumber dan tujuan selama sinkronisasi data penuh awal, yang meningkatkan beban mereka. Jalankan sinkronisasi selama jam sepi—idealnya ketika utilisasi CPU kedua instans berada di bawah 30%.

  • Hindari sering melakukan pencadangan database sumber selama sinkronisasi. Simpan file log selama lebih dari tiga hari. Jika file log dipotong sebelum DTS sempat membacanya, DTS tidak dapat mengambil perubahannya.

Persiapkan database SQL Server sumber

Lengkapi langkah-langkah berikut sebelum mengonfigurasi tugas sinkronisasi. Langkah-langkah ini memastikan DTS dapat membaca log transaksi dan menangkap perubahan inkremental.

  1. Atur model pemulihan ke full. Ini memungkinkan log transaksi menyimpan perubahan yang dibutuhkan DTS untuk sinkronisasi inkremental. Jalankan perintah berikut atau gunakan SQL Server Management Studio (SSMS). Untuk petunjuk SSMS, lihat Lihat atau Ubah Model Pemulihan Database.

    use master;
    GO
    ALTER DATABASE <database_name> SET RECOVERY FULL WITH ROLLBACK IMMEDIATE;
    GO

    Ganti <database_name> dengan nama database sumber. Contoh:

    use master;
    GO
    ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE;
    GO
  2. Buat pencadangan penuh database. Lewati langkah ini jika Anda sudah memilikinya.

    PlaceholderDeskripsiContoh
    <database_name>Nama database sumbermytestdata
    <backup_file_path>Jalur penyimpanan dan nama file untuk backupD:\backup\dbdata.bak
    BACKUP DATABASE <database_name> TO DISK='<backup_file_path>';
    GO

    Contoh:

    BACKUP DATABASE mytestdata TO DISK='D:\backup\dbdata.bak';
    GO
  3. Cadangkan log transaksi.

    BACKUP LOG <database_name> TO DISK='<backup_file_path>' WITH init;
    GO

    Contoh:

    BACKUP LOG mytestdata TO DISK='D:\backup\dblog.bak' WITH init;
    GO
  4. Buat indeks terkluster pada tabel yang ingin Anda sinkronkan. Untuk petunjuknya, lihat Buat Indeks Terkluster.

Konfigurasi tugas sinkronisasi

  1. Beli instans sinkronisasi DTS. Di halaman pembelian, atur: Untuk petunjuk pembelian, lihat Beli instans DTS.

    • Instans Sumber: SQL Server

    • Instans Tujuan: AnalyticDB for PostgreSQL

    • Topologi Sinkronisasi: One-way Synchronization

  2. Login ke Konsol DTS.

  3. Di panel navigasi kiri, klik Data Synchronization.

  4. Di bagian atas halaman Synchronization Tasks, pilih wilayah tempat instans tujuan berada.

  5. Temukan instans sinkronisasi dan klik Configure Synchronization Channel di kolom Actions.

  6. Konfigurasikan instans sumber dan tujuan.

    BagianParameterDeskripsi
    N/ASynchronization Task NameNama yang dihasilkan otomatis oleh DTS. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama ini tidak perlu unik.
    Detail Instans SumberInstance TypePilih User-Created Database in ECS Instance. Jika Anda memilih tipe instans lain, siapkan lingkungan yang diperlukan terlebih dahulu. Untuk detailnya, lihat Ikhtisar persiapan.
    Instance RegionWilayah sumber yang Anda pilih saat membeli instans. Hanya-baca.
    ECS Instance IDID instans ECS yang menghost database sumber.
    Database TypeTetap sebagai SQLServer. Hanya-baca.
    Port NumberPort layanan database sumber. Default: 3306.
    Database AccountAkun database sumber. Lihat Izin yang diperlukan.
    Database PasswordKata sandi untuk akun database.
    EncryptionPilih Non-encrypted atau SSL-encrypted. Parameter ini hanya tersedia di wilayah Tiongkok daratan dan wilayah China (Hong Kong).
    Catatan

    Saat ini, pengaturan Connection Method hanya didukung di wilayah Tiongkok daratan dan China (Hong Kong).

    Detail Instans TujuanInstance TypeTetap sebagai AnalyticDB for PostgreSQL. Hanya-baca.
    Instance RegionWilayah tujuan yang Anda pilih saat membeli instans. Hanya-baca.
    Instance IDID instans AnalyticDB for PostgreSQL tujuan.
    Database NameNama database tujuan.
    Database AccountAkun database tujuan. Lihat Izin yang diperlukan.
    Database PasswordKata sandi untuk akun database.

    Configure the source and destination instances

  7. Klik Set Whitelist and Next. DTS secara otomatis menambahkan blok CIDR servernya ke aturan security group ECS. Jika database sumber berjalan di beberapa instans ECS, tambahkan secara manual blok CIDR server DTS ke aturan security group masing-masing instans. Untuk daftar lengkap blok CIDR DTS, lihat Tambahkan blok CIDR server DTS.

    Peringatan

    Menambahkan blok CIDR server DTS ke aturan security group atau daftar putih alamat IP menciptakan risiko keamanan. Sebelum melanjutkan, ambil langkah pencegahan, termasuk: memperkuat keamanan username dan password, membatasi port yang terbuka, mengautentikasi panggilan API, secara berkala mengaudit aturan daftar putih dan security group, serta menghubungkan database ke DTS melalui Express Connect, VPN Gateway, atau Smart Access Gateway.

  8. Pilih kebijakan dan objek sinkronisasi.

    PengaturanDeskripsi
    Initialize SynchronizationInitial Schema Synchronization, Initial Full Data Synchronization, dan Initial Incremental Data Synchronization dipilih secara default. DTS menyinkronkan skema dan data sebelum memulai replikasi inkremental.
    Processing Mode In Existed Target TablePre-check and Intercept (default): gagal dalam pemeriksaan awal jika database tujuan sudah berisi tabel dengan nama yang sama. Gunakan fitur pemetaan nama objek untuk mengganti nama tabel yang bentrok. Lihat Ganti nama objek yang akan disinkronkan. Ignore Errors and Proceed: melewati pemeriksaan bentrok nama. Jika skema sesuai, DTS melewati catatan dengan kunci primer duplikat. Jika skema berbeda, hanya beberapa kolom yang disinkronkan atau tugas gagal.
    Merge Multi TablesYes: menggabungkan beberapa tabel sumber dengan skema yang sama menjadi satu tabel tujuan. Ini berguna dalam skenario sharding OLTP di mana Anda ingin mengkonsolidasi tabel yang di-shard untuk analitik di AnalyticDB for PostgreSQL. Saat diaktifkan, tambahkan kolom __dts_data_source (tipe TEXT) ke tabel tujuan untuk mengidentifikasi sumber setiap catatan. DTS menulis nilai dalam format <instance_ID>:<database_name>.<schema_name>.<table_name> — contohnya, dts********:dtstestdata.testschema.customer1. Lalu gunakan fitur pemetaan nama objek untuk mengganti nama setiap tabel sumber yang dipilih menjadi nama tabel tujuan. No (default).
    Select the operation typesPilih operasi DML dan DDL yang akan disinkronkan. Semua tipe dipilih secara default.
    Select the objects to be synchronizedPindahkan tabel dari bagian Available ke bagian Selected. Dalam skenario sinkronisasi heterogen ini, hanya tabel yang disinkronkan—view, trigger, dan stored procedure tidak disertakan. Gunakan fitur pemetaan nama objek untuk mengganti nama objek di instans tujuan. Lihat Ganti nama objek yang akan disinkronkan.
    Add quotation marks to the target objectPilih Yes jika nama objek mengandung karakter campuran huruf besar/kecil, diawali karakter non-huruf, atau merupakan kata kunci yang dicadangkan di database tujuan. Saat diaktifkan, DTS membungkus nama objek dengan tanda kutip tunggal atau ganda selama sinkronisasi skema dan sinkronisasi inkremental. Setelah sinkronisasi, referensikan objek-objek ini menggunakan nama yang dikutip dalam kueri.
    Rename Databases and TablesGunakan fitur pemetaan nama objek untuk mengganti nama objek yang disinkronkan. Lihat Pemetaan nama objek.
    Retry Time for Failed ConnectionsJika DTS kehilangan koneksi ke database sumber atau tujuan, DTS mencoba ulang hingga 720 menit (12 jam) secara default. Jika DTS terhubung kembali dalam jendela ini, tugas dilanjutkan. Jika tidak, tugas gagal. Sesuaikan nilai ini sesuai kebutuhan Anda. Selama DTS mencoba ulang, Anda tetap dikenai biaya untuk instans tersebut.

    Select the synchronization policy and the objects to be synchronized

  9. Tentukan tipe tabel, kolom kunci primer, dan kunci distribusi untuk setiap tabel yang akan disinkronkan ke AnalyticDB for PostgreSQL. Untuk informasi tentang kolom kunci primer dan kolom distribusi, lihat Kelola tabel dan Definisikan distribusi tabel.

    Specify the table type, primary key column, and distribution key

  10. Klik Precheck. DTS memvalidasi konfigurasi sebelum memulai tugas. Jika ada pemeriksaan yang gagal, klik ikon 提示 di sebelah item yang gagal untuk melihat detailnya. Perbaiki masalah tersebut dan jalankan pemeriksaan awal lagi. Jika masalah tersebut tidak kritis, Anda dapat mengabaikan item yang gagal dan menjalankan kembali pemeriksaan awal.

  11. Setelah pemeriksaan awal berhasil, tutup kotak dialog Precheck. Tugas sinkronisasi akan dimulai secara otomatis.

  12. Di halaman Synchronization Tasks, tunggu hingga status tugas berubah menjadi Synchronizing.

    View the status of a data synchronization task

Langkah berikutnya

  • Monitor latensi sinkronisasi dan kesehatan tugas di Konsol DTS.

  • Tinjau dokumentasi AnalyticDB for PostgreSQL untuk mengoptimalkan performa kueri menggunakan kunci distribusi dan tipe tabel: Definisikan distribusi tabel.