

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
<a name="MySQL.Procedural.Importing.External.ReplMariaDB"></a>

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.

**Topics**
+ [Sebelum Anda mulai](#MySQL.Procedural.Importing.External.Repl.BeforeYouBegin)
+ [Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal](#MySQL.Procedural.Importing.External.Repl.Procedure)

## Sebelum Anda mulai
<a name="MySQL.Procedural.Importing.External.Repl.BeforeYouBegin"></a>

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 Amazon RDS [](mysql-stored-proc-replicating.md#mysql_rds_set_external_master) atau[](mysql-stored-proc-replicating.md#mysql_rds_set_external_source), dan [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) perintah untuk mengatur replikasi antara database langsung dan database 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 memodifikasi `binlog_format` parameter. Di MariaDB dan MySQL 8.0 dan versi yang lebih rendah, defaultnya. `binlog_format` `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. Di MySQL 8.4 dan versi yang lebih tinggi, defaultnya. `binlog_format` `ROW`

Untuk informasi tentang mengatur parameter `binlog_format`, lihat [Mengkonfigurasi MySQL RDS untuk pencatatan biner MySQL untuk database Single-AZ](USER_LogAccess.MySQL.BinaryFormat.md). Untuk informasi tentang implikasi tipe replikasi MySQL yang berbeda-beda, lihat [Advantages and disadvantages of statement-based and row-based replication](https://dev.mysql.com/doc/refman/8.0/en/replication-sbr-rbr.html) dalam dokumentasi MySQL.

## Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal
<a name="MySQL.Procedural.Importing.External.Repl.Procedure"></a>

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 [Bekerja dengan pemberitahuan RDS acara Amazon](USER_Events.md).
+ 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](CHAP_CommonTasks.BackupRestore.md)

**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;
   ```

1. 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   
   ------------------------------------
   ```

1. 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 database Amazon RDS for MySQL dengan downtime yang dikurangi](mysql-importing-data-reduced-downtime.md). 

   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 Konsol Manajemen AWS.

1. 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](https://dev.mysql.com/doc/refman/8.0/en/replication-solutions-backups-read-only.html).

1. Di dalam Konsol Manajemen AWS, 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](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) 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.

1. 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.

1. 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';
   ```

1. Jadikan instans DB Amazon RDS sebagai replika. Untuk melakukannya, pertama-tama hubungkan ke instans DB Amazon RDS sebagai pengguna master. Kemudian mengidentifikasi database MySQL atau MariaDB eksternal sebagai contoh sumber dengan menggunakan perintah or. [](mysql-stored-proc-replicating.md#mysql_rds_set_external_source) [](mysql-stored-proc-replicating.md#mysql_rds_set_external_master) Gunakan nama file log master dan posisi log master yang Anda tentukan pada langkah 2. Perintah berikut adalah contohnya.

   **MySQL 8.4**

   ```
   CALL mysql.rds_set_external_source ('mysourceserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 1);
   ```

   **MariaDB dan MySQL 8.0 dan 5.7**

   ```
   CALL mysql.rds_set_external_master ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 1);
   ```
**catatan**  
Pada RDS untuk MySQL, Anda dapat memilih untuk menggunakan replikasi tertunda dengan menjalankan [mysql.rds\$1set\$1external\$1source\$1with\$1delay (RDS untuk MySQL mayor versi 8.4 dan lebih tinggi)](mysql-stored-proc-replicating.md#mysql_rds_set_external_source_with_delay) prosedur atau disimpan sebagai gantinya. [mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS untuk MariaDB dan RDS untuk MySQL mayor versi 8.0 dan lebih rendah)](mysql-stored-proc-replicating.md#mysql_rds_set_external_master_with_delay) Di RDS for MySQL, salah satu alasan menggunakan replikasi tertunda adalah untuk mengaktifkan pemulihan bencana dengan prosedur tersimpan [](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until). Saat ini, RDS untuk MariaDB mendukung replikasi tertunda tetapi tidak mendukung prosedur `mysql.rds_start_replication_until`.

1. Di instans DB Amazon RDS, terbitkan perintah [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) untuk memulai replikasi.

   ```
   CALL mysql.rds_start_replication;
   ```