Penggunaan replikasi berbasis GTID - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Penggunaan replikasi berbasis GTID

Konten berikut menjelaskan cara menggunakan pengidentifikasi transaksi global (GTID) dengan replikasi log biner (binlog) di antara Amazon RDS DB instans. antara cluster Aurora MySQL dan sumber eksternal.

catatan

Untuk Aurora, Anda hanya dapat menggunakan fitur ini dengan klaster Aurora MySQL yang menggunakan replikasi binlog ke atau dari basis data MySQL eksternal. Basis data lain mungkin berupa instans Amazon RDS MySQL, basis data MySQL on-premise, atau klaster DB Aurora di Wilayah AWS yang berbeda. Untuk mempelajari cara mengonfigurasi jenis replikasi semacam itu, lihat Replikasi antara Aurora dan MySQL atau antara Aurora dan klaster DB Aurora lainnya (replikasi log biner).

Jika Anda menggunakan replikasi binlog dan tidak terbiasa dengan replikasi berbasis GTID dengan MySQL, lihat Replikasi dengan pengidentifikasi transaksi global dalam dokumentasi MySQL.

Replikasi berbasis GTID didukung untuk Aurora MySQL versi 2 dan 3.

Ikhtisar pengidentifikasi transaksi global (GTID)

Pengidentifikasi transaksi global (GTID) adalah pengidentifikasi unik yang dibuat untuk transaksi MySQL yang dilakukan. Anda dapat menggunakan GTID agar pemecahan masalah pada replikasi binlog bisa dilakukan dengan lebih mudah dan sederhana.

catatan

Saat Aurora menyinkronkan data antar-instans DB dalam sebuah klaster, mekanisme replikasi tersebut tidak melibatkan log biner (binlog). Untuk Aurora MySQL, replikasi berbasis GTID hanya berlaku saat Anda juga menggunakan replikasi binlog untuk mereplikasi ke dalam atau keluar klaster DB Aurora MySQL dari basis data eksternal yang kompatibel dengan MySQL.

MySQL menggunakan dua jenis transaksi untuk replikasi binlog:

  • Transaksi GTID – Transaksi yang diidentifikasi oleh GTID.

  • Transaksi anonim – Transaksi yang tidak memiliki GTID.

Dalam konfigurasi replikasi, GTID bersifat unik di semua instans DB. GTID menyederhanakan konfigurasi replikasi karena saat Anda menggunakannya, Anda tidak harus merujuk ke posisi file log. GTID juga mempermudah pelacakan transaksi yang direplikasi dan menentukan apakah instans sumber dan replika konsisten.

Replikasi berbasis GTID biasanya digunakan dengan Aurora saat mereplikasi dari basis data yang kompatibel dengan MySQL eksternal ke dalam klaster Aurora. Anda dapat menyiapkan konfigurasi replikasi ini sebagai bagian migrasi dari basis data on-premise atau basis data Amazon RDS ke Aurora MySQL. Jika basis data eksternal sudah menggunakan GTID, mengaktifkan replikasi berbasis GTID untuk klaster Aurora akan menyederhanakan proses replikasi.

Anda mengonfigurasi replikasi berbasis GTID untuk klaster Aurora MySQL dengan terlebih dahulu menetapkan parameter konfigurasi yang relevan dalam grup parameter klaster DB. Kemudian, hubungkan grup parameter tersebut dengan klaster.

Parameter untuk replikasi berbasis GTID

Gunakan parameter berikut untuk mengonfigurasi replikasi berbasis GTID.

Parameter Nilai valid Deskripsi

gtid_mode

OFF, OFF_PERMISSIVE, ON_PERMISSIVE, ON

OFF menentukan bahwa transaksi baru adalah transaksi anonim (yaitu, tidak memiliki GTID), dan transaksi harus anonim agar dapat direplikasi.

OFF_PERMISSIVE menentukan bahwa transaksi baru adalah transaksi anonim, tetapi semua transaksi dapat direplikasi.

ON_PERMISSIVE menentukan bahwa transaksi baru adalah transaksi GTID, tetapi semua transaksi dapat direplikasi.

ON menentukan bahwa transaksi baru adalah transaksi GTID, dan transaksi harus berupa transaksi GTID untuk bisa direplikasi.

enforce_gtid_consistency

OFF, ON, WARN

OFF memperbolehkan transaksi melanggar konsistensi GTID.

ON mencegah transaksi melanggar konsistensi GTID.

WARN memperbolehkan transaksi melanggar konsistensi GTID, tetapi menghasilkan peringatan apabila terjadi pelanggaran.

catatan

Dalam AWS Management Console, gtid_mode parameter muncul sebagaigtid-mode.

Untuk replikasi berbasis GTID, gunakan pengaturan ini pada grup parameter klaster DB untuk klaster DB Aurora MySQL Anda:

  • ON dan hanya ON_PERMISSIVE berlaku untuk replikasi keluar dari klaster Aurora MySQL. Kedua nilai ini menyebabkan klaster DB Aurora Anda menggunakan GTID untuk transaksi yang direplikasi ke basis data eksternal. ON mengharuskan basis data eksternal juga menggunakan replikasi berbasis GTID. ON_PERMISSIVE membuat replikasi berbasis GTID bersifat opsional di basis data eksternal.

  • OFF_PERMISSIVE, jika diatur, artinya klaster DB Aurora Anda dapat menerima replikasi masuk dari basis data eksternal. Hal ini dapat dilakukan terlepas dari apakah basis data eksternal tersebut menggunakan replikasi berbasis GTID atau tidak.

  • OFF, jika diatur, artinya klaster DB Aurora Anda hanya dapat menerima replikasi masuk dari basis data eksternal yang tidak menggunakan replikasi berbasis GTID.

Tip

Replikasi masuk adalah skenario replikasi binlog paling umum untuk klaster Aurora MySQL. Untuk replikasi masuk, kami sarankan agar Anda mengatur mode GTID ke OFF_PERMISSIVE. Pengaturan tersebut memungkinkan replikasi masuk dari basis data eksternal, terlepas dari pengaturan GTID di sumber replikasinya.

Untuk informasi selengkapnya tentang grup parameter, lihat Menggunakan grup parameter.

Mengonfigurasi replikasi berbasis GTID untuk klaster Aurora MySQL

Saat replikasi berbasis GTID diaktifkan untuk klaster DB Aurora MySQL, pengaturan GTID berlaku untuk replikasi binlog ke dalam dan keluar.

Untuk mengaktifkan replikasi berbasis GTID untuk klaster Aurora MySQL
  1. Buat atau edit grup parameter klaster DB menggunakan pengaturan parameter berikut:

    • gtid_modeON atau ON_PERMISSIVE

    • enforce_gtid_consistencyON

  2. Kaitkan grup parameter klaster DB dengan klaster Aurora MySQL. Untuk melakukannya, ikuti prosedur dalam Menggunakan grup parameter.

  3. (Opsional) Tentukan cara menetapkan GTID ke transaksi yang tidak menyertakannya. Untuk melakukannya, panggil prosedur yang tersimpan di mysql.rds_assign_gtids_to_anonymous_transactions (Aurora MySQL versi 3).

Menonaktifkan replikasi berbasis GTID untuk klaster DB Aurora MySQL

Anda dapat menonaktifkan replikasi berbasis GTID untuk klaster DB Aurora MySQL. Dengan begitu, artinya klaster Aurora tidak dapat melakukan replikasi binlog ke dalam atau keluar dengan basis data eksternal yang menggunakan replikasi berbasis GTID.

catatan

Dalam prosedur berikut, replika baca berarti target replikasi dalam konfigurasi Aurora dengan replikasi binlog ke atau dari basis data eksternal. Jadi, itu bukan instans DB Aurora Replica hanya-baca. Misalnya, saat sebuah klaster Aurora menerima replikasi masuk dari sebuah sumber eksternal, instans primer Aurora bertindak sebagai replika baca untuk replikasi binlog.

Untuk detail selengkapnya tentang prosedur tersimpan yang disebutkan di bagian ini, lihat Prosedur tersimpan Aurora MySQL.

Untuk menonaktifkan replikasi berbasis GTID untuk klaster DB Aurora MySQL
  1. Pada replika Aurora, jalankan prosedur berikut:

    Untuk versi 3

    CALL mysql.rds_set_source_auto_position(0);

    Untuk versi 2

    CALL mysql.rds_set_master_auto_position(0);
  2. Atur ulang gtid_mode ke ON_PERMISSIVE.

    1. Pastikan grup parameter klaster DB yang terkait dengan klaster Aurora MySQL memiliki gtid_mode yang diatur ke ON_PERMISSIVE.

      Untuk informasi selengkapnya tentang cara mengatur parameter konfigurasi menggunakan grup parameter, lihat Menggunakan grup parameter.

    2. Mulai ulang klaster DB Aurora MySQL.

  3. Atur ulang gtid_mode ke OFF_PERMISSIVE.

    1. Pastikan grup parameter klaster DB yang terkait dengan klaster Aurora MySQL memiliki gtid_mode yang diatur ke OFF_PERMISSIVE.

    2. Mulai ulang klaster DB Aurora MySQL.

  4. Tunggu hingga semua transaksi GTID diterapkan pada instans primer Aurora. Untuk memeriksa apakah ini diterapkan, lakukan langkah-langkah berikut:

    1. Pada instans primer Aurora, jalankan perintah SHOW MASTER STATUS.

      Output Anda harus mirip dengan output berikut.

      File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------

      Perhatikan file dan posisi dalam output Anda.

    2. Pada setiap replika baca, gunakan file dan informasi posisi dari contoh sumbernya pada langkah sebelumnya untuk menjalankan kueri berikut:

      Untuk versi 3

      SELECT SOURCE_POS_WAIT('file', position);

      Untuk versi 2

      SELECT MASTER_POS_WAIT('file', position);

      Misalnya, jika nama file mysql-bin-changelog.000031 dan posisinya107, jalankan pernyataan berikut:

      Untuk versi 3

      SELECT SOURCE_POS_WAIT('mysql-bin-changelog.000031', 107);

      Untuk versi 2

      SELECT MASTER_POS_WAIT('mysql-bin-changelog.000031', 107);
  5. Setel ulang parameter GTID untuk menonaktifkan replikasi berbasis GTID.

    1. Pastikan grup parameter klaster DB yang terkait dengan klaster Aurora MySQL memiliki pengaturan parameter berikut ini:

      • gtid_modeOFF

      • enforce_gtid_consistencyOFF

    2. Mulai ulang klaster DB Aurora MySQL.