Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mereplikasi transaksi menggunakan GTIDs
Prosedur tersimpan berikut mengontrol bagaimana transaksi direplikasi menggunakan pengidentifikasi transaksi global (GTIDs) dengan Aurora MySQL. Untuk mempelajari cara menggunakan replikasi berdasarkan GTIDs Aurora MySQL, lihat. Menggunakan replikasi GTID berbasis
Topik
mysql.rds_assign_gtids_to_anonymous_transactions (Aurora MySQL versi 3)
Mengonfigurasi opsi ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS dari pernyataan CHANGE REPLICATION SOURCE TO. Hal ini akan membuat saluran replikasi menetapkan GTID ke transaksi replikasi yang tidak memilikinya. Dengan begitu, Anda dapat melakukan replikasi log biner dari sumber yang tidak menggunakan replikasi berbasis GTID ke replika yang menggunakan replikasi tersebut. Untuk informasi selengkapnya, lihat MENGUBAH SUMBER REPLIKASI MENJADI Pernyataan
Sintaks
CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);
Parameter
-
gtid_option -
Nilai string. Nilai yang diizinkan adalah
OFF,LOCAL, atau UUID yang ditentukan.
Catatan penggunaan
Prosedur ini memiliki efek yang sama seperti mengeluarkan pernyataan CHANGE
REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS =
di komunitas MySQL.gtid_option
GTID harus diubah ON untuk disetel gtid_option ke LOCAL atau UUID tertentu.
Defaultnya adalah OFF, yang artinya fitur tersebut tidak digunakan.
LOCAL menetapkan GTID termasuk UUID replika itu sendiri (pengaturan server_uuid).
Meneruskan parameter yang merupakan UUID akan menetapkan GTID yang menyertakan UUID tertentu, seperti pengaturan server_uuid untuk server sumber replikasi.
Contoh
Untuk menonaktifkan fitur ini:
mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('OFF'); +-------------------------------------------------------------+ | Message | +-------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: OFF | +-------------------------------------------------------------+ 1 row in set (0.07 sec)
Untuk menggunakan UUID replika itu sendiri:
mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('LOCAL'); +---------------------------------------------------------------+ | Message | +---------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: LOCAL | +---------------------------------------------------------------+ 1 row in set (0.07 sec)
Untuk menggunakan UUID yang ditentukan:
mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('317a4760-f3dd-3b74-8e45-0615ed29de0e'); +----------------------------------------------------------------------------------------------+ | Message | +----------------------------------------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: 317a4760-f3dd-3b74-8e45-0615ed29de0e | +----------------------------------------------------------------------------------------------+ 1 row in set (0.07 sec)
mysql.rds_gtid_purged (Aurora MySQL versi 3)
Menetapkan nilai global variabel sistem gtid_purged ke set pengidentifikasi transaksi global (GTID) yang diberikan. Variabel gtid_purged sistem adalah set GTID yang terdiri GTIDs dari semua transaksi yang telah dilakukan di server, tetapi tidak ada dalam file log biner apa pun di server.
Untuk memungkinkan kompatibilitas dengan MySQL 8.0, ada dua cara untuk mengatur nilai gtid_purged:
-
Ganti nilai
gtid_purgeddengan set GTID yang Anda tentukan. -
Tambahkan set GTID yang Anda tentukan ke set GTID yang sudah ada di
gtid_purged.
Sintaksis
Untuk mengganti nilai gtid_purged dengan set GTID yang Anda tentukan:
CALL mysql.rds_gtid_purged (gtid_set);
Untuk menambahkan nilai gtid_purged ke set GTID yang Anda tentukan:
CALL mysql.rds_gtid_purged (+gtid_set);
Parameter
gtid_set-
Nilai
gtid_setharus menjadi superset dari nilai saat inigtid_purged, dan tidak dapat berpotongan dengan.gtid_subtract(gtid_executed,gtid_purged)Artinya, set GTID baru harus menyertakan apa pun GTIDs yang sudah adagtid_purged, dan tidak dapat menyertakangtid_executedyang belum dibersihkan. GTIDsgtid_setParameter juga tidak dapat menyertakan apa pun GTIDs yang ada digtid_ownedset global, GTIDs untuk transaksi yang saat ini sedang diproses di server.
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_gtid_purged.
Prosedur ini didukung untuk Aurora MySQL versi 3.04 dan yang lebih tinggi.
Contoh
Contoh berikut menetapkan GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 ke variabel global gtid_purged.
CALL mysql.rds_gtid_purged('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');
mysql.rds_skip_transaction_with_gtid (Aurora MySQL versi 2 dan 3)
Melewati replikasi transaksi dengan pengenal transaksi global (GTID) yang ditentukan pada instans primer Aurora.
Anda dapat menggunakan prosedur ini untuk pemulihan bencana ketika transaksi GTID tertentu diketahui menyebabkan masalah. Gunakan prosedur tersimpan ini untuk melewati transaksi bermasalah. Contoh transaksi bermasalah mencakup transaksi yang menonaktifkan replikasi, menghapus data penting, atau menyebabkan instans DB menjadi tidak tersedia.
Sintaksis
CALL mysql.rds_skip_transaction_with_gtid (gtid_to_skip);
Parameter
-
gtid_to_skip -
GTID dari transaksi replikasi yang akan dilewati.
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_skip_transaction_with_gtid.
Prosedur ini didukung untuk Aurora MySQL versi 2 dan 3.
Contoh
Contoh berikut melewati replikasi transaksi dengan GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23.
CALL mysql.rds_skip_transaction_with_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');
mysql.rds_start_replication_until_gtid (Aurora MySQL versi 3)
Memulai replikasi dari klaster DB Aurora MySQL dan menghentikan replikasi segera setelah pengidentifikasi transaksi global (GTID) yang ditentukan.
Sintaksis
CALL mysql.rds_start_replication_until_gtid(gtid);
Parameter
-
gtid -
GTID setelah replikasi dihentikan.
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_start_replication_until_gtid.
Prosedur ini didukung untuk Aurora MySQL versi 3.04 dan yang lebih tinggi.
Prosedur mysql.rds_start_replication_until_gtid tersimpan tidak didukung untuk replikasi terkelola, yang mencakup hal-hal berikut:
Saat parameter gtid menentukan transaksi yang telah dijalankan oleh replika, replikasi akan segera dihentikan.
Contoh
Contoh berikut memulai replikasi dan mereplikasi perubahan hingga mencapai GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23.
call mysql.rds_start_replication_until_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');