Topik ini menjelaskan cara menyinkronkan data dari database SQL Server yang dikelola sendiri ke instance AnalyticDB for PostgreSQL menggunakan Data Transmission Service (DTS).
Prasyarat
Versi database SQL Server yang dikelola sendiri didukung oleh DTS. Untuk informasi lebih lanjut, lihat Ikhtisar Skenario Sinkronisasi Data.
Instance tujuan AnalyticDB for PostgreSQL telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instance.
Ruang penyimpanan yang tersedia di instance tujuan AnalyticDB for PostgreSQL lebih besar daripada total ukuran data di database SQL Server yang dikelola sendiri.
Jika instance ApsaraDB RDS for SQL Server sumber memenuhi salah satu kondisi berikut, kami menyarankan Anda untuk membagi tugas sinkronisasi menjadi beberapa subtugas:
Instance sumber berisi lebih dari 10 database.
Database tunggal dari instance sumber mencadangkan lognya dengan interval kurang dari 1 jam.
Database tunggal dari instance sumber mengeksekusi lebih dari 100 pernyataan DDL setiap jam.
Log ditulis dengan laju 20 MB/s untuk database tunggal dari instance sumber.
Fitur change data capture (CDC) perlu diaktifkan untuk lebih dari 1.000 tabel di instance ApsaraDB RDS for SQL Server sumber.
Batasan
Selama sinkronisasi skema, DTS menyinkronkan kunci asing dari database sumber ke database tujuan.
Selama sinkronisasi data penuh dan sinkronisasi data tambahan, DTS sementara menonaktifkan pengecekan kendala dan operasi kaskade pada kunci asing di tingkat sesi. Jika Anda melakukan operasi pembaruan dan penghapusan kaskade pada database sumber selama sinkronisasi data, ketidaksesuaian data mungkin terjadi.
Tipe | Deskripsi |
Batasan pada database sumber |
|
Batasan lainnya |
|
Kasus khusus | Jika instance sumber adalah instance RDS for SQL Server, DTS secara otomatis membuat akun bernama |
Penagihan
Tipe Sinkronisasi | Biaya Konfigurasi Tugas |
Sinkronisasi Skema dan Sinkronisasi Data Penuh | Gratis. |
Sinkronisasi Data Tambahan | Dikenakan biaya. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan. |
Topologi Sinkronisasi yang Didukung
Sinkronisasi satu arah satu-ke-satu
Sinkronisasi satu arah satu-ke-banyak
Sinkronisasi satu arah banyak-ke-satu
Untuk informasi lebih lanjut tentang topologi sinkronisasi yang didukung oleh DTS, lihat Topologi Sinkronisasi.
Operasi SQL yang dapat disinkronkan
Tipe Operasi | Pernyataan SQL |
DML | INSERT, UPDATE, dan DELETE |
DDL |
Catatan
|
Izin yang diperlukan untuk akun database
Database | Izin yang Diperlukan | Referensi |
Database SQL Server yang dikelola sendiri | sysadmin | |
AnalyticDB for PostgreSQL instance |
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.
Jika Anda perlu menyinkronkan data dari beberapa database, ulangi Langkah 1 hingga 3 untuk setiap database. Jika tidak, ketidaksesuaian data mungkin terjadi.
Eksekusi pernyataan berikut pada database SQL Server yang dikelola sendiri 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; GOParameter:
<database_name>: nama database sumber.
Contoh:
use master; GO ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE; GOEksekusi pernyataan 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>'; GOParameter:
<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'; GOEksekusi pernyataan berikut untuk membuat cadangan log untuk database sumber.
BACKUP LOG <database_name> to DISK='<physical_backup_device_name>' WITH init; GOParameter:
<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
Prosedur
Pergi ke Halaman Sinkronisasi Data Konsol DTS Baru.
CatatanAnda juga dapat masuk ke Konsol DMS. Di bilah navigasi atas, gerakkan penunjuk mouse ke Data + AI dan pilih .
Di sudut kiri atas halaman, pilih wilayah tempat instance sinkronisasi data berada.
Klik Create Task. Di wizard Buat Tugas Sinkronisasi Data, konfigurasikan database sumber dan tujuan. Tabel berikut menjelaskan parameter.
Bagian
Parameter
Deskripsi
N/A
Task Name
Nama tugas DTS. DTS secara otomatis menghasilkan nama tugas. Kami sarankan Anda menentukan nama deskriptif yang memudahkan identifikasi tugas. Anda tidak perlu menentukan nama tugas unik.
Source Database
Database Type
Tipe database sumber. Pilih SQL Server.
Connection Type
Metode akses database sumber. Pilih Self-managed Database on ECS.
Instance Region
Wilayah tempat database SQL Server mandiri berada.
ECS Instance ID
ID instance Elastic Compute Service (ECS) yang menampung database SQL Server mandiri.
Database Account
Akun database SQL Server mandiri. Untuk informasi tentang izin yang diperlukan untuk akun tersebut, lihat Izin yang diperlukan untuk akun database.
Database Password
Kata sandi yang digunakan untuk mengakses database.
Connection Method
Menentukan apakah akan mengenkripsi koneksi ke database. Anda dapat memilih Non-encrypted atau SSL-encrypted berdasarkan kebutuhan bisnis Anda.
Destination Database
Database Type
Tipe database tujuan. Pilih AnalyticDB PostgreSQL.
Connection Type
Metode akses database tujuan. Pilih Alibaba Cloud Instance.
Instance Region
Wilayah tempat kluster tujuan AnalyticDB for PostgreSQL berada.
Instance ID
ID instance tujuan AnalyticDB for PostgreSQL.
Database Name
Nama database tujuan di instance tujuan AnalyticDB for PostgreSQL.
Database Account
Akun database instance tujuan AnalyticDB for PostgreSQL. Untuk informasi tentang izin yang diperlukan untuk akun tersebut, lihat Izin yang diperlukan untuk akun database.
Database Password
Kata sandi yang digunakan untuk mengakses database.
Di bagian bawah halaman, klik Test Connectivity and Proceed.
Jika database sumber atau tujuan adalah instance database Alibaba Cloud, seperti instance ApsaraDB RDS for MySQL atau instance ApsaraDB for MongoDB, DTS secara otomatis menambahkan blok CIDR server DTS ke daftar putih 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 diterapkan 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 diterapkan di pusat data atau disediakan oleh penyedia layanan cloud pihak ketiga, Anda harus secara manual menambahkan blok CIDR server DTS ke daftar putih database untuk mengizinkan DTS mengakses database. Untuk informasi lebih lanjut, lihat bagian "Blok CIDR server DTS" dari topik 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 Anda menggunakan DTS untuk menyinkronkan data, Anda harus memahami dan mengakui risiko potensial dan mengambil tindakan pencegahan, termasuk tetapi tidak terbatas pada langkah-langkah berikut: meningkatkan keamanan nama pengguna dan kata sandi Anda, 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.
Konfigurasikan objek yang akan disinkronkan dan pengaturan lanjutan.
Parameter
Deskripsi
Synchronization Type
Tipe sinkronisasi. Secara default, Incremental Data Synchronization dipilih. Anda juga harus memilih Schema Synchronization dan Full Data Synchronization. Setelah pra-pemeriksaan selesai, DTS menyinkronkan data historis objek yang dipilih dari database sumber ke kluster tujuan. Data historis ini adalah dasar untuk sinkronisasi tambahan selanjutnya.
Processing Mode for Existing Destination Tables
Precheck and Report Errors: memeriksa apakah database tujuan berisi tabel yang memiliki nama yang sama dengan tabel di database sumber. Jika database sumber dan tujuan tidak berisi tabel dengan nama tabel identik, pra-pemeriksaan berhasil. Jika tidak, kesalahan dilaporkan selama pra-pemeriksaan, dan tugas sinkronisasi data tidak dapat dimulai.
CatatanJika database sumber dan tujuan berisi tabel dengan nama 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 Pemetaan Nama Objek.
Ignore Errors and Proceed: melewati pemeriksaan awal untuk nama tabel yang 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 dan sebuah catatan data di database tujuan memiliki nilai kunci primer atau nilai kunci unik yang sama dengan catatan data di database sumber:
Selama sinkronisasi data penuh, DTS tidak menyinkronkan catatan data ke database tujuan. Catatan data yang ada di database tujuan dipertahankan.
Selama sinkronisasi data tambahan, DTS menyinkronkan catatan data ke database tujuan. Catatan data yang ada di database tujuan ditimpa.
Jika database sumber dan tujuan memiliki skema yang berbeda, data mungkin gagal diinisialisasi. Dalam kasus ini, hanya beberapa kolom yang disinkronkan, atau instance sinkronisasi data gagal. Lanjutkan dengan hati-hati.
Select DDL and DML for Instance-Level Synchronization
Operasi DDL dan DML yang ingin Anda sinkronkan. Untuk informasi lebih lanjut, lihat Operasi SQL yang dapat disinkronkan.
CatatanUntuk memilih operasi SQL yang dilakukan pada database atau tabel tertentu, lakukan langkah-langkah berikut: Di bagian Selected Objects, klik kanan sebuah objek. Di kotak dialog yang muncul, pilih operasi SQL yang ingin Anda sinkronkan.
SQL Server Incremental Synchronization Mode
Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables (Hybrid Log-based Parsing):
Keuntungan:
Mode ini mendukung tabel heap, tabel tanpa kunci utama, tabel terkompresi, dan tabel dengan kolom terhitung.
Mode ini memberikan stabilitas yang lebih tinggi dan berbagai pernyataan DDL lengkap.
Kerugian:
DTS membuat pemicu dts_cdc_sync_ddl, tabel denyut jantung dts_sync_progress, dan tabel penyimpanan DDL dts_cdc_ddl_history di database sumber dan mengaktifkan Change Data Capture (CDC) untuk database sumber dan tabel tertentu.
Anda tidak dapat mengeksekusi pernyataan SELECT INTO, TRUNCATE, atau RENAME COLUMN pada tabel dengan CDC diaktifkan di database sumber. Pemicu yang dibuat oleh DTS di database sumber tidak dapat dihapus secara manual.
Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported):
Keuntungan:
Mode ini tidak mengubah pengaturan database sumber.
Kerugian:
Mode ini tidak mendukung tabel heap, tabel tanpa kunci utama, tabel terkompresi, atau tabel dengan kolom terhitung.
Polling and querying CDC instances for incremental synchronization:
Keuntungan:
Sinkronisasi data penuh dan sinkronisasi data tambahan didukung jika database sumber adalah instance Amazon RDS for SQL Server, database di Microsoft Azure SQL Database, Microsoft Azure SQL Managed Instance, Microsoft Azure SQL Server on Virtual Machine, atau Google Cloud SQL for SQL Server instance.
Anda dapat menggunakan komponen CDC asli dari SQL Server untuk mendapatkan data tambahan. Ini meningkatkan stabilitas sinkronisasi data tambahan dan mengurangi penggunaan bandwidth.
Kerugian:
Akun yang digunakan DTS untuk mengakses database sumber harus memiliki izin untuk mengaktifkan fitur CDC. Sinkronisasi data tambahan memiliki latensi 10 detik.
Jika Anda mengonfigurasi tugas DTS untuk menyinkronkan beberapa tabel di beberapa database, masalah stabilitas dan kinerja mungkin terjadi.
Source Objects
Pilih satu atau lebih objek dari bagian Source Objects dan klik ikon
untuk menambahkan objek ke bagian Selected Objects. CatatanDalam skenario ini, sinkronisasi data dilakukan antara database heterogen. Oleh karena itu, hanya tabel yang dapat disinkronkan. Objek lain seperti tampilan, pemicu, atau prosedur tersimpan tidak disinkronkan ke database tujuan.
Selected Objects
Untuk mengganti nama objek yang ingin Anda sinkronkan ke instance tujuan, klik kanan objek di bagian Selected Objects. Untuk informasi lebih lanjut, lihat bagian "Pemetaan Nama Objek Tunggal" dari topik Pemetaan Nama Objek.
Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di sudut kanan atas bagian Selected Objects. Untuk informasi lebih lanjut, lihat bagian "Pemetaan Beberapa Nama Objek Sekaligus" dari topik Pemetaan Nama Objek.
CatatanUntuk memilih operasi SQL yang dilakukan pada database atau tabel tertentu, klik kanan objek di bagian Selected Objects. Di kotak dialog yang muncul, pilih operasi SQL yang ingin Anda sinkronkan. Untuk informasi lebih lanjut, lihat Operasi SQL yang dapat disinkronkan.
Untuk menentukan kondisi WHERE untuk memfilter data, klik kanan tabel di bagian Selected Objects. Di kotak dialog yang muncul, tentukan kondisi tersebut. Untuk informasi lebih lanjut, lihat Tentukan Kondisi Filter.
Jika Anda menggunakan fitur pemetaan nama objek untuk mengganti nama objek, objek lain yang bergantung pada objek tersebut mungkin gagal disinkronkan.
Parameter
Deskripsi
Monitoring and Alerting
Menentukan apakah akan mengonfigurasi peringatan untuk instance sinkronisasi data. Jika tugas gagal atau latensi sinkronisasi melebihi ambang batas yang ditentukan, kontak peringatan akan menerima notifikasi. Nilai valid:
No: Tidak mengaktifkan peringatan.
Yes: mengonfigurasi peringatan. Dalam hal ini, Anda juga harus mengonfigurasi ambang batas peringatan dan pengaturan notifikasi peringatan. Untuk informasi lebih lanjut, lihat bagian "Konfigurasikan pemantauan dan peringatan saat Anda membuat tugas DTS" dari topik Konfigurasikan pemantauan dan peringatan.
Retry Interval After Source or Destination Database Connection Failure
Rentang waktu ulang untuk koneksi gagal. Jika database sumber atau tujuan gagal terhubung setelah tugas sinkronisasi data dimulai, DTS segera mencoba kembali koneksi dalam rentang waktu tersebut. Nilai valid: 10 hingga 1440. Unit: menit. Nilai default: 720. Kami sarankan Anda mengatur parameter ini ke nilai lebih besar dari 30. Jika DTS berhasil menyambung kembali ke database sumber dan tujuan dalam rentang waktu yang ditentukan, DTS melanjutkan tugas sinkronisasi data. Jika tidak, tugas sinkronisasi data gagal.
CatatanJika Anda menentukan rentang waktu ulang yang berbeda untuk beberapa tugas sinkronisasi data yang memiliki database sumber atau tujuan yang sama, rentang waktu ulang terpendek yang diambil menjadi prioritas.
Saat DTS mencoba kembali koneksi, Anda akan dikenakan biaya untuk instance DTS. Kami sarankan Anda menentukan rentang waktu ulang berdasarkan kebutuhan bisnis Anda. Anda juga dapat melepaskan instance DTS sesegera mungkin setelah instance sumber dan tujuan dilepaskan.
Retry Time for Other Issues
Waktu ulang untuk masalah lainnya. Misalnya, jika operasi DDL atau DML gagal dilakukan setelah tugas sinkronisasi data dimulai, DTS segera mencoba lagi operasi tersebut dalam rentang waktu tersebut. Nilai valid: 1 hingga 1440. Unit: menit. Nilai default: 10. Kami sarankan Anda mengatur parameter ini ke nilai lebih besar dari 10. Jika operasi yang gagal berhasil dilakukan dalam rentang waktu yang ditentukan, DTS melanjutkan tugas sinkronisasi data. Jika tidak, tugas sinkronisasi data gagal.
PentingNilai parameter The wait time before a retry when other issues occur in the source and destination databases harus lebih kecil dari nilai parameter Retry Time for Failed Connection.
Configure ETL
Menentukan apakah akan mengaktifkan fitur ekstraksi, transformasi, dan pemuatan (ETL). Untuk informasi lebih lanjut, lihat Apa itu ETL? Nilai valid:
Yes: mengonfigurasi fitur ETL. Anda dapat memasukkan pernyataan pemrosesan data di editor kode. Untuk informasi lebih lanjut, lihat Konfigurasikan ETL dalam tugas migrasi data atau sinkronisasi data.
No: tidak mengonfigurasi fitur ETL.
Di bagian bawah halaman, klik Next: Configure Database and Table Fields. Di halaman yang muncul, atur kolom kunci utama dan kolom distribusi tabel yang ingin Anda sinkronkan ke instance tujuan AnalyticDB for PostgreSQL.
Simpan pengaturan tugas dan jalankan pra-pemeriksaan.
Untuk melihat parameter yang harus ditentukan saat Anda memanggil operasi API terkait untuk mengonfigurasi tugas DTS, gerakkan penunjuk mouse ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
Jika Anda tidak perlu melihat atau telah melihat parameter, klik Next: Save Task Settings and Precheck di bagian bawah halaman.
CatatanSebelum Anda dapat memulai tugas sinkronisasi data, DTS melakukan pra-pemeriksaan. Anda hanya dapat memulai tugas sinkronisasi data setelah tugas tersebut lulus pra-pemeriksaan.
Jika tugas sinkronisasi data gagal pra-pemeriksaan, klik View Details di sebelah setiap item yang gagal. Setelah Anda menganalisis penyebab berdasarkan hasil pemeriksaan, atasi masalah tersebut. Kemudian, jalankan pra-pemeriksaan ulang.
Jika peringatan dipicu untuk suatu item selama pra-pemeriksaan:
Jika item peringatan tidak dapat diabaikan, klik View Details di sebelah item yang gagal dan atasi masalah tersebut. Kemudian, jalankan pra-pemeriksaan ulang.
Jika item peringatan dapat diabaikan, klik Confirm Alert Details. Di kotak dialog Lihat Detail, klik Ignore. Di pesan yang muncul, klik OK. Kemudian, klik Precheck Again untuk menjalankan pra-pemeriksaan ulang. Jika Anda mengabaikan item peringatan, ketidaksesuaian data mungkin terjadi, dan bisnis Anda mungkin terpapar risiko potensial.
Tunggu hingga Success Rate menjadi 100%. Kemudian, klik Next: Purchase Instance.
Di halaman buy, konfigurasikan parameter Metode Penagihan dan Kelas Instance untuk tugas sinkronisasi data. Tabel berikut menjelaskan parameter.
Bagian
Parameter
Deskripsi
New Instance Class
Metode Penagihan
Langganan: Anda membayar langganan saat membuat instance sinkronisasi data. Metode penagihan langganan lebih hemat biaya daripada metode penagihan bayar sesuai pemakaian untuk penggunaan jangka panjang.
Bayar sesuai pemakaian: Instance bayar sesuai pemakaian ditagih per jam. Metode penagihan bayar sesuai pemakaian cocok untuk penggunaan jangka pendek. Jika Anda tidak lagi memerlukan instance sinkronisasi data bayar sesuai pemakaian, Anda dapat melepaskan instance untuk mengurangi biaya.
Pengaturan Grup Sumber Daya
Grup sumber daya tempat instance sinkronisasi data milik. Nilai default: default resource group. Untuk informasi lebih lanjut, lihat Apa itu Manajemen Sumber Daya?
Kelas Instance
DTS menyediakan kelas instance yang bervariasi dalam kecepatan sinkronisasi. Anda dapat memilih kelas instance berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Kelas instance instance sinkronisasi data.
Durasi Langganan
Jika Anda memilih metode penagihan langganan, tentukan durasi langganan dan jumlah instance sinkronisasi data yang ingin Anda buat. Durasi langganan bisa satu hingga sembilan bulan, satu tahun, dua tahun, tiga tahun, atau lima tahun.
CatatanParameter ini hanya tersedia jika Anda memilih metode penagihan Subscription.
Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK pada kotak dialog konfirmasi.
Anda dapat memantau progres task di halaman data synchronization.