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
OFF
LOCAL
,, 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
untuk gtid_option
untuk diatur ke LOCAL
atau spesifikUUID.
Defaultnya adalah OFF
, yang artinya fitur tersebut tidak digunakan.
LOCAL
menetapkan GTID termasuk replika itu sendiri UUID (server_uuid
pengaturan).
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_purged
dengan GTID set yang Anda tentukan. -
Tambahkan GTID set yang Anda tentukan ke GTID set yang
gtid_purged
sudah 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 dari
gtid_set
harus 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_executed
yang belum dibersihkan. Bagiangtid_set
parameter juga tidak dapat menyertakan apa pun GTIDs yang ada digtid_owned
set 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 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 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');