全部产品
Search
文档中心

AnalyticDB:Sinkronkan data dari database SQL Server yang dikelola sendiri yang dihosting di ECS ke instance AnalyticDB for PostgreSQL

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menyinkronkan data dari database SQL Server yang dikelola sendiri di Elastic Compute Service (ECS) ke instance AnalyticDB for PostgreSQL menggunakan Data Transmission Service (DTS).

Prasyarat

  • Versi database SQL Server yang dikelola sendiri adalah 2008, 2008 R2, 2012, 2014, 2016, 2017, atau 2019.

    Catatan

    Jika Anda menerapkan database SQL Server dalam kelompok ketersediaan Always On (AOAG), gunakan mode komitmen sinkron.

  • Tabel yang akan disinkronkan dari database SQL Server memiliki kunci utama atau indeks UNIQUE NOT NULL.

  • Ruang penyimpanan yang tersedia di instance AnalyticDB for PostgreSQL lebih besar daripada total ukuran data di database SQL Server.

Catatan penggunaan

  • DTS menggunakan sumber daya baca dan tulis dari instance RDS sumber dan tujuan selama sinkronisasi data awal. Hal ini dapat meningkatkan beban pada instance RDS. Jika performa instance rendah, spesifikasinya terbatas, atau volume data besar, layanan database mungkin tidak tersedia. Contohnya, DTS menggunakan sejumlah besar sumber daya baca dan tulis jika banyak kueri SQL lambat dilakukan pada instance RDS sumber, tabel tidak memiliki kunci utama, atau terjadi deadlock di instance RDS tujuan. Sebelum memulai sinkronisasi data, evaluasi dampaknya terhadap performa instance RDS sumber dan tujuan. Kami menyarankan untuk menyinkronkan data selama jam non-puncak, seperti ketika utilisasi CPU instance RDS sumber dan tujuan kurang dari 30%.

  • Untuk memastikan tugas sinkronisasi data berjalan sesuai harapan, hindari mencadangkan database sumber secara sering. Simpan file log selama lebih dari tiga hari. Jika tidak, Anda tidak dapat mengambil file log setelah dipotong.

  • Untuk memastikan latensi sinkronisasi data akurat, DTS menambahkan tabel detak jantung ke database SQL Server. Nama tabel detak jantung adalah Nama_tabel_sumber_dts_mysql_heartbeat.

Penagihan

Jenis SinkronisasiBiaya Konfigurasi Tugas
Sinkronisasi skema dan data penuhGratis.
Sinkronisasi data tambahanDikenakan biaya. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan.

Batasan

  • DTS tidak menyinkronkan skema assembly, service broker, indeks teks penuh, katalog teks penuh, skema terdistribusi, fungsi terdistribusi, prosedur tersimpan CLR, fungsi bernilai skalar CLR, fungsi tabel bernilai CLR, tabel internal, sistem, atau fungsi agregat.

  • DTS tidak menyinkronkan data jenis berikut: TIMESTAMP, CURSOR, ROWVERSION, HIERARCHYID, SQL_VARIANT, SPATIAL GEOMETRY, SPATIAL GEOGRAPHY, dan TABLE.

  • DTS tidak menyinkronkan tabel yang berisi kolom terhitung.

Operasi SQL yang dapat disinkronkan

  • Operasi DML: INSERT, UPDATE, dan DELETE

  • Operasi DDL: ADD COLUMN

    Catatan

    DTS tidak memigrasikan operasi DDL transaksional.

Izin yang diperlukan untuk akun database

Database

Izin yang Diperlukan

Referensi

Database SQL Server yang dikelola sendiri

sysadmin

Instance AnalyticDB for PostgreSQL

  • Izin LOGIN

  • Izin SELECT, CREATE, INSERT, UPDATE, dan DELETE pada tabel tujuan

  • Izin CONNECT dan CREATE pada database tujuan

  • Izin CREATE pada skema tujuan

  • Izin COPY (izin untuk melakukan operasi salin batch berbasis memori)

Catatan

Anda dapat menggunakan akun awal dari instance AnalyticDB for PostgreSQL.

Persiapan

Sebelum mengonfigurasi tugas sinkronisasi data, konfigurasikan pengaturan log dan buat indeks terkluster pada database SQL Server yang dikelola sendiri.

  1. Jalankan perintah berikut pada database SQL Server untuk mengubah model pemulihan menjadi penuh. Anda juga dapat mengubah model pemulihan menggunakan SQL Server Management Studio (SSMS). Untuk informasi lebih lanjut, lihat Lihat atau Ubah Model Pemulihan Database (SQL Server).

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

    Parameter:

    <database_name>: nama database sumber.

    Contoh:

    use master;
    GO
    ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE;
    GO
  2. Jalankan perintah berikut untuk membuat cadangan logis untuk database sumber. Lewati langkah ini jika Anda sudah membuat cadangan logis.

    BACKUP DATABASE <database_name> TO DISK='<physical_backup_device_name>';
    GO

    Parameter:

    • <database_name>: nama database sumber.

    • <physical_backup_device_name>: jalur penyimpanan dan nama file cadangan.

    Contoh:

    BACKUP DATABASE mytestdata TO DISK='D:\backup\dbdata.bak';
    GO
  3. Jalankan perintah berikut untuk mencadangkan entri log dari database sumber:

    BACKUP LOG <database_name> to DISK='<physical_backup_device_name>' WITH init;
    GO

    Parameter:

    • <database_name>: nama database sumber.

    • <physical_backup_device_name>: jalur penyimpanan dan nama file cadangan.

    Contoh:

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

Prosedur

  1. Beli instance sinkronisasi data. Untuk informasi lebih lanjut, lihat Beli instance DTS.

    Catatan

    Di halaman pembelian, atur parameter Instance Sumber ke SQL Server, parameter Instance Tujuan ke AnalyticDB for PostgreSQL, dan parameter Topologi Sinkronisasi ke One-way Synchronization.

  2. Masuk ke Konsol DTS.

  3. Di panel navigasi sebelah kiri, klik Data Synchronization.

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

  5. Temukan instance sinkronisasi data dan klik Configure Synchronization Channel di kolom Tindakan.

  6. Konfigurasikan instance sumber dan tujuan.

    Configure the source and destination instances

    Bagian

    Parameter

    Deskripsi

    Tidak Ada

    Nama Tugas Sinkronisasi

    Nama tugas yang dibuat otomatis oleh DTS. Kami menyarankan Anda menentukan nama deskriptif yang mudah diidentifikasi. Anda tidak perlu menggunakan nama tugas unik.

    Detail Instance Sumber

    Jenis Instance

    Jenis instance dari database sumber. Dalam contoh ini, User-Created Database in ECS Instance dipilih.

    Catatan

    Jika Anda memilih jenis instance lainnya, Anda harus menyiapkan lingkungan yang diperlukan untuk database sumber. Untuk informasi lebih lanjut, lihat Ikhtisar Persiapan.

    Wilayah Instance

    Wilayah sumber yang Anda pilih di halaman pembelian. Anda tidak dapat mengubah nilai parameter ini.

    ID Instance ECS

    ID instance Elastic Compute Service (ECS) yang meng-hosting database sumber.

    Jenis Database

    Nilai parameter ini tetap SQLServer dan tidak dapat diubah.

    Nomor Port

    Nomor port layanan dari database sumber. Nomor port default adalah 3306.

    Akun Database

    Akun dari database sumber. Untuk informasi tentang izin yang diperlukan untuk akun tersebut, lihat Izin yang diperlukan untuk akun database.

    Kata Sandi Database

    Kata sandi akun database.

    Enkripsi

    Menentukan apakah akan mengenkripsi koneksi ke instance sumber. Pilih Non-encrypted atau SSL-encrypted.

    Catatan

    Parameter Encryption hanya tersedia di wilayah dalam daratan Tiongkok dan wilayah Tiongkok (Hong Kong).

    Detail Instance Tujuan

    Jenis Instance

    Nilai parameter ini tetap AnalyticDB for PostgreSQL.

    Wilayah Instance

    Wilayah tujuan yang Anda pilih di halaman pembelian. Anda tidak dapat mengubah nilai parameter ini.

    ID Instance

    ID instance tujuan AnalyticDB for PostgreSQL.

    Nama Database

    Nama database tujuan.

    Akun Database

    Akun database dari instance tujuan AnalyticDB for PostgreSQL. Untuk informasi tentang izin yang diperlukan untuk akun tersebut, lihat Izin yang diperlukan untuk akun database.

    Kata Sandi Database

    Kata sandi akun database.

  7. Di pojok kanan bawah halaman, klik Set Whitelist and Next.

    Jika database sumber atau tujuan adalah instance database Alibaba Cloud, seperti instance ApsaraDB RDS for MySQL atau ApsaraDB for MongoDB, DTS secara otomatis menambahkan blok CIDR server DTS ke daftar putih alamat IP instance. Jika database sumber atau tujuan adalah database yang dikelola sendiri di-hosting di instance Elastic Compute Service (ECS), DTS secara otomatis menambahkan blok CIDR server DTS ke aturan grup keamanan instance ECS, dan Anda harus memastikan bahwa instance ECS dapat mengakses database. Jika database yang dikelola sendiri di-hosting di beberapa instance ECS, Anda harus secara manual menambahkan blok CIDR server DTS ke aturan grup keamanan setiap instance ECS. Jika database sumber atau tujuan adalah database yang dikelola sendiri yang diterapkan di pusat data atau disediakan oleh penyedia layanan cloud pihak ketiga, Anda harus secara manual menambahkan blok CIDR server DTS ke daftar putih alamat IP database untuk mengizinkan DTS mengakses database. Untuk informasi lebih lanjut, lihat Tambahkan blok CIDR server DTS.

    Peringatan

    Jika blok CIDR server DTS ditambahkan secara otomatis atau manual ke daftar putih database atau instance, atau ke aturan grup keamanan ECS, risiko keamanan mungkin timbul. Oleh karena itu, sebelum menggunakan DTS untuk menyinkronkan data, Anda harus memahami dan mengakui potensi risiko serta mengambil tindakan pencegahan, termasuk tetapi tidak terbatas pada tindakan berikut: meningkatkan keamanan nama pengguna dan kata sandi, membatasi port yang diekspos, mengotentikasi panggilan API, secara teratur memeriksa daftar putih atau aturan grup keamanan ECS dan melarang blok CIDR yang tidak sah, atau menghubungkan database ke DTS menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway.

  8. Pilih kebijakan sinkronisasi dan objek yang akan disinkronkan.

    Select the synchronization policy and the objects to be synchronized

    Pengaturan

    Deskripsi

    Inisialisasi Sinkronisasi

    Initial Schema Synchronization, Initial Full Data Synchronization, dan Initial Incremental Data Synchronization dipilih secara default. Setelah pra-pemeriksaan selesai, DTS menyinkronkan skema dan data objek dari instance sumber ke instance tujuan. Skema dan data ini adalah dasar untuk sinkronisasi tambahan selanjutnya.

    Mode Pemrosesan Tabel Tujuan yang Sudah Ada

    • Pre-check and Intercept: memeriksa apakah database tujuan berisi tabel dengan nama yang sama dengan tabel di database sumber. Jika database tujuan tidak berisi tabel dengan nama yang sama dengan tabel di database sumber, pra-pemeriksaan berhasil. Jika tidak, kesalahan akan dikembalikan selama pra-pemeriksaan dan tugas sinkronisasi data tidak dapat dimulai.

      Catatan

      Jika database sumber dan tujuan berisi nama tabel yang identik dan tabel di database tujuan tidak dapat dihapus atau diganti namanya, Anda dapat menggunakan fitur pemetaan nama objek untuk mengganti nama tabel yang disinkronkan ke database tujuan. Untuk informasi lebih lanjut, lihat Ganti nama objek yang akan disinkronkan.

    • Ignore Errors and Proceed: melewati pra-pemeriksaan untuk nama tabel identik di database sumber dan tujuan.

      Peringatan

      Jika Anda memilih Ignore Errors and Proceed, inkonsistensi data mungkin terjadi dan bisnis Anda mungkin terpapar risiko potensial.

      • Jika database sumber dan tujuan memiliki skema yang sama, DTS tidak menyinkronkan catatan data yang memiliki kunci utama yang sama dengan catatan data di database tujuan.

      • Jika database sumber dan tujuan memiliki skema yang berbeda, sinkronisasi data awal mungkin gagal. Dalam hal ini, hanya sebagian kolom yang disinkronkan, atau tugas sinkronisasi data gagal.

    Gabungkan Multi Tabel

    • Yes: Dalam skenario pemrosesan transaksi online (OLTP), sharding diimplementasikan untuk mempercepat respons terhadap tabel bisnis. Namun, AnalyticDB for PostgreSQL memungkinkan Anda menyimpan sejumlah besar data dalam satu tabel dan membuat kueri SQL lebih efisien. Anda dapat menggabungkan beberapa tabel sumber yang memiliki skema yang sama ke dalam satu tabel tujuan. Fitur ini memungkinkan Anda menyinkronkan data dari beberapa tabel di database sumber ke satu tabel di AnalyticDB for PostgreSQL.

      Catatan
      • Setelah Anda memilih beberapa tabel dari database sumber, Anda harus mengubah nama tabel-tabel ini menjadi nama tabel tujuan di AnalyticDB for PostgreSQL. Untuk melakukannya, Anda dapat menggunakan fitur pemetaan nama objek. Untuk informasi lebih lanjut tentang cara menggunakan fitur ini, lihat Ganti nama objek yang akan disinkronkan.

      • Anda harus menambahkan kolom bernama __dts_data_source ke tabel tujuan di AnalyticDB for PostgreSQL. Kolom ini digunakan untuk mencatat sumber data. Tipe data kolom ini adalah TEXT. DTS menulis nilai kolom dalam format berikut: <ID instance sinkronisasi data>:<Nama database sumber>.<Nama skema sumber>.<Nama tabel sumber>. Nilai kolom seperti itu memungkinkan DTS mengidentifikasi setiap tabel sumber. Sebagai contoh, dts********:dtstestdata.testschema.customer1 menunjukkan bahwa tabel sumber adalah customer1.

      • Jika Anda mengatur parameter ini ke Ya, semua tabel sumber yang dipilih dalam tugas digabungkan menjadi satu tabel tujuan. Jika Anda tidak perlu menggabungkan tabel sumber tertentu, Anda dapat membuat tugas sinkronisasi data terpisah untuk tabel-tabel tersebut.

    • No: nilai default.

    Pilih jenis operasi

    Pilih jenis operasi yang ingin Anda sinkronkan berdasarkan kebutuhan bisnis Anda. Semua jenis operasi dipilih secara default.

    Pilih objek yang akan disinkronkan

    Pilih satu atau lebih objek dari bagian Available dan klik ikon Rightwards arrow untuk menambahkan objek ke bagian Selected.

    Dalam skenario ini, sinkronisasi data dilakukan antara database heterogen. Oleh karena itu, objek yang akan disinkronkan adalah tabel, dan objek lain seperti tampilan, pemicu, dan prosedur tersimpan tidak disinkronkan ke database tujuan.

    Catatan
    • Secara default, setelah objek disinkronkan ke instance tujuan, nama objek tetap tidak berubah. Anda dapat menggunakan fitur pemetaan nama objek untuk mengganti nama objek yang disinkronkan ke instance tujuan. Untuk informasi lebih lanjut, lihat Ganti nama objek yang akan disinkronkan.

    • Jika Anda mengatur parameter Merge Multi Tables ke Yes, Anda harus mengubah nama tabel yang dipilih menjadi nama tabel tujuan di instance AnalyticDB for PostgreSQL. Untuk melakukannya, Anda dapat menggunakan fitur pemetaan nama objek.

    Tambahkan tanda kutip pada objek tujuan

    Tentukan apakah Anda perlu menutup nama objek dengan tanda kutip. Jika Anda memilih Yes dan kondisi berikut terpenuhi, DTS menutup nama objek dengan tanda kutip tunggal (') atau tanda kutip ganda (") selama sinkronisasi skema dan sinkronisasi data tambahan.

    • Lingkungan bisnis database sumber peka huruf besar-kecil, dan nama database berisi huruf besar dan kecil.

    • Nama tabel sumber tidak dimulai dengan huruf dan berisi karakter selain huruf, angka, dan karakter khusus.

      Catatan

      Nama tabel sumber hanya boleh berisi karakter khusus berikut: garis bawah (_), tanda pagar (#), dan tanda dolar ($).

    • Nama skema, tabel, atau kolom yang ingin Anda sinkronkan adalah kata kunci, kata kunci cadangan, atau karakter tidak valid di database tujuan.

    Catatan

    Jika Anda memilih Ya, setelah DTS menyinkronkan data ke database tujuan, Anda harus menentukan nama objek dalam tanda kutip untuk menanyakan objek.

    Ganti Nama Database dan Tabel

    Anda dapat menggunakan fitur pemetaan nama objek untuk mengganti nama objek yang disinkronkan ke instance tujuan. Untuk informasi lebih lanjut, lihat Pemetaan nama objek.

    Waktu Ulang untuk Koneksi Gagal

    Secara default, jika DTS gagal terhubung ke database sumber atau tujuan, DTS mencoba lagi dalam 720 menit (12 jam) ke depan. Anda dapat menentukan waktu percobaan ulang berdasarkan kebutuhan Anda. Jika DTS berhasil terhubung kembali ke database sumber dan tujuan dalam waktu yang ditentukan, DTS melanjutkan tugas sinkronisasi data. Jika tidak, tugas sinkronisasi data gagal.

    Catatan

    Saat DTS mencoba ulang koneksi, Anda akan dikenakan biaya untuk instance DTS. Kami menyarankan Anda menentukan waktu percobaan ulang berdasarkan kebutuhan bisnis Anda. Anda juga dapat melepaskan instance DTS sesegera mungkin setelah instance sumber dan tujuan dilepaskan.

  9. Tentukan jenis tabel, kolom kunci utama, dan kunci distribusi dari tabel yang ingin Anda sinkronkan ke instance AnalyticDB for PostgreSQL.

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

    Catatan

    Untuk informasi lebih lanjut tentang kolom kunci utama dan kolom distribusi, lihat Kelola tabel dan Tentukan distribusi tabel.

  10. Di pojok kanan bawah halaman, klik Precheck.

    Catatan
    • Sebelum Anda dapat memulai tugas sinkronisasi data, DTS melakukan pra-pemeriksaan. Anda hanya dapat memulai tugas sinkronisasi data setelah tugas lulus pra-pemeriksaan.

    • Jika tugas gagal lulus pra-pemeriksaan, Anda dapat mengklik ikon 提示 di sebelah setiap item yang gagal untuk melihat detailnya.

      • Setelah Anda menyelesaikan masalah berdasarkan detail, mulai pra-pemeriksaan baru.

      • Jika Anda tidak perlu menyelesaikan masalah, ignore the failed items dan initiate a new precheck.

  11. Tutup kotak dialog Precheck setelah pesan berikut ditampilkan: The precheck is passed. Kemudian, tugas sinkronisasi data dimulai.

  12. Tunggu hingga sinkronisasi awal selesai dan tugas sinkronisasi data berada dalam keadaan Synchronizing.

    Anda dapat melihat status tugas sinkronisasi data di halaman Synchronization Tasks. View the status of a data synchronization task