

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

# Menggunakan replikasi MariaDB di Amazon RDS
<a name="USER_MariaDB.Replication"></a>

Anda biasanya menggunakan replika baca untuk mengonfigurasi replikasi antara instans DB Amazon RDS. Untuk informasi umum tentang replika baca, lihat [Menggunakan replika baca instans DB](USER_ReadRepl.md). Untuk informasi spesifik tentang menggunakan replika baca di Amazon RDS for MariaDB, lihat [Menggunakan replika baca MariaDB](USER_MariaDB.Replication.ReadReplicas.md). 

Anda juga dapat mengonfigurasi replikasi berdasarkan koordinat log biner untuk instans DB MariaDB. Untuk instance MariaDB, Anda juga dapat mengonfigurasi replikasi berdasarkan global IDs transaction GTIDs (), yang memberikan keamanan crash yang lebih baik. Untuk informasi selengkapnya, lihat [Mengonfigurasikan replikasi berbasis GTID dengan instans sumber eksternal](MariaDB.Procedural.Replication.GTID.md). 

Berikut ini adalah opsi replikasi lain yang tersedia RDS for MariaDB:
+ Anda dapat menyiapkan replikasi antara instans DB RDS for MariaDB dan instans MySQL atau MariaDB yang berada di luar Amazon RDS. Untuk informasi tentang cara mengonfigurasi replikasi dengan sumber eksternal, lihat [Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal](MySQL.Procedural.Importing.External.ReplMariaDB.md).
+ Anda dapat mengonfigurasi replikasi untuk mengimpor basis data dari instans MySQL atau MariaDB yang berada di luar Amazon RDS, atau untuk mengekspor basis data ke instans tersebut. Untuk informasi lebih lanjut, lihat [Mengimpor data ke Amazon RDS untuk instans DB Amazon RDS for MariaDB dengan waktu henti yang dikurangi](mariadb-importing-data-reduced-downtime.md) dan [Mengekspor data dari instans DB MySQL dengan menggunakan replikasi](MySQL.Procedural.Exporting.NonRDSRepl.md).

Untuk opsi replikasi ini, Anda dapat menggunakan replikasi berbasis baris, replikasi berbasis pernyataan, atau replikasi campuran. Replikasi berbasis baris hanya mereplikasi baris yang diubah yang dihasilkan dari laporan SQL. Replikasi berbasis pernyataan mereplikasi seluruh pernyataan SQL. Replikasi campuran menggunakan replikasi berbasis pernyataan jika memungkinkan, tetapi ke replikasi berbasis baris ketika pernyataan SQL yang tidak aman untuk replikasi berbasis pernyataan dijalankan. Dalam sebagian besar kasus, replikasi campuran direkomendasikan. Format biner log dari DB instans menentukan apakah replikasi berbasis baris, berbasis pernyataan, atau campuran. Untuk informasi mengenai pengaturan format log biner, lihat [Mengkonfigurasi pencatatan biner MariaDB](USER_LogAccess.MariaDB.BinaryFormat.md).

Untuk informasi tentang kompatibilitas replikasi antara versi MariaDB, [lihat Kompatibilitas Replikasi dalam dokumentasi MariaDB](https://mariadb.com/kb/en/mariadb-vs-mysql-compatibility/#replication-compatibility).

**Topics**
+ [Menggunakan replika baca MariaDB](USER_MariaDB.Replication.ReadReplicas.md)
+ [Mengonfigurasikan replikasi berbasis GTID dengan instans sumber eksternal](MariaDB.Procedural.Replication.GTID.md)
+ [Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal](MySQL.Procedural.Importing.External.ReplMariaDB.md)

# Menggunakan replika baca MariaDB
<a name="USER_MariaDB.Replication.ReadReplicas"></a>

Setelah itu, Anda bisa menemukan informasi spesifik tentang menggunakan replika baca di Amazon RDS for MariaDB. Untuk mengetahui informasi umum tentang replika baca dan petunjuk penggunaannya, lihat [Menggunakan replika baca instans DB](USER_ReadRepl.md).
+ [Mengonfigurasi filter replikasi dengan MariaDB](USER_MariaDB.Replication.ReadReplicas.ReplicationFilters.md)
+ [Mengonfigurasi replikasi tertunda dengan MariaDB](USER_MariaDB.Replication.ReadReplicas.DelayReplication.md)
+ [Memperbarui replika baca dengan MariaDB](USER_MariaDB.Replication.ReadReplicas.Updates.md)
+ [Menggunakan deployment replika baca multi-AZ dengan MariaDB](USER_MariaDB.Replication.ReadReplicas.MultiAZ.md)
+ [Menggunakan replika baca cascading dengan untuk MariaDB RDS](USER_MariaDB.Replication.ReadReplicas.Cascading.md)
+ [Memantau replika baca MariaDB](USER_MariaDB.Replication.ReadReplicas.Monitor.md)
+ [Memulai dan menghentikan replikasi dengan replika baca MariaDB](USER_MariaDB.Replication.ReadReplicas.StartStop.md)
+ [Pemecahan Masalah batasan replika baca MariaDB](USER_ReadRepl.Troubleshooting.MariaDB.md)

## Mengonfigurasi replika baca dengan MariaDB
<a name="USER_MariaDB.Replication.ReadReplicas.Configuration"></a>

Sebelum instans DB MariaDB dapat berfungsi sebagai sumber replikasi, pastikan untuk mengaktifkan pencadangan otomatis pada instans DB sumber dengan mengatur periode retensi cadangan ke nilai selain 0. Persyaratan ini juga berlaku untuk replika baca yang merupakan instans DB sumber untuk replika baca lain. 

Anda dapat membuat hingga 15 replika baca dari satu instans DB dalam Wilayah yang sama. Agar replikasi beroperasi secara efektif, setiap replika baca harus memiliki jumlah sumber daya komputasi dan penyimpanan yang sama seperti instans DB sumber. Jika Anda menskalakan instans DB sumber, replika baca juga perlu diskalakan. 

RDS for MariaDB mendukung replika baca kaskade. Untuk mempelajari cara mengonfigurasi replika baca kaskade, lihat [Menggunakan replika baca cascading dengan untuk MariaDB RDS](USER_MariaDB.Replication.ReadReplicas.Cascading.md).

Anda dapat menjalankan beberapa replika baca, membuat dan menghapus tindakan pada saat yang sama yang mereferensikan instans DB sumber yang sama. Saat Anda melakukan tindakan ini, tidak boleh ada lebih dari 15 replika baca untuk setiap instans sumber.

# Mengonfigurasi filter replikasi dengan MariaDB
<a name="USER_MariaDB.Replication.ReadReplicas.ReplicationFilters"></a>

Anda dapat menggunakan filter replikasi untuk menentukan basis data dan tabel mana yang direplikasi dengan replika baca. Filter replikasi dapat menyertakan basis data dan tabel dalam replikasi atau mengecualikannya dari replikasi.

Berikut ini adalah beberapa kasus penggunaan untuk filter replikasi:
+ Untuk mengurangi ukuran replika baca. Dengan filter replikasi, Anda dapat mengecualikan basis data dan tabel yang tidak diperlukan pada replika baca.
+ Untuk mengecualikan basis data dan tabel dari replika baca untuk alasan keamanan.
+ Untuk mereplikasi basis data yang berbeda dan tabel untuk kasus penggunaan tertentu di replika baca yang berbeda. Misalnya, Anda mungkin menggunakan replika baca khusus untuk analitik atau penyerpihan.
+ Untuk instance DB yang telah membaca replika secara berbeda Wilayah AWS, untuk mereplikasi database atau tabel yang berbeda dalam berbagai Wilayah AWS.

**catatan**  
Anda juga dapat menggunakan filter replikasi untuk menentukan basis data dan tabel apa yang direplikasi dengan instans DB MariaDB primer yang dikonfigurasi sebagai replika dalam topologi replikasi masuk. Untuk mengetahui informasi selengkapnya tentang konfigurasi ini, lihat [Mengonfigurasi replikasi posisi file log biner dengan instans sumber eksternal](MySQL.Procedural.Importing.External.Repl.md).

**Topics**
+ [Mengatur parameter penyaringan replikasi untuk RDS MariaDB](#USER_MariaDB.Replication.ReadReplicas.ReplicationFilters.Configuring)
+ [Batasan penyaringan replikasi untuk RDS MariaDB](#USER_MariaDB.Replication.ReadReplicas.ReplicationFilters.Limitations)
+ [Contoh penyaringan replikasi untuk RDS MariaDB](#USER_MariaDB.Replication.ReadReplicas.ReplicationFilters.Examples)
+ [Melihat filter replikasi untuk replika baca](#USER_MariaDB.Replication.ReadReplicas.ReplicationFilters.Viewing)

## Mengatur parameter penyaringan replikasi untuk RDS MariaDB
<a name="USER_MariaDB.Replication.ReadReplicas.ReplicationFilters.Configuring"></a>

Untuk mengonfigurasi filter replikasi, atur parameter filter replikasi berikut pada replika baca:
+ `replicate-do-db` – Mereplikasi perubahan ke basis data yang ditentukan. Ketika Anda menetapkan parameter ini untuk replika baca, hanya basis data yang ditentukan dalam parameter yang direplikasi.
+ `replicate-ignore-db` – Jangan mereplikasi perubahan ke basis data yang ditentukan. Ketika parameter `replicate-do-db` diatur untuk replika baca, parameter ini tidak dievaluasi.
+ `replicate-do-table` – Mereplikasi perubahan ke tabel yang ditentukan. Ketika Anda menetapkan parameter ini untuk replika baca, hanya tabel yang ditentukan dalam parameter yang direplikasi. Juga, ketika parameter `replicate-do-db` atau `replicate-ignore-db` diatur, basis data yang mencakup tabel tertentu harus disertakan dalam replikasi dengan replika baca.
+ `replicate-ignore-table` — Jangan mereplikasi perubahan ke tabel yang ditentukan. Ketika parameter `replicate-do-table` diatur untuk replika baca, parameter ini tidak dievaluasi.
+ `replicate-wild-do-table` – Mereplikasi tabel berdasarkan basis data dan pola nama tabel yang ditentukan. Karakter wildcard `%` dan `_` didukung. Ketika parameter `replicate-do-db` atau `replicate-ignore-db` diatur, pastikan untuk menyertakan basis data yang mencakup tabel tertentu dalam replikasi dengan replika baca.
+ `replicate-wild-ignore-table` – Jangan mereplikasi tabel berdasarkan basis data dan pola nama tabel yang ditentukan. Karakter wildcard `%` dan `_` didukung. Ketika parameter `replicate-do-table` atau `replicate-wild-do-table` diatur untuk replika baca, parameter ini tidak dievaluasi.

Parameter dievaluasi sesuai dengan urutannya dalam daftar. Untuk mengetahui informasi selengkapnya tentang cara kerja parameter ini, lihat [Dokumentasi MariaDB](https://mariadb.com/kb/en/replication-filters/#replication-filters-for-replication-slaves).

Secara default, masing-masing parameter ini memiliki nilai kosong. Pada setiap replika baca, Anda dapat menggunakan parameter ini untuk mengatur, mengubah, dan menghapus filter replikasi. Ketika Anda menetapkan salah satu parameter ini, pisahkan masing-masing filter dari yang lain dengan koma.

Anda dapat menggunakan karakter wildcard `%` dan `_` dalam parameter `replicate-wild-do-table` dan `replicate-wild-ignore-table`. Parameter wildcard `%` mencocokkan jumlah karakter berapa pun, dan wildcard `_` hanya mencocokkan satu karakter. 

Format pencatatan log biner instans DB sumber penting untuk replikasi karena menentukan catatan perubahan data. Pengaturan parameter `binlog_format` menentukan apakah replikasi berbasis baris atau berbasis pernyataan. Untuk informasi selengkapnya, lihat [Mengkonfigurasi pencatatan biner MariaDB](USER_LogAccess.MariaDB.BinaryFormat.md).

**catatan**  
Semua pernyataan bahasa definisi data (DDL) direplikasi sebagai pernyataan, terlepas dari `binlog_format` pengaturan pada instance DB sumber. 

## Batasan penyaringan replikasi untuk RDS MariaDB
<a name="USER_MariaDB.Replication.ReadReplicas.ReplicationFilters.Limitations"></a>

Batasan berikut berlaku untuk penyaringan replikasi untuk RDS MariaDB:
+ Setiap parameter filter replikasi memiliki batas 2.000 karakter.
+ Koma tidak didukung dalam filter replikasi.
+ Opsi MariaDB `binlog_do_db` dan `binlog_ignore_db` untuk filter log biner tidak didukung.
+ Filter replikasi tidak mendukung transaksi XA.

  Untuk informasi selengkapnya, lihat [Pembatasan Transaksi XA](https://dev.mysql.com/doc/refman/8.0/en/xa-restrictions.html) di SQL dokumentasi Saya.
+ Pemfilteran replikasi tidak didukung untuk RDS MariaDB versi 10.2.

## Contoh penyaringan replikasi untuk RDS MariaDB
<a name="USER_MariaDB.Replication.ReadReplicas.ReplicationFilters.Examples"></a>

Untuk mengonfigurasi filter replikasi untuk replika baca, modifikasi parameter filter replikasi dalam grup parameter yang terkait dengan replika baca tersebut.

**catatan**  
Anda tidak dapat mengubah grup parameter default. Jika replika baca menggunakan grup parameter default, buat grup parameter baru dan kaitkan dengan replika baca tersebut. Untuk mengetahui informasi selengkapnya tentang grup parameter DB, lihat [Grup parameter untuk RDS](USER_WorkingWithParamGroups.md).

Anda dapat mengatur parameter dalam grup parameter menggunakan Konsol Manajemen AWS, AWS CLI, atau RDSAPI. Untuk mengetahui informasi tentang mengatur parameter, lihat [](USER_WorkingWithParamGroups.Modifying.md). Ketika Anda mengatur parameter dalam grup parameter, semua instans DB yang terkait dengan grup parameter tersebut menggunakan pengaturan parameter. Jika Anda mengatur parameter filter replikasi dalam grup parameter, pastikan bahwa grup parameter dikaitkan hanya dengan replika baca. Biarkan parameter filter replikasi kosong untuk instans DB sumber.

Contoh berikut mengatur parameter menggunakan AWS CLI. Contoh-contoh ini diatur `ApplyMethod` `immediate` agar perubahan parameter terjadi segera setelah CLI perintah selesai. Jika Anda ingin menerapkan perubahan tertunda setelah replika baca di-boot ulang, atur `ApplyMethod` ke `pending-reboot`. 

Contoh berikut mengatur filter replikasi:
+ [Including databases in replication](#rep-filter-in-dbs-mariadb)
+ [Including tables in replication](#rep-filter-in-tables-mariadb)
+ [Including tables in replication with wildcard characters](#rep-filter-in-tables-wildcards-mariadb)
+ [Escaping wildcard characters in names](#rep-filter-escape-wildcards-mariadb)
+ [Excluding databases from replication](#rep-filter-ex-dbs-mariadb)
+ [Excluding tables from replication](#rep-filter-ex-tables-mariadb)
+ [Excluding tables from replication using wildcard characters](#rep-filter-ex-tables-wildcards-mariadb)<a name="rep-filter-in-dbs-mariadb"></a>

**Example Menyertakan basis data dalam replikasi**  
Contoh berikut menyertakan basis data `mydb1` dan `mydb2` dalam replikasi. Ketika Anda mengatur `replicate-do-db` untuk replika baca, hanya basis data yang ditentukan dalam parameter yang direplikasi.  
Untuk Linux, macOS, atau Unix:  

```
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
```
Untuk Windows:  

```
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
```<a name="rep-filter-in-tables-mariadb"></a>

**Example Menyertakan tabel dalam replikasi**  
Contoh berikut menyertakan tabel `table1` dan `table2` dalam `mydb1` basis data dalam replikasi.  
Untuk Linux, macOS, atau Unix:  

```
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
```
Untuk Windows:  

```
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-do-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
```<a name="rep-filter-in-tables-wildcards-mariadb"></a>

**Example Menyertakan tabel dalam replikasi menggunakan karakter wildcard**  
Contoh berikut menyertakan tabel dengan nama berawalan `orders` dan `returns` dalam basis data `mydb` dalam replikasi.  
Untuk Linux, macOS, atau Unix:  

```
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
```
Untuk Windows:  

```
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
```<a name="rep-filter-escape-wildcards-mariadb"></a>

**Example Mengeluarkan karakter wildcard dalam nama**  
Contoh berikut menunjukkan kepada Anda cara menggunakan karakter escape `\` untuk mengeluarkan karakter wildcard yang merupakan bagian dari nama.   
Asumsikan bahwa Anda memiliki beberapa nama tabel dalam basis data `mydb1` yang dimulai dengan `my_table`, dan Anda ingin menyertakan tabel ini dalam replikasi. Nama tabel meliputi garis bawah, yang juga merupakan karakter wildcard, sehingga contoh ini melepaskan garis bawah dalam nama tabel.  
Untuk Linux, macOS, atau Unix:  

```
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
```
Untuk Windows:  

```
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-do-table", "ParameterValue": "my\_table%", "ApplyMethod":"immediate"}]"
```<a name="rep-filter-ex-dbs-mariadb"></a>

**Example Mengecualikan basis data dari replikasi**  
Contoh berikut mengecualikan basis data `mydb1` dan `mydb2` dari replikasi.  
Untuk Linux, macOS, atau Unix:  

```
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
```
Untuk Windows:  

```
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-ignore-db", "ParameterValue": "mydb1,mydb2", "ApplyMethod":"immediate"}]"
```<a name="rep-filter-ex-tables-mariadb"></a>

**Example Mengecualikan tabel dari replikasi**  
Contoh berikut mengecualikan tabel `table1` dan `table2` dalam basis data `mydb1` dari replikasi.  
Untuk Linux, macOS, atau Unix:  

```
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-ignore-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
```
Untuk Windows:  

```
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-ignore-table", "ParameterValue": "mydb1.table1,mydb1.table2", "ApplyMethod":"immediate"}]"
```<a name="rep-filter-ex-tables-wildcards-mariadb"></a>

**Example Mengecualikan tabel dari replikasi menggunakan karakter wildcard**  
Contoh berikut mengecualikan tabel dengan nama berawalan `orders` dan `returns` dalam basis data `mydb` dari replikasi.  
Untuk Linux, macOS, atau Unix:  

```
aws rds modify-db-parameter-group \
  --db-parameter-group-name myparametergroup \
  --parameters "[{"ParameterName": "replicate-wild-ignore-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
```
Untuk Windows:  

```
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myparametergroup ^
  --parameters "[{"ParameterName": "replicate-wild-ignore-table", "ParameterValue": "mydb.orders%,mydb.returns%", "ApplyMethod":"immediate"}]"
```

## Melihat filter replikasi untuk replika baca
<a name="USER_MariaDB.Replication.ReadReplicas.ReplicationFilters.Viewing"></a>

Anda dapat melihat filter replikasi untuk replika baca dengan cara berikut:
+ Memeriksa pengaturan parameter filter replikasi dalam grup parameter yang terkait dengan replika baca.

  Untuk mengetahui petunjuknya, lihat [Melihat nilai parameter untuk grup parameter DB di Amazon RDS ](USER_WorkingWithParamGroups.Viewing.md).
+ Dalam klien MariaDB, hubungkan ke replika baca dan jalankan pernyataan `SHOW REPLICA STATUS`.

  Dalam output, bidang berikut menunjukkan filter replikasi untuk replika baca:
  + `Replicate_Do_DB`
  + `Replicate_Ignore_DB`
  + `Replicate_Do_Table`
  + `Replicate_Ignore_Table`
  + `Replicate_Wild_Do_Table`
  + `Replicate_Wild_Ignore_Table`

  Untuk informasi selengkapnya tentang bidang ini, lihat [Memeriksa Status Replikasi](https://dev.mysql.com/doc/refman/8.0/en/replication-administration-status.html) di SQL Dokumentasi saya.
**catatan**  
Versi sebelumnya dari MariaDB menggunakan `SHOW SLAVE STATUS`, bukan `SHOW REPLICA STATUS`. Jika Anda menggunakan MariaDB sebelum versi 10.5, gunakan `SHOW SLAVE STATUS`. 

# Mengonfigurasi replikasi tertunda dengan MariaDB
<a name="USER_MariaDB.Replication.ReadReplicas.DelayReplication"></a>

Anda dapat menggunakan replikasi tertunda sebagai strategi pemulihan bencana. Dengan replikasi tertunda, Anda menentukan jumlah waktu minimum, dalam detik, untuk menunda replikasi dari sumber ke replika baca. Jika terjadi bencana, seperti tabel yang terhapus secara tidak sengaja, Anda menyelesaikan langkah-langkah berikut untuk memulihkan dari bencana dengan cepat:
+ Hentikan replikasi ke replika baca sebelum perubahan yang menyebabkan bencana dikirim ke replika tersebut.

  Untuk menghentikan replikasi, gunakan prosedur yang tersimpan di [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication).
+ Tingkatkan replika baca menjadi instans DB sumber baru dengan menggunakan petunjuk di [Mempromosikan replika baca menjadi instans DB mandiri](USER_ReadRepl.Promote.md).

**catatan**  
Replikasi tertunda didukung untuk versi MariaDB 10.6 dan yang lebih tinggi.
Gunakan prosedur yang tersimpan untuk mengonfigurasi replikasi tertunda. Anda tidak dapat mengonfigurasi replikasi tertunda dengan Konsol Manajemen AWS, AWS CLI, atau Amazon RDSAPI.
Anda dapat menggunakan replikasi berdasarkan pengidentifikasi transaksi global (GTIDs) dalam konfigurasi replikasi tertunda.

**Topics**
+ [Mengonfigurasi replikasi tertunda selama pembuatan replika baca](#USER_MariaDB.Replication.ReadReplicas.DelayReplication.ReplicaCreation)
+ [Mengubah replikasi tertunda untuk replika baca yang sudah ada](#USER_MariaDB.Replication.ReadReplicas.DelayReplication.ExistingReplica)
+ [Mempromosikan replika baca](#USER_MariaDB.Replication.ReadReplicas.DelayReplication.Promote)

## Mengonfigurasi replikasi tertunda selama pembuatan replika baca
<a name="USER_MariaDB.Replication.ReadReplicas.DelayReplication.ReplicaCreation"></a>

Untuk mengonfigurasi replikasi tertunda untuk replika baca di masa mendatang yang dibuat dari instans DB, jalankan prosedur tersimpan [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) dengan parameter `target delay`.

**Untuk mengonfigurasi replikasi tertunda selama pembuatan replika baca**

1. Dengan menggunakan klien MariaDB, hubungkan ke instans DB MariaDB untuk menjadi sumber replika baca sebagai pengguna master.

1. Jalankan prosedur tersimpan [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) dengan parameter `target delay`.

   Misalnya, jalankan prosedur tersimpan berikut untuk menentukan bahwa replikasi ditunda setidaknya satu jam (3.600 detik) untuk replika baca yang dibuat dari instans DB saat ini.

   ```
   call mysql.rds_set_configuration('target delay', 3600);
   ```
**catatan**  
Setelah menjalankan prosedur tersimpan ini, replika baca apa pun yang Anda buat menggunakan AWS CLI atau Amazon RDS API dikonfigurasi dengan replikasi yang tertunda oleh jumlah detik yang ditentukan.

## Mengubah replikasi tertunda untuk replika baca yang sudah ada
<a name="USER_MariaDB.Replication.ReadReplicas.DelayReplication.ExistingReplica"></a>

Untuk mengubah replikasi tertunda untuk replika baca yang ada, jalankan prosedur tersimpan [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay).

**Untuk mengubah replikasi tertunda untuk replika baca yang sudah ada**

1. Dengan menggunakan klien MariaDB, hubungkan ke replika baca sebagai pengguna master.

1. Gunakan prosedur yang tersimpan di [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication) untuk menghentikan replikasi.

1. Jalankan prosedur tersimpan [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay).

   Misalnya, jalankan prosedur tersimpan berikut untuk menentukan bahwa replikasi ke replika baca ditunda setidaknya satu jam (3600 detik).

   ```
   call mysql.rds_set_source_delay(3600);
   ```

1. Gunakan prosedur yang tersimpan di [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) untuk memulai replikasi.

## Mempromosikan replika baca
<a name="USER_MariaDB.Replication.ReadReplicas.DelayReplication.Promote"></a>

Setelah replikasi dihentikan, dalam skenario pemulihan bencana, Anda dapat mempromosikan replika baca menjadi instans DB sumber baru. Untuk informasi tentang mempromosikan replika baca, lihat [Mempromosikan replika baca menjadi instans DB mandiri](USER_ReadRepl.Promote.md).

# Memperbarui replika baca dengan MariaDB
<a name="USER_MariaDB.Replication.ReadReplicas.Updates"></a>

Replika baca dirancang untuk mendukung kueri baca, tetapi Anda mungkin perlu pembaruan sesekali. Misalnya, Anda mungkin perlu menambahkan indeks untuk mempercepat jenis kueri tertentu yang mengakses replika. Anda dapat mengaktifkan pembaruan dengan mengatur parameter `read_only` untuk **0** dalam grup parameter DB untuk replika baca. 

# Menggunakan deployment replika baca multi-AZ dengan MariaDB
<a name="USER_MariaDB.Replication.ReadReplicas.MultiAZ"></a>

Anda dapat membuat replika baca dari deployment instans DB Multi-AZ atau tunggal-AZ. Anda menggunakan deployment Multi-AZ untuk meningkatkan dan ketersediaan data kritis, tetapi Anda tidak dapat menggunakan sekunder Multi-AZ untuk melayani kueri hanya baca. Sebagai gantinya, Anda dapat membuat replika baca dari instans DB Multi-AZ multi-lalu lintas tinggi untuk mengeluarkan kueri hanya baca. Jika instans sumber dari deployment Multi-AZ gagal karena replika baca sekunder, setiap replika baca terkait akan otomatis untuk menggunakan sumber sekunder (sekarang primer) sebagai sumber replikasinya. Untuk informasi selengkapnya, lihat [Mengonfigurasi dan mengelola penyebaran Multi-AZ untuk Amazon RDS](Concepts.MultiAZ.md). 

Anda dapat membuat replika baca sebagai instans DB Multi-AZ. Amazon RDS membuat instans siaga replika Anda di Zona Ketersediaan lain untuk dukungan failover untuk replika tersebut. Membuat replika baca Anda sebagai instans DB Multi-AZ tidak tergantung pada apakah basis data sumber adalah instans DB Multi-AZ. 

# Menggunakan replika baca cascading dengan untuk MariaDB RDS
<a name="USER_MariaDB.Replication.ReadReplicas.Cascading"></a>

RDSuntuk MariaDB mendukung cascading replika baca. Dengan *replika baca cascading*, Anda dapat menskalakan pembacaan tanpa menambahkan overhead ke sumber Anda untuk instance RDS MariaDB DB.

Dengan replika baca cascading, instans DB untuk RDS MariaDB Anda mengirimkan data ke replika baca pertama dalam rantai. Replika baca itu kemudian mengirimkan data ke replika kedua dalam rantai, dan seterusnya. Hasil akhirnya adalah bahwa semua replika baca dalam rantai memiliki perubahan dari instance RDS for MariaDB DB, tetapi tanpa overhead hanya pada instance DB sumber.

Anda dapat membuat serangkaian hingga tiga replika baca dalam rantai dari sumber RDS untuk instance MariaDB DB. Misalnya, misalkan Anda memiliki instance RDS untuk MariaDB DB,. `mariadb-main` Anda dapat melakukan hal berikut:
+ Dimulai dengan `mariadb-main`, buat replika baca pertama dalam rantai, `read-replica-1`.
+ Selanjutnya, dari `read-replica-1`, buat replika baca berikutnya dalam rantai, `read-replica-2`.
+ Akhirnya, dari `read-replica-2`, buat replika baca ketiga dalam rantai, `read-replica-3`.

Anda tidak dapat membuat replika baca lain di luar replika baca kaskade ketiga ini dalam rangkaian untuk `mariadb-main`. Serangkaian contoh lengkap dari instance DB sumber RDS untuk MariaDB hingga akhir serangkaian replika baca berjenjang dapat terdiri dari paling banyak empat instans DB.

Agar replika baca cascading berfungsi, setiap sumber untuk instance RDS MariaDB DB harus mengaktifkan pencadangan otomatis. Untuk mengaktifkan pencadangan otomatis pada replika baca, pertama-tama buat replika baca, lalu ubah replika baca untuk mengaktifkan pencadangan otomatis. Untuk informasi selengkapnya, lihat [Membuat replika baca](USER_ReadRepl.Create.md).

Seperti halnya replika baca lainnya, Anda dapat mempromosikan replika baca yang merupakan bagian dari kaskade. Mempromosikan replika baca dari dalam rantai replika baca menghilangkan replika tersebut dari rantai. Misalnya, misalkan Anda ingin memindahkan sebagian beban kerja dari instans `mariadb-main` DB Anda ke instans baru untuk digunakan oleh departemen akuntansi saja. Dengan asumsi rantai tiga replika baca dari contoh, Anda memutuskan untuk mempromosikan `read-replica-2`. Rantai terpengaruh sebagai berikut:
+ Mempromosikan `read-replica-2` menghapusnya dari rantai replikasi.
  + Replika ini sekarang menjadi instans DB baca/tulis penuh.
  + Replika ini terus mereplikasi menjadi `read-replica-3`, seperti yang dilakukan sebelum promosi.
+ `mariadb-main` Anda terus mereplikasi ke `read-replica-1`.

Untuk informasi lebih lanjut tentang mempromosikan replika baca, lihat [Mempromosikan replika baca menjadi instans DB mandiri](USER_ReadRepl.Promote.md).

# Memantau replika baca MariaDB
<a name="USER_MariaDB.Replication.ReadReplicas.Monitor"></a>

Untuk replika baca MariaDB, Anda dapat memantau kelambatan replikasi di Amazon CloudWatch dengan melihat metrik Amazon. RDS `ReplicaLag` Metrik `ReplicaLag` melaporkan nilai kolom `Seconds_Behind_Master` dari perintah `SHOW REPLICA STATUS`. 

**catatan**  
Versi sebelumnya dari MariaDB menggunakan `SHOW SLAVE STATUS`, bukan `SHOW REPLICA STATUS`. Jika Anda menggunakan MariaDB sebelum versi 10.5, gunakan `SHOW SLAVE STATUS`. 

Penyebab umum keterlambatan replikasi untuk MariaDB adalah sebagai berikut: 
+ Pemadaman jaringan.
+ Menulis ke tabel dengan indeks pada replika baca. Jika parameter `read_only` tidak diatur ke 0 pada replika baca, hal ini dapat memecah replikasi.
+ Menggunakan mesin penyimpanan nontransaksional seperti My. ISAM Replikasi hanya didukung untuk mesin penyimpanan InnoDB pada MariaDB.

Saat metrik `ReplicaLag` mencapai 0, replika telah menyamai instans DB sumber. Jika metrik `ReplicaLag` mengembalikan -1, maka replikasi saat ini tidak aktif. `ReplicaLag` = -1 setara dengan `Seconds_Behind_Master` = `NULL`. 

# Memulai dan menghentikan replikasi dengan replika baca MariaDB
<a name="USER_MariaDB.Replication.ReadReplicas.StartStop"></a>

Anda dapat menghentikan dan memulai ulang proses replikasi di instans DB Amazon RDS dengan memanggil prosedur yang disimpan sistem [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication) dan [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication). Anda dapat melakukan ini saat mereplikasi antara dua instans Amazon RDS untuk operasi jangka panjang seperti membuat indeks besar. Anda juga perlu menghentikan dan memulai replikasi saat mengimpor atau mengekspor basis data. Untuk informasi lebih lanjut, lihat [Mengimpor data ke Amazon RDS untuk instans DB Amazon RDS for MariaDB dengan waktu henti yang dikurangi](mariadb-importing-data-reduced-downtime.md) dan [Mengekspor data dari instans DB MySQL dengan menggunakan replikasi](MySQL.Procedural.Exporting.NonRDSRepl.md). 

Jika replikasi dihentikan selama lebih dari 30 hari berturut-turut, baik secara manual atau karena kesalahan replikasi, Amazon RDS menghentikan replikasi antara instans DB sumber dan semua replika baca. Hal ini dilakukan untuk mencegah peningkatan persyaratan penyimpanan pada instans DB sumber dan waktu failover yang lama. Instans DB replika baca masih tersedia. Namun, replikasi tidak dapat dilanjutkan karena log biner yang diperlukan oleh replika baca dihapus dari instans DB sumber setelah replikasi dihentikan. Anda dapat membuat replika baca baru untuk instans DB sumber untuk memulihkan replikasi. 

# Pemecahan Masalah batasan replika baca MariaDB
<a name="USER_ReadRepl.Troubleshooting.MariaDB"></a>

Teknologi replikasi untuk MariaDB bersifat asinkron. Karena mereka tidak sinkron, sesekali `BinLogDiskUsage` meningkatkan instans DB sumber dan `ReplicaLag` pada replika baca diharapkan. Misalnya, volume operasi tulis tinggi ke instans DB sumber dapat terjadi secara paralel. Sebaliknya, operasi ke replika baca diseret menggunakan utas I/O tunggal, yang dapat menyebabkan jeda antara instans sumber dan replika baca. Untuk mengetahui informasi selengkapnya tentang replika hanya baca di dokumentasi MariaDB, buka [Ringkasan replikasi](http://mariadb.com/kb/en/mariadb/replication-overview/).

Anda dapat melakukan beberapa hal untuk mengurangi keterlambatan antara pembaruan ke instans DB sumber dan pembaruan berikutnya ke replika baca, seperti berikut:
+ Mengukur replika baca untuk memiliki ukuran penyimpanan dan kelas instans DB yang sebanding dengan instans DB sumber.
+ Memastikan kompatibilitas pengaturan parameter di grup parameter DB yang digunakan oleh instans DB sumber dan replika baca. Untuk mengetahui informasi selengkapnya dan instans, lihat diskusi tentang `max_allowed_packet` nanti di bagian ini.

Amazon RDS memantau status replikasi replika baca Anda dan memperbarui `Replication State` bidang instance replika baca `Error` jika replikasi berhenti karena alasan apa pun. Contohnya mungkin jika DML kueri yang dijalankan pada replika baca Anda bertentangan dengan pembaruan yang dibuat pada instans DB sumber. 

Anda dapat meninjau perincian kesalahan terkait yang disebabkan oleh mesin MariaDB dengan melihat kolom `Replication Error`. Peristiwa yang menunjukkan status replika baca juga dihasilkan, termasuk [RDS-EVENT-0045](USER_Events.Messages.md#RDS-EVENT-0045), [RDS-EVENT-0046](USER_Events.Messages.md#RDS-EVENT-0046), dan [RDS-EVENT-0047](USER_Events.Messages.md#RDS-EVENT-0047). Untuk mengetahui informasi selengkapnya tentang acara dan berlangganan acara, lihat [Bekerja dengan pemberitahuan RDS acara Amazon](USER_Events.md). Jika muncul pesan kesalahan MariaDB, periksa kesalahan di [MariaDB error message documentation](http://mariadb.com/kb/en/mariadb/mariadb-error-codes/).

Satu masalah umum yang dapat menyebabkan kesalahan replikasi adalah ketika nilai untuk `max_allowed_packet` parameter untuk replika baca lebih kecil dari `max_allowed_packet` untuk instans DB sumber. `max_allowed_packet`Parameter adalah parameter khusus yang dapat Anda atur dalam grup parameter DB yang digunakan untuk menentukan ukuran maksimum DML kode yang dapat dijalankan pada database. Dalam beberapa kasus, nilai parameter `max_allowed_packet` dalam grup parameter DB yang terkait dengan instans DB sumber lebih kecil dari nilai parameter `max_allowed_packet` dalam grup parameter DB yang terkait dengan replika baca sumber. Dalam kasus ini, proses replikasi dapat menyebabkan kesalahan (Paket lebih besar dari byte ‘maks\$1allowed\$1packet’) dan menghentikan replikasi. Anda dapat memperbaiki kesalahan dengan memiliki replika sumber dan baca, gunakan grup parameter DB yang sama `max_allowed_packet` nilai parameter. 

Situasi umum lainnya yang dapat menyebabkan kesalahan replikasi mencakup hal-hal berikut:
+ Menulis ke tabel di replika baca. Jika Anda membuat indeks pada replika baca, parameter `read_only` harus diatur ke **0** untuk membuat indeks. Jika Anda menulis pada replika baca, tindakan ini dapat merusak replikasi. 
+ Menggunakan mesin penyimpanan non-transaksional seperti MyISAM. read replicas membutuhkan mesin penyimpanan transaksional. Replikasi hanya didukung untuk mesin penyimpanan InnoDB pada MariaDB.
+ Gunakan kueri nondeterministik yang tidak aman seperti `SYSDATE()`. Untuk informasi selengkapnya, lihat [Determination of safe and unsafe statements in binary logging](https://dev.mysql.com/doc/refman/8.0/en/replication-rbr-safe-unsafe.html). 

Jika Anda memutuskan bahwa Anda dapat melewati kesalahan dengan aman, Anda dapat mengikuti langkah-langkah yang dijelaskan dalam [Melewatkan kesalahan replikasi saat ini untuk RDS untuk MySQL](Appendix.MySQL.CommonDBATasks.SkipError.md). Jika tidak, Anda dapat menghapus replika baca dan membuat instans menggunakan pengidentifikasi instans DB yang sama sehingga titik akhir tetap sama dengan replika baca lama Anda. Jika kesalahan replikasi diperbaiki, `Replication State` berubah menjadi *mereplikasi*.

Untuk instans DB MariaDB, dalam beberapa kasus, replika baca tidak dapat dialihkan ke yang sekunder jika beberapa peristiwa log biner (binlog) tidak di-flush saat kegagalan. Dalam kasus ini, hapus dan buat ulang replika baca secara manual. Anda dapat mengurangi kemungkinan terjadinya hal ini dengan menetapkan nilai parameter berikut: `sync_binlog=1` dan `innodb_flush_log_at_trx_commit=1`. Pengaturan ini dapat mengurangi performa, jadi uji dampaknya sebelum menerapkan perubahan di lingkungan produksi.

# Mengonfigurasikan replikasi berbasis GTID dengan instans sumber eksternal
<a name="MariaDB.Procedural.Replication.GTID"></a>

Anda dapat mengatur replikasi berdasarkan pengidentifikasi transaksi global (GTIDs) dari instance MariaDB eksternal versi 10.0.24 atau lebih tinggi ke RDS untuk instance MariaDB DB. Ikuti pedoman ini saat Anda menyiapkan instans sumber eksternal dan replika di Amazon RDS:
+ Pantau peristiwa failover untuk instans basis data RDS for MariaDB yang menjadi replika Anda. Jika terjadi 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 failover di [Bekerja dengan pemberitahuan RDS acara Amazon](USER_Events.md).
+ 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. Untuk informasi tentang backup dan Point-In-Time Restore, lihat. [Mencadangkan, memulihkan, dan mengekspor data](CHAP_CommonTasks.BackupRestore.md)

**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\$1set\$1external\$1master\$1gtid](mysql_rds_set_external_master_gtid.md) dan [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#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. <a name="MariaDB.Procedural.Importing.External.Repl.Procedure"></a>

**Memulai replikasi**

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

   ```
   mysql> FLUSH TABLES WITH READ LOCK;
   mysql> SET GLOBAL read_only = ON;
   ```

1. 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**. Untuk informasi selengkapnya tentang GTIDs dan bagian komponennya, lihat [ID transaksi global](http://mariadb.com/kb/en/mariadb/global-transaction-id/) di dokumentasi MariaDB. 

1. 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 Amazon RDS untuk instans DB Amazon RDS for MariaDB dengan waktu henti yang dikurangi](mariadb-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 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, port, 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. 

1. Jadikan lagi instans MariaDB sumber bersifat dapat ditulis.

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

1. 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](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) 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 DB.
   + 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. 

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

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

1. 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\$1set\$1external\$1master\$1gtid](mysql_rds_set_external_master_gtid.md). 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', 1);
   ```
**catatan**  
Tetapkan kata sandi selain penggugah/prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

1. Pada instans basis data MariaDB, terbitkan perintah [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) untuk memulai replikasi. 

   ```
   CALL mysql.rds_start_replication; 
   ```

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