Mengonfigurasikan replikasi berbasis GTID dengan instans sumber eksternal - Layanan Basis Data Relasional Amazon

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

Mengonfigurasikan replikasi berbasis GTID dengan instans sumber eksternal

Anda dapat menyiapkan replikasi berdasarkan pengidentifikasi transaksi global (GTID) dari instans eksternal MariaDB versi 10.0.24 atau lebih tinggi ke dalam instans basis data RDS for MariaDB. Ikuti pedoman ini saat Anda menyiapkan instans sumber eksternal dan replika di Amazon RDS:

  • Pantau peristiwa pindah saat gagal/failover untuk instans basis data RDS for MariaDB yang menjadi replika Anda. Jika terjadi pindah saat gagal/failover, maka instans basis data yang merupakan replika Anda dapat dibuat ulang pada sebuah host baru dengan alamat jaringan yang berbeda. Lihat informasi tentang cara memantau peristiwa pindah saat gagal/failover di Bekerja dengan pemberitahuan RDS acara Amazon.

  • Pertahankan log biner (binlog) pada instans sumber Anda sampai Anda memastikan bahwa log itu telah diterapkan pada replika. Upaya mempertahankan ini memastikan bahwa Anda dapat memulihkan instans sumber jika terjadi kegagalan.

  • Aktifkan pencadangan otomatis pada instans basis data MariaDB Anda di Amazon RDS. Mengaktifkan pencadangan otomatis memastikan bahwa Anda dapat memulihkan replika ke titik waktu tertentu jika Anda perlu menyinkronkan ulang instans sumber dan replika Anda. Lihat informasi tentang pencadangan dan pemulihan titik waktu di Mencadangkan, memulihkan, dan mengekspor data.

catatan

Izin-izin yang dibutuhkan untuk memulai replikasi pada instans basis data MariaDB bersifat terbatas dan tidak tersedia bagi pengguna master Amazon RDS Anda. Karena itu, Anda harus menggunakan perintah-perintah Amazon RDS mysql.rds_set_external_master_gtid dan mysql.rds_start_replication untuk menyiapkan replikasi antara basis data aktif dan basis data RDS for MariaDB Anda.

Untuk memulai replikasi antara instans sumber eksternal dan instans basis data MariaDB pada Amazon RDS, gunakan prosedur berikut.

Memulai replikasi
  1. Jadikan instans basis data MariaDB sumber bersifat hanya baca:

    mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
  2. Dapatkan GTID saat ini dari instans MariaDB eksternal. Ini dapat Anda lakukan dengan menggunakan mysql atau editor kueri pilihan Anda untuk menjalankan SELECT @@gtid_current_pos;.

    GTID berformat <domain-id>-<server-id>-<sequence-id>. Sebuah GTID yang lazim terlihat seperti 0-1234510749-1728. Lihat informasi yang lebih lengkap tentang GTID dan komponen-komponennya di ID transaksi global dalam dokumentasi MariaDB.

  3. Salin basis data dari instans MariaDB eksternal ke instans basis data MariaDB dengan menggunakan mysqldump. Untuk basis data yang sangat besar, Anda mungkin perlu menggunakan prosedur di Mengimpor data ke basis data Amazon RDS MariaDB atau MySQL dengan lebih sedikit waktu henti.

    Untuk Linux, macOS, atau Unix:

    mysqldump \ --databases database_name \ --single-transaction \ --compress \ --order-by-primary \ -u local_user \ -plocal_password | mysql \ --host=hostname \ --port=3306 \ -u RDS_user_name \ -pRDS_password

    Untuk Windows:

    mysqldump ^ --databases database_name ^ --single-transaction ^ --compress ^ --order-by-primary \ -u local_user \ -plocal_password | mysql ^ --host=hostname ^ --port=3306 ^ -u RDS_user_name ^ -pRDS_password
    catatan

    Pastikan bahwa tidak ada spasi antara opsi -p dan kata sandi yang dimasukkan.

    Tetapkan kata sandi selain penggugah/prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

    Gunakan opsi-opsi --host, --user (-u), --port dan -p dalam perintah mysql untuk menentukan nama host, nama pengguna, porta, dan kata sandi untuk menghubungi instans basis data MariaDB Anda. Nama host adalah nama DNS dari titik akhir instans basis data MariaDB, misalnya myinstance.123456789012.us-east-1.rds.amazonaws.com. Anda dapat menemukan nilai titik akhir dalam detail instans di Konsol Manajemen Amazon RDS.

  4. Jadikan lagi instans MariaDB sumber bersifat dapat ditulis.

    mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;
  5. Di Konsol Manajemen Amazon RDS, tambahkan alamat IP server yang menjadi host data basis data MariaDB eksternal ke grup keamanan VPC untuk instans basis data MariaDB. Lihat informasi yang lebih lengkap tentang cara mengubah grup keamanan VPC di Grup keamanan untuk VPC dalam Panduan Pengguna Amazon Virtual Private Cloud.

    Alamat IP dapat berubah jika kondisi-kondisi berikut terpenuhi:

    • Anda menggunakan alamat IP publik untuk komunikasi antara instans sumber eksternal dan instans basis data.

    • Instans sumber eksternal dihentikan dan dimulai ulang.

    Jika kedua kondisi ini terpenuhi, periksa alamat IP sebelum menambahkannya.

    Mungkin Anda juga harus mengonfigurasikan jaringan lokal Anda untuk mengizinkan koneksi dari alamat IP instans basis data MariaDB agar dapat berkomunikasi dengan instans MariaDB eksternal. Untuk menemukan alamat IP instans basis data MariaDB, gunakan perintah host.

    host db_instance_endpoint

    Nama host adalah nama DNS titik akhir instans basis data MariaDB.

  6. Dengan menggunakan klien pilihan Anda, hubungi instans MariaDB eksternal dan buat akun pengguna MariaDB yang akan digunakan untuk replikasi. Akun ini digunakan hanya untuk replikasi dan harus dibatasi pada domain Anda untuk meningkatkan keamanan. Berikut sebuah contoh.

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
    catatan

    Tetapkan kata sandi selain penggugah/prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

  7. Untuk instans MariaDB eksternal, berikan privilese-privilese REPLICATION CLIENT dan REPLICATION SLAVE kepada pengguna replikasi Anda. Misalnya, untuk memberikan privilese-privilese REPLICATION CLIENT dan REPLICATION SLAVE pada semua basis data kepada pengguna 'repl_user' bagi domain Anda, keluarkan perintah berikut.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
  8. Jadikan instans basis data MariaDB sebagai replika. Hubungi instans basis data MariaDB sebagai pengguna master dan tandai basis data MariaDB eksternal sebagai instans sumber replikasi dengan menggunakan perintah mysql.rds_set_external_master_gtid. Gunakan GTID yang Anda peroleh dalam Langkah 2. Berikut sebuah contoh.

    CALL mysql.rds_set_external_master_gtid ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'GTID', 0);
    catatan

    Tetapkan kata sandi selain penggugah/prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

  9. Pada instans basis data MariaDB, terbitkan perintah mysql.rds_start_replication untuk memulai replikasi.

    CALL mysql.rds_start_replication;