Topik ini menjelaskan cara menyinkronkan data dari instance ApsaraDB RDS for SQL Server ke instance AnalyticDB for PostgreSQL menggunakan Data Transmission Service (DTS). Fitur sinkronisasi data memungkinkan Anda mentransfer dan menganalisis data dengan mudah.
Prasyarat
Instance ApsaraDB RDS for SQL Server telah dibuat. Untuk informasi lebih lanjut, lihat Panduan Cepat Membuat dan Menggunakan Instance ApsaraDB RDS for SQL Server dan Ikhtisar Skenario Sinkronisasi Data.
PentingVersi mesin dari instance ApsaraDB RDS for SQL Server dapat berupa 2012, 2014, 2016, 2017, atau 2019.
Instance AnalyticDB for PostgreSQL telah dibuat. Untuk informasi lebih lanjut, lihat Membuat Instance AnalyticDB for PostgreSQL.
Tabel sumber dalam instance ApsaraDB RDS for SQL Server mengandung kunci utama.
Tabel tujuan dalam instance AnalyticDB for PostgreSQL mengandung kunci utama atau indeks unik.
Catatan Penggunaan
DTS menggunakan sumber daya baca dan tulis dari database sumber dan tujuan selama migrasi data penuh. Hal ini dapat meningkatkan beban pada server database. Jika performa database tidak optimal, spesifikasinya rendah, atau volume datanya besar, layanan database mungkin menjadi tidak tersedia. Sebagai contoh, DTS menggunakan banyak sumber daya baca dan tulis dalam kasus-kasus berikut: sejumlah besar query SQL lambat dilakukan pada database sumber, tabel tidak memiliki kunci utama, atau terjadi deadlock di database tujuan. Sebelum memigrasi data, evaluasi dampak migrasi data terhadap performa database sumber dan tujuan. Kami menyarankan Anda memigrasi data selama jam-jam sepi. Sebagai contoh, Anda dapat memigrasi data ketika utilisasi CPU dari database sumber dan tujuan kurang dari 30%.
Untuk memastikan bahwa latensi sinkronisasi data akurat, DTS menambahkan tabel detak jantung ke database sumber. Nama tabel detak jantung adalah
dts_log_heart_beat.Dalam skenario ini, DTS mendukung sinkronisasi skema untuk jenis objek berikut: skema, tabel, tampilan, fungsi, dan prosedur.
PeringatanApsaraDB RDS for SQL Server dan AnalyticDB for PostgreSQL adalah database heterogen. Tipe data yang mereka dukung tidak memiliki korespondensi satu-satu. Kami menyarankan Anda mengevaluasi dampak konversi tipe data terhadap bisnis Anda. Untuk informasi lebih lanjut, lihat Pemetaan Tipe Data untuk Sinkronisasi Skema Awal.
DTS tidak menyinkronkan data dari tipe-tipe berikut: TIMESTAMP, CURSOR, ROWVERSION, HIERARCHYID, SQL_VARIANT, SPATIAL GEOMETRY, SPATIAL GEOGRAPHY, dan TABLE.
Penagihan
| Jenis Sinkronisasi | Biaya Konfigurasi Tugas |
| Sinkronisasi skema dan data penuh | Gratis. |
| Sinkronisasi data inkremental | Dikenakan biaya. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan. |
Operasi SQL yang dapat disinkronkan
Operasi DDL: ADD COLUMN
CatatanDTS tidak memigrasikan operasi DDL transaksional.
Operasi DML: INSERT, UPDATE, dan DELETE
Izin yang diperlukan untuk akun database
Database | Izin yang Diperlukan | Metode Otorisasi |
Instance ApsaraDB RDS for SQL Server | Izin pemilik database sumber | |
Instance AnalyticDB for PostgreSQL |
Catatan Anda dapat menggunakan akun awal dari instance AnalyticDB for PostgreSQL. |
Prosedur
Beli instance sinkronisasi data. Untuk informasi lebih lanjut, lihat Beli Instance DTS.
CatatanDi halaman pembelian, atur parameter Instance Sumber ke SQL Server, parameter Instance Tujuan ke AnalyticDB for PostgreSQL, dan parameter Topologi Sinkronisasi ke One-way Synchronization.
Masuk ke Konsol DTS.
Di panel navigasi di sebelah kiri, klik Data Synchronization.
Di bagian atas halaman Synchronization Tasks, pilih wilayah tempat instance tujuan berada.
Temukan instance sinkronisasi data dan klik Configure Synchronization Channel di kolom Tindakan.
Konfigurasikan instance sumber dan tujuan.

Bidang
Parameter
Deskripsi
Tidak Ada
Nama Tugas Sinkronisasi
Nama tugas yang secara otomatis dibuat oleh DTS. Kami menyarankan Anda menentukan nama deskriptif yang memudahkan identifikasi tugas. Anda tidak perlu menggunakan nama tugas unik.
Detail Instance Sumber
Tipe Instance
Tipe instance dari instance sumber. Pilih RDS Instance.
Wilayah Instance
Wilayah sumber yang Anda pilih di halaman pembelian. Anda tidak dapat mengubah nilai parameter ini.
ID Instance
ID instance ApsaraDB RDS for SQL Server sumber.
Akun Database
Akun database dari instance ApsaraDB RDS for SQL Server. 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. Jika Anda ingin memilih SSL-encrypted, Anda harus mengaktifkan enkripsi SSL untuk instance ApsaraDB RDS for SQL Server sebelum mengonfigurasi tugas sinkronisasi data. Untuk informasi lebih lanjut, lihat Konfigurasikan fitur enkripsi SSL.
CatatanParameter Encryption hanya tersedia untuk wilayah di daratan Tiongkok dan wilayah China (Hong Kong).
Detail Instance Tujuan
Tipe 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 AnalyticDB for PostgreSQL tujuan.
Nama Database
Nama database tujuan.
Akun Database
Akun database dari instance AnalyticDB for PostgreSQL tujuan. Untuk informasi tentang izin yang diperlukan untuk akun tersebut, lihat Izin yang diperlukan untuk akun database.
Kata Sandi Database
Kata sandi akun database.
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 tersebut. Jika database sumber atau tujuan adalah database mandiri yang di-hosting pada 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 mandiri di-hosting pada 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 mandiri yang ditempatkan 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.
PeringatanJika 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 langkah-langkah pencegahan, termasuk namun tidak terbatas pada langkah-langkah berikut: meningkatkan keamanan nama pengguna dan kata sandi, membatasi port yang diekspos, mengotentikasi panggilan API, secara berkala memeriksa daftar putih atau aturan grup keamanan ECS dan melarang blok CIDR yang tidak sah, atau menghubungkan database ke DTS dengan menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway.
Pilih kebijakan sinkronisasi dan objek yang akan disinkronkan.

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 merupakan dasar untuk sinkronisasi inkremental selanjutnya.
Mode Pemrosesan Tabel Tujuan yang Sudah Ada
Pre-check and Intercept: memeriksa apakah database tujuan mengandung tabel yang memiliki nama sama dengan tabel di database sumber. Jika database tujuan tidak mengandung tabel yang memiliki nama sama dengan tabel di database sumber, pra-pemeriksaan berhasil. Jika tidak, kesalahan dikembalikan selama pra-pemeriksaan dan tugas sinkronisasi data tidak dapat dimulai.
CatatanJika database sumber dan tujuan mengandung 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.
PeringatanJika Anda memilih Ignore Errors and Proceed, ketidaksesuaian 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 Beberapa 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 query SQL Anda 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.
CatatanSetelah 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_sourceke 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 semacam itu memungkinkan DTS mengidentifikasi setiap tabel sumber. Sebagai contoh,dts********:dtstestdata.testschema.customer1menunjukkan bahwa tabel sumber adalah customer1.Jika Anda mengatur parameter ini ke Ya, semua tabel sumber yang dipilih dalam tugas digabungkan ke dalam 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
untuk menambahkan objek ke bagian Selected.Dalam skenario ini, sinkronisasi data dilakukan antara database heterogen. Oleh karena itu, objek yang disinkronkan adalah tabel, dan objek lain seperti tampilan, pemicu, dan prosedur tersimpan tidak disinkronkan ke database tujuan.
CatatanSecara 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 menambahkan tanda kutip pada nama objek. Jika Anda memilih Yes dan kondisi berikut terpenuhi, DTS menambahkan tanda kutip tunggal (') atau tanda kutip ganda (") pada nama objek selama sinkronisasi skema dan sinkronisasi data inkremental.
Lingkungan bisnis database sumber peka terhadap huruf besar-kecil, dan nama database mengandung huruf besar dan kecil.
Nama tabel sumber tidak dimulai dengan huruf dan mengandung karakter selain huruf, angka, dan karakter khusus.
CatatanNama tabel sumber hanya dapat mengandung karakter khusus berikut: garis bawah (_), tanda pagar (#), dan tanda dolar ($).
Nama skema, tabel, atau kolom yang ingin Anda sinkronkan adalah kata kunci, kata kunci tercadang, atau karakter tidak valid di database tujuan.
CatatanJika Anda memilih Ya, setelah DTS menyinkronkan data ke database tujuan, Anda harus menentukan nama objek dalam tanda kutip untuk menanyakan objek tersebut.
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 Ulangi Koneksi Gagal
Secara default, jika DTS gagal terhubung ke database sumber atau tujuan, DTS akan mencoba lagi dalam waktu 720 menit (12 jam) ke depan. Anda dapat menentukan waktu ulang sesuai kebutuhan Anda. Jika DTS berhasil tersambung kembali ke database sumber dan tujuan dalam waktu yang ditentukan, DTS melanjutkan tugas sinkronisasi data. Jika tidak, tugas sinkronisasi data gagal.
CatatanSaat DTS mencoba ulang koneksi, Anda akan dikenakan biaya untuk instance DTS. Kami menyarankan Anda menentukan waktu ulang berdasarkan kebutuhan bisnis Anda. Anda juga dapat melepaskan instance DTS secepat mungkin setelah instance sumber dan tujuan dilepaskan.
Tentukan jenis tabel, kolom kunci utama, dan kunci distribusi dari tabel yang ingin Anda sinkronkan ke instance AnalyticDB for PostgreSQL.
CatatanUntuk informasi lebih lanjut tentang kolom kunci utama dan kolom distribusi, lihat Kelola Tabel dan Tentukan Distribusi Tabel.
Di pojok kanan bawah halaman, klik Precheck.
CatatanSebelum 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 detailnya, mulai pra-pemeriksaan baru.
Jika Anda tidak perlu menyelesaikan masalah, ignore the failed items dan initiate a new precheck.
Tutup kotak dialog Precheck setelah pesan berikut ditampilkan: The precheck is passed. Kemudian, tugas sinkronisasi data dimulai.
Tunggu hingga sinkronisasi awal selesai dan tugas sinkronisasi data berada dalam status Synchronizing.
Anda dapat melihat status tugas sinkronisasi data di halaman Synchronization Tasks.

FAQ
T: Bagaimana cara menemukan tabel yang disinkronkan ke instance AnalyticDB for PostgreSQL?
A: Selama sinkronisasi skema, DTS menyinkronkan tabel ke database tujuan berdasarkan skema database sumber. Dalam contoh ini, Anda dapat menemukan tabel customer dan Student di skema dbo dari database dtstestdata di instance tujuan, seperti yang ditunjukkan pada gambar berikut. 