Gunakan Data Transmission Service (DTS) untuk menyinkronkan data dari ApsaraDB RDS for SQL Server ke AnalyticDB for PostgreSQL. DTS menangani sinkronisasi skema, sinkronisasi data penuh, dan sinkronisasi data inkremental sehingga database analitik Anda tetap mutakhir seiring perubahan pada database transaksional.
Apa yang didukung DTS dalam skenario ini
| Kemampuan | Detail |
|---|---|
| Versi SQL Server yang didukung | 2012, 2014, 2016, 2017, 2019 |
| Objek sinkronisasi skema | Skema, tabel, view, fungsi, prosedur |
| Operasi DDL | Hanya ADD COLUMN. Operasi DDL transaksional tidak didukung. |
| Operasi DML | INSERT, UPDATE, DELETE |
| Topologi sinkronisasi | Sinkronisasi satu arah |
| Penagihan | Sinkronisasi skema dan data penuh: gratis. Sinkronisasi data inkremental: berbayar. Lihat Ikhtisar penagihan. |
Batasan
Tipe data yang tidak didukung
DTS tidak menyinkronkan kolom dengan tipe data berikut: TIMESTAMP, CURSOR, ROWVERSION, HIERARCHYID, SQL\_VARIANT, SPATIAL GEOMETRY, SPATIAL GEOGRAPHY, dan TABLE.
Batasan database heterogen
SQL Server dan AnalyticDB for PostgreSQL merupakan database heterogen. Tipe data di antara keduanya tidak memiliki pemetaan satu-ke-satu. Tinjau pemetaan tipe data untuk sinkronisasi skema sebelum memulai, dan evaluasi dampaknya terhadap bisnis Anda.
Persyaratan tabel sumber dan tujuan
Tabel sumber harus memiliki kunci primer.
Tabel tujuan harus memiliki kunci primer atau indeks unik.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans ApsaraDB RDS for SQL Server (versi 2012, 2014, 2016, 2017, atau 2019). Lihat Buat instans ApsaraDB RDS for SQL Server dan Ikhtisar skenario sinkronisasi data.
Instans AnalyticDB for PostgreSQL. Lihat Buat instans AnalyticDB for PostgreSQL.
Akun database dengan izin seperti yang dijelaskan di bagian berikutnyaUbah Izin Akun.
Izin yang diperlukan
Berikan izin berikut sebelum mengonfigurasi tugas sinkronisasi.
ApsaraDB RDS for SQL Server
Akun database harus memiliki izin tingkat owner pada database sumber. Lihat Ubah izin akun.
AnalyticDB for PostgreSQL
Akun database memerlukan izin berikut. Anda dapat menggunakan akun awal instans, yang secara default sudah memiliki izin-izin tersebut.
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 (diperlukan untuk operasi copy batch berbasis memori)
Lihat Kelola pengguna dan izin untuk informasi lebih lanjut.
Catatan penggunaan
DTS menambahkan tabel heartbeat bernama
dts_log_heart_beatke database sumber untuk menjaga akurasi latensi sinkronisasi.DTS mengonsumsi sumber daya baca dan tulis pada kedua database selama sinkronisasi. Untuk menghindari penurunan performa database, jalankan tugas sinkronisasi selama jam sepi—idealnya saat utilisasi CPU pada kedua database berada di bawah 30%.
Jika DTS gagal terhubung ke database sumber atau tujuan, sistem akan mencoba ulang hingga 720 menit (12 jam) secara default. Sesuaikan nilai ini berdasarkan kebutuhan bisnis Anda. Selama masa percobaan ulang, Anda tetap dikenai biaya untuk instans DTS.
Saat blok CIDR DTS ditambahkan ke daftar putih database atau aturan security group ECS, risiko keamanan mungkin timbul. Sebelum memulai sinkronisasi, lakukan langkah pencegahan seperti memperkuat keamanan username dan password, membatasi port yang terbuka, mengautentikasi panggilan API, serta melakukan audit rutin terhadap aturan daftar putih. Sebagai alternatif, hubungkan database Anda ke DTS melalui Express Connect, VPN Gateway, atau Smart Access Gateway.
Konfigurasi tugas sinkronisasi
Menyiapkan tugas sinkronisasi melibatkan tiga tahap: membeli dan mengonfigurasi instans DTS, memilih objek yang akan disinkronkan, serta mengonfigurasi pengaturan tabel khusus AnalyticDB for PostgreSQL.
Langkah 1: Beli dan konfigurasi instans DTS
Beli instans DTS. Pada halaman pembelian, atur:
Instans Sumber: SQL Server
Instans Tujuan: AnalyticDB for PostgreSQL
Topologi Sinkronisasi: Sinkronisasi Satu Arah
Masuk ke Konsol DTS.
Di panel navigasi kiri, klik Data Synchronization.
Di bagian atas halaman Synchronization Tasks, pilih wilayah tempat instans tujuan berada.
Temukan instans sinkronisasi dan klik Configure Synchronization Channel di kolom Actions.
Konfigurasi instans sumber dan tujuan.
Bagian Parameter Deskripsi N/A Nama tugas sinkronisasi Nama untuk tugas ini. Gunakan nama deskriptif agar mudah diidentifikasi. Nama tugas tidak perlu unik. Detail instans sumber Tipe instans Pilih RDS Instance. Wilayah instans Wilayah sumber yang dipilih di halaman pembelian. Hanya-baca. ID instans ID instans ApsaraDB RDS for SQL Server sumber. Akun database Akun dengan izin tingkat owner pada database sumber. Kata Sandi Database Password untuk akun database tersebut. Enkripsi Pilih Non-encrypted atau SSL-encrypted. Untuk menggunakan enkripsi SSL, aktifkan enkripsi SSL pada instans RDS terlebih dahulu. CatatanParameter Encryption hanya tersedia untuk wilayah di Tiongkok daratan dan wilayah China (Hong Kong).
Detail instans tujuan Tipe instans Tetap sebagai AnalyticDB for PostgreSQL. Wilayah instans Wilayah tujuan yang dipilih di halaman pembelian. Hanya-baca. ID instans ID instans AnalyticDB for PostgreSQL tujuan. Nama database Nama database tujuan. Akun database Akun dengan izin yang diperlukan pada instans tujuan. Kata sandi database Password untuk akun database tersebut. 
Klik Set Whitelist and Next di pojok kanan bawah. DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih alamat IP instans database Alibaba Cloud dan ke aturan security group database yang di-host di ECS. Untuk database yang dikelola sendiri di pusat data atau platform cloud pihak ketiga, tambahkan blok CIDR tersebut secara manual. Lihat Tambahkan blok CIDR server DTS.
Langkah 2: Pilih kebijakan dan objek sinkronisasi
Konfigurasikan kebijakan sinkronisasi dan pilih objek yang akan disinkronkan.
Persyaratan untuk penggabungan tabel
Saat Merge Multi Tables diatur ke Yes:
Tambahkan kolom bernama
__dts_data_source(tipe data: TEXT) ke tabel tujuan. DTS menggunakan kolom ini untuk mencatat sumber setiap baris dalam format:<ID instans sinkronisasi data>:<Nama database sumber>.<Nama skema sumber>.<Nama tabel sumber>. Contoh:dts********:dtstestdata.testschema.customer1.Gunakan pemetaan nama objek untuk mengganti nama semua tabel sumber yang dipilih menjadi nama tabel tujuan di AnalyticDB for PostgreSQL.
Semua tabel sumber yang dipilih dalam tugas digabungkan ke dalam satu tabel tujuan yang sama. Untuk mengecualikan tabel tertentu dari penggabungan, buat tugas sinkronisasi terpisah untuk tabel-tabel tersebut.
Pengaturan Deskripsi Inisialisasi sinkronisasi Initial Schema Synchronization, Initial Full Data Synchronization, dan Initial Incremental Data Synchronization dipilih secara default. DTS menyinkronkan skema dan data yang ada sebelum memulai sinkronisasi inkremental. Mode pemrosesan jika tabel tujuan sudah ada Pre-check and Intercept: gagal dalam pemeriksaan awal jika database tujuan memiliki tabel dengan nama yang sama seperti tabel sumber. Gunakan pemetaan nama objek untuk mengganti nama tabel yang bentrok. Ignore Errors and Proceed: melewati pemeriksaan awal untuk nama tabel duplikat. Jika skema cocok, DTS melewatkan catatan dengan kunci primer duplikat. Jika skema berbeda, tugas mungkin gagal atau hanya menyinkronkan sebagian kolom. Merge multi tables Yes: menggabungkan beberapa tabel sumber dengan skema yang sama ke dalam satu tabel tujuan. Berguna untuk skenario sharding OLTP di mana Anda ingin mengkonsolidasi data di AnalyticDB for PostgreSQL. Lihat persyaratan untuk penggabungan tabel di bawah. No (default): setiap tabel sumber dipetakan ke tabel tujuan masing-masing. Pilih jenis operasi Pilih jenis operasi yang ingin Anda sinkronkan sesuai kebutuhan bisnis. Semua jenis operasi dipilih secara default. Pilih objek yang akan disinkronkan Pilih objek dari bagian Available dan pindahkan ke bagian Selected. Karena ini adalah sinkronisasi database heterogen, hanya tabel yang disinkronkan—view, trigger, dan prosedur tersimpan tidak disinkronkan. Gunakan pemetaan nama objek untuk mengganti nama objek di instans tujuan. Tambahkan tanda kutip pada objek tujuan Pilih Yes jika salah satu kondisi berikut berlaku: lingkungan database sumber bersifat case-sensitive dengan nama campuran huruf besar-kecil; nama tabel diawali karakter non-huruf atau mengandung karakter yang tidak didukung (karakter khusus yang diizinkan: underscore _, tanda pagar#, tanda dolar$); atau nama objek merupakan kata kunci yang dicadangkan di database tujuan. Setelah DTS menyinkronkan data, rujuk objek yang dikutip menggunakan nama yang dikutip tersebut.Ganti nama database dan tabel Gunakan pemetaan nama objek untuk mengganti nama objek di instans tujuan. Waktu coba ulang untuk koneksi yang gagal DTS mencoba ulang koneksi yang gagal selama 720 menit (12 jam) secara default. Sesuaikan berdasarkan kebutuhan Anda. 
Langkah 3: Konfigurasi pengaturan tabel AnalyticDB for PostgreSQL
Tentukan tipe tabel, kolom kunci primer, dan kunci distribusi untuk setiap tabel yang akan disinkronkan ke instans AnalyticDB for PostgreSQL. Untuk informasi lebih lanjut tentang kolom kunci primer dan kolom distribusi, lihat Kelola tabel dan Definisikan distribusi tabel.

Klik Precheck di pojok kanan bawah. DTS menjalankan pemeriksaan awal sebelum memulai tugas sinkronisasi. Jika ada item yang gagal:
Klik ikon di samping item yang gagal untuk melihat detailnya.
Perbaiki masalah berdasarkan detail tersebut, lalu mulai pemeriksaan awal baru.
Untuk melewati masalah tanpa memperbaikinya, pilih ignore the failed items, lalu pilih initiate a new precheck.
Tutup dialog Precheck setelah muncul pesan The precheck is passed. Tugas sinkronisasi akan dimulai secara otomatis.
Tunggu hingga sinkronisasi awal selesai dan status tugas berubah menjadi Synchronizing. Pantau status tugas di halaman Synchronization Tasks.

FAQ
Di mana tabel yang disinkronkan muncul di instans AnalyticDB for PostgreSQL?
Selama sinkronisasi skema, DTS membuat tabel di database tujuan menggunakan struktur skema yang sama seperti database sumber. Misalnya, jika Anda menyinkronkan tabel customer dan Student dari skema dbo database dtstestdata, Anda dapat menemukan tabel-tabel tersebut di skema dbo instans tujuan.
