Mereplikasi transaksi menggunakan GTIDs - Amazon Aurora

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

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 dan Replikasi Dari Sumber Tanpa GTIDs Replika Dengan GTIDs di Manual SQL Referensi Saya.

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 = gtid_option di komunitas MySQL.

GTIDharus diputar ON untuk gtid_option untuk diatur 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_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 GTIDs gtid_executed yang belum dibersihkan. Bagian gtid_set parameter juga tidak dapat menyertakan apa pun GTIDs yang ada di gtid_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');