Mengonfigurasi replikasi posisi file log biner 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.

Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal

Anda dapat menyiapkan replikasi antara instans DB RDS for MySQL atau MariaDB dan instans MySQL atau MariaDB yang berada di luar Amazon RDS menggunakan replikasi file log biner.

Sebelum Anda mulai

Anda dapat mengonfigurasi replikasi menggunakan posisi file log biner transaksi yang direplikasi.

Izin yang diperlukan untuk memulai replikasi pada instans DB Amazon RDS dibatasi dan tidak tersedia untuk pengguna master Amazon RDS Anda. Karena itu, pastikan Anda menggunakan perintah dan mysql.rds_start_replication Amazon RDS untuk mengatur replikasi antara basis data live dan basis data Amazon RDS Anda.

Untuk mengatur format pencatatan log biner untuk basis data MySQL atau MariaDB, perbarui parameter binlog_format. Jika instans DB Anda menggunakan grup parameter instans DB default, buat grup parameter DB baru untuk mengubah pengaturan binlog_format. Kami sarankan Anda menggunakan pengaturan default untuk binlog_format, yaitu MIXED. Namun, Anda juga dapat mengatur binlog_format ke ROW atau STATEMENT jika Anda memerlukan format log biner (binlog) tertentu. Boot ulang instans DB Anda agar perubahan diterapkan.

Untuk informasi tentang mengatur parameter binlog_format, lihat Mengkonfigurasi MySQL RDS untuk pencatatan biner MySQL. Untuk informasi tentang implikasi tipe replikasi MySQL yang berbeda-beda, lihat Advantages and disadvantages of statement-based and row-based replication dalam dokumentasi MySQL.

catatan

Dimulai dengan RDS untuk MySQL versi 8.0.36, Amazon RDS tidak mereplikasi database. mysql Oleh karena itu, jika ada pengguna di database eksternal yang Anda butuhkan di replika Amazon RDS, pastikan untuk membuatnya secara manual.

Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal

Ikuti pedoman ini saat Anda menyiapkan instans sumber eksternal dan replika di Amazon RDS:

  • Pantau peristiwa failover untuk instans DB Amazon RDS yang merupakan replika Anda. Jika terjadi failover, maka instans DB yang merupakan replika Anda dapat dibuat ulang pada host baru dengan alamat jaringan yang berbeda. Untuk informasi tentang cara pemonitoran peristiwa failover, lihat Menggunakan pemberitahuan peristiwa Amazon RDS.

  • Pertahankan binlog pada instans sumber Anda hingga Anda memverifikasi bahwa binlog tersebut telah diterapkan ke replika. Dengan mempertahankannya, Anda dapat memulihkan instans sumber Anda jika terjadi kegagalan.

  • Aktifkan pencadangan otomatis pada instans DB Amazon RDS Anda. Dengan mengaktifkan pencadangan otomatis, Anda dapat memulihkan replika ke titik waktu tertentu jika Anda perlu menyinkronkan ulang instans sumber dan replika Anda. Untuk informasi tentang pencadangan dan point-in-time pemulihan, lihat. Mencadangkan, memulihkan, dan mengekspor data

Mengonfigurasi replikasi file log biner dengan Instans sumber eksternal
  1. Jadikan instans MySQL atau MariaDB sumber sebagai hanya-baca.

    mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
  2. Jalankan perintah SHOW MASTER STATUS pada instans MySQL atau MariaDB sumber untuk menentukan lokasi binlog.

    Anda menerima output yang mirip dengan contoh berikut.

    File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
  3. Salin basis data dari instans eksternal ke instans DB Amazon RDS menggunakan mysqldump. Untuk basis data yang sangat besar, Anda mungkin ingin 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 tidak ada spasi di antara opsi -p dan sandi yang dimasukkan.

    Untuk menentukan nama host, nama pengguna, port, dan kata sandi untuk menghubungkan ke instans DB Amazon RDS Anda, gunakan opsi --host, --user (-u), --port, dan -p dalam perintah mysql. Nama host adalah nama Domain Name Service (DNS) dari titik akhir instans DB Amazon RDS, misalnya myinstance.123456789012.us-east-1.rds.amazonaws.com. Anda dapat menemukan nilai titik akhir dalam detail instans di AWS Management Console.

  4. Jadikan instans DB MySQL atau MariaDB sumber sebagai writeable (dapat diubah) lagi.

    mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;

    Untuk informasi lebih lanjut tentang cara membuat cadangan untuk digunakan dengan replikasi, lihat dokumentasi MySQL.

  5. Di dalam AWS Management Console, tambahkan alamat IP server yang menghosting database eksternal ke grup keamanan virtual private cloud (VPC) untuk instans Amazon RDS DB. Untuk informasi selengkapnya tentang cara memodifikasi grup keamanan VPC, lihat Grup keamanan untuk VPC Anda dalam Panduan Pengguna Amazon Virtual Private Cloud.

    Alamat IP dapat berubah jika kondisi berikut terpenuhi:

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

    • Instans sumber eksternal dihentikan dan dimulai ulang.

    Jika semua kondisi ini terpenuhi, verifikasikan alamat IP sebelum menambahkannya.

    Anda mungkin juga perlu mengonfigurasi jaringan lokal Anda untuk mengizinkan koneksi dari alamat IP instans DB Amazon RDS Anda. Anda melakukan ini agar jaringan lokal Anda dapat berkomunikasi dengan instans MySQL atau MariaDB eksternal Anda. Untuk menemukan alamat IP dari instans DB Amazon RDS, gunakan perintah host.

    host db_instance_endpoint

    Nama host adalah nama DNS dari titik akhir instans DB Amazon RDS.

  6. Menggunakan klien pilihan Anda, hubungkan ke instans eksternal dan buat pengguna untuk digunakan untuk replikasi. Gunakan akun ini semata-mata untuk replikasi dan batasi hanya untuk domain Anda guna meningkatkan keamanan. Berikut adalah contohnya.

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

    Tentukan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

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

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
  8. Jadikan instans DB Amazon RDS sebagai replika. Untuk melakukannya, pertama-tama hubungkan ke instans DB Amazon RDS sebagai pengguna master. Kemudian identifikasi basis data MySQL atau MariaDB eksternal sebagai instans sumber menggunakan perintah . Gunakan nama file log master dan posisi log master yang Anda tentukan pada langkah 2. Berikut adalah contohnya.

    CALL mysql.rds_set_external_master ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 0);
    catatan

    Di RDS for MySQL, Anda dapat memilih untuk menggunakan replikasi tertunda dengan menjalankan prosedur tersimpan mysql.rds_set_external_master_with_delay sebagai gantinya. Di RDS for MySQL, salah satu alasan menggunakan replikasi tertunda adalah untuk mengaktifkan pemulihan bencana dengan prosedur tersimpan mysql.rds_start_replication_until. Saat ini, RDS untuk MariaDB mendukung replikasi tertunda tetapi tidak mendukung prosedur mysql.rds_start_replication_until.

  9. Di instans DB Amazon RDS, terbitkan perintah mysql.rds_start_replication untuk memulai replikasi.

    CALL mysql.rds_start_replication;