Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan pengambilan data perubahan untuk Amazon RDS untuk SQL Server
Amazon RDS mendukung change data capture (CDC) untuk instans DB Anda yang menjalankan Microsoft SQL Server. CDCmenangkap perubahan yang dibuat pada data dalam tabel Anda. CDC akan menyimpan metadata setiap perubahan, dan Anda dapat mengaksesnya nanti. Untuk informasi selengkapnya tentang cara CDC kerja, lihat Mengubah pengambilan data
Sebelum Anda menggunakan CDC instans Amazon RDS DB Anda, aktifkan dalam database dengan menjalankanmsdb.dbo.rds_cdc_enable_db
. Anda harus memiliki hak pengguna utama untuk mengaktifkan CDC di instans Amazon RDS DB. Setelah CDC diaktifkan, setiap pengguna yang db_owner
dari database itu dapat mengaktifkan atau menonaktifkan CDC pada tabel dalam database itu.
penting
Selama pemulihan, CDC akan dinonaktifkan. Semua metadata terkait akan otomatis dihapus dari basis data. Ini berlaku untuk pemulihan snapshot, pemulihan, dan point-in-time pemulihan SQL Server Native dari S3. Setelah melakukan salah satu jenis pemulihan ini, Anda dapat mengaktifkan kembali CDC dan menentukan ulang tabel untuk dilacak.
CDCUntuk mengaktifkan instance DB, jalankan prosedur yang msdb.dbo.rds_cdc_enable_db
disimpan.
exec msdb.dbo.rds_cdc_enable_db '
database_name
'
CDCUntuk menonaktifkan instans DB, jalankan prosedur yang msdb.dbo.rds_cdc_disable_db
disimpan.
exec msdb.dbo.rds_cdc_disable_db '
database_name
'
Topik
Melacak tabel menggunakan pengambilan data perubahan
Setelah CDC diaktifkan pada database, Anda dapat mulai melacak tabel tertentu. Anda dapat memilih tabel yang akan dilacak dengan menjalankan sys.sp_cdc_enable_table
--Begin tracking a table exec sys.sp_cdc_enable_table @source_schema = N'
source_schema
' , @source_name = N'source_name
' , @role_name = N'role_name
' --The following parameters are optional: --, @capture_instance = 'capture_instance
' --, @supports_net_changes = supports_net_changes --, @index_name = 'index_name
' --, @captured_column_list = 'captured_column_list
' --, @filegroup_name = 'filegroup_name
' --, @allow_partition_switch = 'allow_partition_switch
' ;
Untuk melihat CDC konfigurasi tabel Anda, jalankan sys.sp_cdc_help_change_data_capture
--View CDC configuration exec sys.sp_cdc_help_change_data_capture --The following parameters are optional and must be used together. -- '
schema_name
', 'table_name
' ;
Untuk informasi selengkapnya tentang CDC tabel, fungsi, dan prosedur tersimpan dalam dokumentasi SQL Server, lihat berikut ini:
Pekerjaan pengambilan data perubahan
Saat Anda mengaktifkanCDC, SQL Server membuat CDC pekerjaan. Pemilik database (db_owner
) dapat melihat, membuat, memodifikasi, dan menghapus CDC pekerjaan. Namun, akun RDS sistem memilikinya. Oleh karena itu, pekerjaan tidak terlihat dari tampilan asli, prosedur, atau di SQL Server Management Studio.
Untuk mengontrol perilaku CDC dalam database, gunakan prosedur SQL Server asli seperti sp_cdc_enable_table dan sp_cdc_start_jobmaxtrans
danmaxscans
, Anda dapat menggunakan sp_cdc_change_job
Untuk mendapatkan informasi lebih lanjut mengenai CDC pekerjaan, Anda dapat menanyakan tampilan manajemen dinamis berikut:
sys.dm_cdc_errors
sys.dm_cdc_log_scan_sessions
sysjobs
sysjobhistory
Pengambilan data perubahan untuk instans Multi-AZ
Jika Anda menggunakan CDC instans Multi-AZ, pastikan konfigurasi CDC pekerjaan mirror cocok dengan yang ada di prinsipal. CDCpekerjaan dipetakan ke. database_id
Jika database IDs di sekunder berbeda dari prinsipal, maka pekerjaan tidak akan dikaitkan dengan database yang benar. Untuk mencoba mencegah kesalahan setelah failover, RDS jatuhkan dan buat ulang pekerjaan pada prinsipal baru. Pekerjaan yang dibuat ulang akan menggunakan parameter yang dicatat oleh pengguna utama sebelum failover.
Meskipun proses ini berjalan cepat, masih mungkin bahwa CDC pekerjaan mungkin berjalan sebelumnya RDS dapat memperbaikinya. Berikut tiga cara untuk memaksa parameter agar konsisten antara replika utama dan sekunder:
Gunakan parameter pekerjaan yang sama untuk semua database yang telah CDC diaktifkan.
Sebelum Anda mengubah konfigurasi CDC pekerjaan, konversikan instans Multi-AZ ke Single-AZ.
Transfer parameter secara manual setiap kali Anda mengubahnya di pengguna utama.
Untuk melihat dan menentukan CDC parameter yang digunakan untuk membuat ulang CDC pekerjaan setelah failover, gunakan rds_show_configuration
dan. rds_set_configuration
Contoh berikut menampilkan nilai yang diatur ke cdc_capture_maxtrans
. Untuk parameter apa pun yang diatur keRDS_DEFAULT
, RDS secara otomatis mengkonfigurasi nilai.
-- Show configuration for each parameter on either primary and secondary replicas. exec rdsadmin.dbo.rds_show_configuration 'cdc_capture_maxtrans';
Untuk mengatur konfigurasi pada di server sekunder, jalankan rdsadmin.dbo.rds_set_configuration
. Prosedur ini mengatur nilai parameter untuk semua basis data di server sekunder. Pengaturan ini hanya digunakan setelah failover. Contoh berikut menetapkan maxtrans
untuk semua pekerjaan CDC capture untuk 1000
:
--To set values on secondary. These are used after failover. exec rdsadmin.dbo.rds_set_configuration 'cdc_capture_maxtrans',
1000
;
Untuk mengatur parameter CDC pekerjaan pada prinsipal, gunakan sys.sp_cdc_change_job