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 My. SQL Untuk mempelajari cara menggunakan replikasi berdasarkan GTIDs Aurora SQL My, lihat. Menggunakan replikasi GTID berbasis
Topik
mysql.rds_assign_gtids_to_anonymous_transactions (Aurora Versi saya 3) SQL
Mengonfigurasi opsi ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS dari pernyataan CHANGE REPLICATION SOURCE TO. Itu membuat saluran replikasi menetapkan transaksi yang GTID direplikasi yang tidak memilikinya. Dengan begitu, Anda dapat melakukan replikasi log biner dari sumber yang tidak menggunakan replikasi GTID berbasis ke replika yang melakukannya. Untuk informasi lebih lanjut, lihat CHANGEREPLICATIONSOURCEPernyataan
Sintaks
CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);
Parameter
-
gtid_option -
Nilai string. Nilai yang diizinkan adalah
OFFLOCAL,, atau ditentukanUUID.
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
GTIDharus diputar ON gtid_option untuk disetel ke LOCAL atau spesifikUUID.
Defaultnya adalah OFF, yang artinya fitur tersebut tidak digunakan.
LOCALmenetapkan GTID termasuk replika itu sendiri UUID (server_uuidpengaturan).
Melewati parameter yang UUID menetapkan a GTID yang menyertakan yang ditentukanUUID, seperti server_uuid pengaturan 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 replika itu sendiriUUID:
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 yang ditentukanUUID:
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 Versi saya 3) SQL
Menetapkan nilai global variabel sistem gtid_purged ke set identifier transaksi global (GTID) yang diberikan. Variabel gtid_purged sistem adalah GTID satu set 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 My SQL 8.0, ada dua cara untuk mengatur nilaigtid_purged:
-
Ganti nilai
gtid_purgeddengan GTID set yang Anda tentukan. -
Tambahkan GTID set yang Anda tentukan ke GTID set yang
gtid_purgedsudah berisi.
Sintaks
Untuk mengganti nilai gtid_purged dengan GTID set yang Anda tentukan:
CALL mysql.rds_gtid_purged (gtid_set);
Untuk menambahkan nilai gtid_purged ke set yang Anda GTID 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, GTID set baru harus menyertakan apa pun GTIDs yang sudah adagtid_purged, dan tidak dapat menyertakan apa pun GTIDsgtid_executedyang belum dibersihkan.gtid_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 My SQL versi 3.04 dan yang lebih tinggi.
Contoh
Contoh berikut menetapkan GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 ke variabel gtid_purged global.
CALL mysql.rds_gtid_purged('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');
mysql.rds_skip_transaction_with_gtid (Aurora Versi saya 2 dan 3) SQL
Melewatkan replikasi transaksi dengan identifier transaksi global yang ditentukan (GTID) pada instance utama Aurora.
Anda dapat menggunakan prosedur ini untuk pemulihan bencana ketika GTID transaksi 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 -
Transaksi replikasi untuk dilewati. GTID
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_skip_transaction_with_gtid.
Prosedur ini didukung untuk Aurora My SQL versi 2 dan 3.
Contoh
Contoh berikut melewatkan 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 Versi saya 3) SQL
Memulai replikasi dari instance My SQL DB cluster dan menghentikan replikasi segera setelah pengidentifikasi transaksi global yang ditentukan (). GTID
Sintaks
CALL mysql.rds_start_replication_until_gtid(gtid);
Parameter
-
gtid -
GTIDSetelah itu replikasi berhenti.
Catatan penggunaan
Pengguna utama harus menjalankan prosedur mysql.rds_start_replication_until_gtid.
Prosedur ini didukung untuk Aurora My SQL 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');