

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

# Mengelola replikasi multi-sumber
<a name="mysql-stored-proc-multi-source-replication"></a>

Prosedur tersimpan berikut mengatur dan mengelola saluran replikasi pada RDS untuk replika multi-sumber MySQL. Untuk informasi selengkapnya, lihat [Mengkonfigurasi replikasi multi-sumber untuk Amazon RDS for MySQL](mysql-multi-source-replication.md).

Prosedur tersimpan ini hanya tersedia dengan RDS untuk instance MySQL DB yang menjalankan versi mesin berikut:
+ Semua versi 8.4
+ 8.0.35 dan versi minor yang lebih tinggi
+ 5.7.44 dan versi minor yang lebih tinggi

Saat menggunakan prosedur tersimpan untuk mengelola replikasi dengan pengguna replikasi yang dikonfigurasi`caching_sha2_passwword`, Anda harus mengonfigurasi TLS dengan menentukan. `SOURCE_SSL=1` `caching_sha2_password`adalah plugin otentikasi default untuk RDS untuk MySQL 8.4.

**catatan**  
Meskipun dokumentasi ini mengacu pada instance DB sumber sebagai RDS untuk instance MySQL DB, prosedur ini juga berfungsi untuk instance MySQL yang berjalan di luar Amazon RDS.

**Topics**
+ [mysql.rds\_next\_source\_log\_for\_channel](#mysql_rds_next_source_log_for_channel)
+ [mysql.rds\_reset\_external\_source\_for\_channel](#mysql_rds_reset_external_source_for_channel)
+ [mysql.rds\_set\_external\_source\_for\_channel](#mysql_rds_set_external_source_for_channel)
+ [mysql.rds\_set\_external\_source\_with\_auto\_position\_for\_channel](#mysql_rds_set_external_source_with_auto_position_for_channel)
+ [mysql.rds\_set\_external\_source\_with\_delay\_for\_channel](#mysql_rds_set_external_source_with_delay_for_channel)
+ [mysql.rds\_set\_source\_auto\_position\_for\_channel](#mysql_rds_set_source_auto_position_for_channel)
+ [mysql.rds\_set\_source\_delay\_for\_channel](#mysql_rds_set_source_delay_for_channel)
+ [mysql.rds\_skip\_repl\_error\_for\_channel](#mysql_rds_skip_repl_error_for_channel)
+ [mysql.rds\_start\_replication\_for\_channel](#mysql_rds_start_replication_for_channel)
+ [mysql.rds\_start\_replication\_until\_for\_channel](#mysql_rds_start_replication_until_for_channel)
+ [mysql.rds\_start\_replication\_until\_gtid\_for\_channel](#mysql_rds_start_replication_until_gtid_for_channel)
+ [mysql.rds\_stop\_replication\_for\_channel](#mysql_rds_stop_replication_for_channel)

## mysql.rds\_next\_source\_log\_for\_channel
<a name="mysql_rds_next_source_log_for_channel"></a>

Mengubah posisi log instans DB sumber ke awal log biner berikutnya pada instans DB sumber untuk saluran. Gunakan prosedur ini hanya jika Anda menerima I/O kesalahan replikasi 1236 pada replika multi-sumber.

### Sintaks
<a name="mysql_rds_next_source_log_for_channel-syntax"></a>

 

```
CALL mysql.rds_next_source_log_for_channel(
{{curr_master_log}},
{{channel_name}}           
);
```

### Parameter
<a name="mysql_rds_next_source_log_for_channel-parameters"></a>

 {{curr\_master\_log}}  
Indeks file log sumber saat ini. Misalnya, jika file saat ini bernama `mysql-bin-changelog.012345`, maka indeksnya adalah 12345. Untuk menentukan nama file log sumber saat ini, jalankan perintah `SHOW REPLICA STATUS FOR CHANNEL '{{channel_name}}'` dan lihat kolom `Source_Log_File`.

 {{channel\_name}}   
Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_next_source_log_for_channel-usage-notes"></a>

Pengguna utama harus menjalankan prosedur `mysql.rds_next_source_log_for_channel`. Jika ada kesalahan IO\_thread, misalnya, Anda dapat menggunakan prosedur ini untuk melewati semua peristiwa dalam file log biner saat ini dan melanjutkan replikasi dari file log biner berikutnya untuk saluran yang ditentukan dalam. `channel_name`

### Contoh
<a name="mysql_rds_group_replication_advance_gtid-examples"></a>

Asumsikan replikasi gagal pada saluran pada replika multi-sumber. Berjalan `SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G` pada replika multi-sumber mengembalikan hasil berikut:

```
mysql> SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com
                  Source_User: ReplicationUser
                  Source_Port: 3306
                Connect_Retry: 60
              Source_Log_File: mysql-bin-changelog.012345
          Read_Source_Log_Pos: 1219393
               Relay_Log_File: replica-relay-bin.000003
                Relay_Log_Pos: 30223388
        Relay_Source_Log_File: mysql-bin-changelog.012345
           Replica_IO_Running: No
          Replica_SQL_Running: Yes
              Replicate_Do_DB:.
              .
              .
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.'
               Last_SQL_Errno: 0
               Last_SQL_Error:
               .
               .
                 Channel_name: channel_1
              .
              .
 -- Some fields are omitted in this example output
```

`Last_IO_Errno`Bidang menunjukkan bahwa instance menerima I/O kesalahan 1236. Kolom `Source_Log_File` menunjukkan bahwa nama file adalah `mysql-bin-changelog.012345`, yang berarti indeks file log adalah `12345`. Untuk mengatasi kesalahan, Anda dapat menelepon `mysql.rds_next_source_log_for_channel` dengan parameter berikut:

```
CALL mysql.rds_next_source_log_for_channel(12345,'channel_1');
```

## mysql.rds\_reset\_external\_source\_for\_channel
<a name="mysql_rds_reset_external_source_for_channel"></a>

Menghentikan proses replikasi pada saluran yang ditentukan, dan menghapus saluran dan konfigurasi terkait dari replika multi-sumber.

**penting**  
Untuk menjalankan prosedur ini, `autocommit` harus diaktifkan. Untuk mengaktifkannya, atur parameter `autocommit` ke `1`. Lihat informasi tentang cara mengubah parameter di [](USER_WorkingWithParamGroups.Modifying.md).

### Sintaksis
<a name="mysql_rds_reset_external_source_for_channel-syntax"></a>



```
CALL mysql.rds_reset_external_source_for_channel ({{channel_name}});
```

### Parameter
<a name="mysql_rds_reset_external_source_for_channel-parameters"></a>

 {{channel\_name}}   
Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_reset_external_source_for_channel-usage-notes"></a>

Pengguna utama harus menjalankan prosedur `mysql.rds_reset_external_source_for_channel`. Prosedur ini menghapus semua log relai milik saluran yang dihapus.

## mysql.rds\_set\_external\_source\_for\_channel
<a name="mysql_rds_set_external_source_for_channel"></a>

Mengkonfigurasi saluran replikasi pada RDS untuk MySQL DB instance untuk mereplikasi data dari RDS lain untuk MySQL DB instance.

**penting**  
Untuk menjalankan prosedur ini, `autocommit` harus diaktifkan. Untuk mengaktifkannya, atur parameter `autocommit` ke `1`. Lihat informasi tentang cara mengubah parameter di [](USER_WorkingWithParamGroups.Modifying.md).

**catatan**  
Anda dapat menggunakan prosedur [mysql.rds\_set\_external\_source\_with\_delay\_for\_channel](#mysql_rds_set_external_source_with_delay_for_channel) tersimpan sebagai gantinya untuk mengonfigurasi saluran ini dengan replikasi tertunda.

### Sintaksis
<a name="mysql_rds_set_external_source_for_channel-syntax"></a>



```
CALL mysql.rds_set_external_source_for_channel (
  {{host_name}}
  , {{host_port}}
  , {{replication_user_name}}
  , {{replication_user_password}}
  , {{mysql_binary_log_file_name}}
  , {{mysql_binary_log_file_location}}
  , {{ssl_encryption}}
  , {{channel_name}}
);
```

### Parameter
<a name="mysql_rds_set_external_source_for_channel-parameters"></a>

 {{host\_name}}   
Nama host atau alamat IP dari RDS untuk contoh DB sumber MySQL.

 {{host\_port}}   
Port yang digunakan oleh RDS untuk instance DB sumber MySQL. Jika konfigurasi jaringan Anda mencakup replikasi port Secure Shell (SSH) yang mengubah nomor port, tentukan nomor port yang diekspos oleh SSH.

 {{replication\_user\_name}}   
ID pengguna dengan `REPLICATION CLIENT` dan `REPLICATION SLAVE` izin pada RDS untuk instance DB sumber MySQL. Kami menyarankan Anda memberikan akun yang hanya digunakan untuk replikasi dengan instans DB sumber.

 {{replication\_user\_password}}   
Kata sandi ID pengguna yang ditentukan dalam `replication_user_name`.

 {{mysql\_binary\_log\_file\_name}}   
Nama log biner pada instance DB sumber yang berisi informasi replikasi.

 {{mysql\_binary\_log\_file\_location}}   
Lokasi di log biner `mysql_binary_log_file_name` tempat replikasi mulai membaca informasi replikasi.  
Anda dapat menentukan nama dan lokasi file binlog dengan menjalankan `SHOW BINARY LOG STATUS` instans DB sumber.   
Versi MySQL sebelumnya menggunakan `SHOW MASTER STATUS`, bukan `SHOW BINARY LOG STATUS`. Jika Anda menggunakan versi MySQL sebelum 8.4, maka gunakan. `SHOW MASTER STATUS`

 {{ssl\_encryption}}   
Nilai yang menentukan apakah enkripsi Lapisan Soket Aman (SSL) digunakan pada sambungan replikasi. 1 menentukan untuk menggunakan enkripsi SSL, 0 menentukan untuk tidak menggunakan enkripsi. Default-nya adalah 0.  
Opsi `SOURCE_SSL_VERIFY_SERVER_CERT` tidak didukung. Opsi ini diatur ke 0, yang berarti koneksi dienkripsi, tetapi sertifikat tidak diverifikasi.

 {{channel\_name}}   
Nama saluran replikasi. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_set_external_source_for_channel-usage-notes"></a>

 Pengguna utama harus menjalankan prosedur `mysql.rds_set_external_source_for_channel`. Prosedur ini harus dijalankan pada RDS target untuk instance MySQL DB tempat Anda membuat saluran replikasi.

 Sebelum Anda menjalankan`mysql.rds_set_external_source_for_channel`, konfigurasikan pengguna replikasi pada instans DB sumber dengan hak istimewa yang diperlukan untuk replika multi-sumber. Untuk menghubungkan replika multi-sumber ke instans DB sumber, Anda harus menentukan `replication_user_name` dan `replication_user_password` nilai pengguna replikasi yang memiliki `REPLICATION CLIENT` dan `REPLICATION SLAVE` izin pada instans DB sumber.

**Untuk mengkonfigurasi pengguna replikasi pada instans DB sumber**

1. Menggunakan klien MySQL pilihan Anda, sambungkan ke instans DB sumber dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut adalah contohnya.
**penting**  
Sebagai praktik keamanan terbaik, tentukan kata sandi selain nilai placeholder yang ditunjukkan dalam contoh berikut.

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '{{password}}';
   ```

1. Pada instans DB sumber, berikan `REPLICATION CLIENT` dan `REPLICATION SLAVE` hak istimewa kepada pengguna replikasi Anda. Contoh berikut memberikan hak akses `REPLICATION CLIENT` dan `REPLICATION SLAVE` pada semua basis data untuk pengguna ‘repl\_user’ domain Anda.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

Untuk menggunakan replikasi terenkripsi, konfigurasikan instans DB sumber untuk menggunakan koneksi SSL.

Setelah menelepon `mysql.rds_set_external_source_for_channel` untuk mengonfigurasi saluran replikasi ini, Anda dapat memanggil [mysql.rds\_start\_replication\_for\_channel](#mysql_rds_start_replication_for_channel) replika untuk memulai proses replikasi di saluran. Anda dapat menelepon [mysql.rds\_reset\_external\_source\_for\_channel](#mysql_rds_reset_external_source_for_channel) untuk menghentikan replikasi pada saluran dan menghapus konfigurasi saluran dari replika.

Saat Anda menelepon`mysql.rds_set_external_source_for_channel`, Amazon RDS mencatat waktu, pengguna, dan tindakan `set channel source` dalam `mysql.rds_history` tabel tanpa detail khusus saluran, dan dalam `mysql.rds_replication_status` tabel, dengan nama saluran. Informasi ini dicatat hanya untuk tujuan penggunaan dan pemantauan internal. Untuk mencatat panggilan prosedur lengkap untuk tujuan audit, pertimbangkan untuk mengaktifkan log audit atau log umum, berdasarkan persyaratan spesifik aplikasi Anda.

### Contoh
<a name="mysql_rds_set_external_source_for_channel-examples"></a>

Ketika dijalankan pada RDS untuk MySQL DB instance, contoh berikut mengkonfigurasi saluran replikasi `channel_1` bernama pada instance DB ini untuk mereplikasi data dari sumber yang ditentukan oleh host dan port. `sourcedb.example.com` `3306`

```
call mysql.rds_set_external_source_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  '{{password}}',
  'mysql-bin-changelog.0777',
  120,
  0,
  'channel_1');
```

## mysql.rds\_set\_external\_source\_with\_auto\_position\_for\_channel
<a name="mysql_rds_set_external_source_with_auto_position_for_channel"></a>

Mengkonfigurasi saluran replikasi pada RDS untuk instance MySQL DB dengan penundaan replikasi opsional. Replikasi didasarkan pada pengidentifikasi transaksi global (GTID).

**penting**  
Untuk menjalankan prosedur ini, `autocommit` harus diaktifkan. Untuk mengaktifkannya, atur parameter `autocommit` ke `1`. Lihat informasi tentang cara mengubah parameter di [](USER_WorkingWithParamGroups.Modifying.md).

### Sintaksis
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-syntax"></a>

 

```
CALL mysql.rds_set_external_source_with_auto_position_for_channel (
  {{host_name}}
  , {{host_port}}
  , {{replication_user_name}}
  , {{replication_user_password}}
  , {{ssl_encryption}}
  , {{delay}}
  , {{channel_name}}
);
```

### Parameter
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-parameters"></a>

 {{host\_name}}   
Nama host atau alamat IP dari RDS untuk contoh DB sumber MySQL.

 {{host\_port}}   
Port yang digunakan oleh RDS untuk instance DB sumber MySQL. Jika konfigurasi jaringan Anda mencakup replikasi port Secure Shell (SSH) yang mengubah nomor port, tentukan nomor port yang diekspos oleh SSH.

 {{replication\_user\_name}}   
ID pengguna dengan `REPLICATION CLIENT` dan `REPLICATION SLAVE` izin pada RDS untuk instance DB sumber MySQL. Kami menyarankan Anda memberikan akun yang hanya digunakan untuk replikasi dengan instans DB sumber.

 {{replication\_user\_password}}   
Kata sandi ID pengguna yang ditentukan dalam `replication_user_name`.

 {{ssl\_encryption}}   
Nilai yang menentukan apakah enkripsi Lapisan Soket Aman (SSL) digunakan pada sambungan replikasi. 1 menentukan untuk menggunakan enkripsi SSL, 0 menentukan untuk tidak menggunakan enkripsi. Default-nya adalah 0.  
Opsi `SOURCE_SSL_VERIFY_SERVER_CERT` tidak didukung. Opsi ini diatur ke 0, yang berarti koneksi dienkripsi, tetapi sertifikat tidak diverifikasi.

 {{delay}}   
Jumlah minimum detik untuk menunda replikasi dari instans DB sumber.  
Batas untuk parameter ini adalah satu hari (86.400 detik).

 {{channel\_name}}   
Nama saluran replikasi. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-usage-notes"></a>

Pengguna utama harus menjalankan prosedur `mysql.rds_set_external_source_with_auto_position_for_channel`. Prosedur ini harus dijalankan pada RDS target untuk instance MySQL DB tempat Anda membuat saluran replikasi.

Sebelum Anda menjalankan`rds_set_external_source_with_auto_position_for_channel`, konfigurasikan pengguna replikasi pada instans DB sumber dengan hak istimewa yang diperlukan untuk replika multi-sumber. Untuk menghubungkan replika multi-sumber ke instans DB sumber, Anda harus menentukan `replication_user_name` dan `replication_user_password` nilai pengguna replikasi yang memiliki `REPLICATION CLIENT` dan `REPLICATION SLAVE` izin pada instans DB sumber.

**Untuk mengkonfigurasi pengguna replikasi pada instans DB sumber**

1. Menggunakan klien MySQL pilihan Anda, sambungkan ke instans DB sumber dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut adalah contohnya.
**penting**  
Sebagai praktik keamanan terbaik, tentukan kata sandi selain nilai placeholder yang ditunjukkan dalam contoh berikut.

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '{{password}}';
   ```

1. Pada instans DB sumber, berikan `REPLICATION CLIENT` dan `REPLICATION SLAVE` hak istimewa kepada pengguna replikasi Anda. Contoh berikut memberikan hak akses `REPLICATION CLIENT` dan `REPLICATION SLAVE` pada semua basis data untuk pengguna ‘repl\_user’ domain Anda.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

Untuk menggunakan replikasi terenkripsi, konfigurasikan instans DB sumber untuk menggunakan koneksi SSL.

Sebelum Anda menelepon`mysql.rds_set_external_source_with_auto_position_for_channel`, pastikan untuk memanggil [mysql.rds\_set\_external\_source\_gtid\_purged](mysql-stored-proc-replicating.md#mysql_rds_set_external_source_gtid_purged) untuk mengatur variabel `gtid_purged` sistem dengan rentang GTID tertentu dari sumber eksternal.

Setelah menelepon `mysql.rds_set_external_source_with_auto_position_for_channel` untuk mengonfigurasi instans Amazon RDS DB sebagai replika baca pada saluran tertentu, Anda dapat memanggil replika baca untuk memulai proses replikasi [mysql.rds\_start\_replication\_for\_channel](#mysql_rds_start_replication_for_channel) pada saluran tersebut.

Setelah menelepon `mysql.rds_set_external_source_with_auto_position_for_channel` untuk mengonfigurasi saluran replikasi ini, Anda dapat memanggil [mysql.rds\_start\_replication\_for\_channel](#mysql_rds_start_replication_for_channel) replika untuk memulai proses replikasi di saluran. Anda dapat menelepon [mysql.rds\_reset\_external\_source\_for\_channel](#mysql_rds_reset_external_source_for_channel) untuk menghentikan replikasi pada saluran dan menghapus konfigurasi saluran dari replika.

### Contoh
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-examples"></a>

Ketika dijalankan pada RDS untuk MySQL DB instance, contoh berikut mengkonfigurasi saluran replikasi `channel_1` bernama pada instance DB ini untuk mereplikasi data dari sumber yang ditentukan oleh `sourcedb.example.com` host dan `3306` port Ini menetapkan penundaan replikasi minimum menjadi satu jam (3.600 detik). Ini berarti bahwa perubahan dari sumber RDS untuk instance MySQL DB tidak diterapkan pada replika multi-sumber setidaknya selama satu jam.

```
call mysql.rds_set_external_source_with_auto_position_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  'password',
  1,
  3600,
  'channel_1');
```

## mysql.rds\_set\_external\_source\_with\_delay\_for\_channel
<a name="mysql_rds_set_external_source_with_delay_for_channel"></a>

Mengkonfigurasi saluran replikasi pada RDS untuk instance MySQL DB dengan penundaan replikasi tertentu.

**penting**  
Untuk menjalankan prosedur ini, `autocommit` harus diaktifkan. Untuk mengaktifkannya, atur parameter `autocommit` ke `1`. Lihat informasi tentang cara mengubah parameter di [](USER_WorkingWithParamGroups.Modifying.md).

### Sintaksis
<a name="mysql_rds_set_external_source_with_delay_for_channel-syntax"></a>

 

```
CALL mysql.rds_set_external_source_with_delay_for_channel (
  {{host_name}}
  , {{host_port}}
  , {{replication_user_name}}
  , {{replication_user_password}}
  , {{mysql_binary_log_file_name}}
  , {{mysql_binary_log_file_location}}
  , {{ssl_encryption}}
  , {{delay}}
  , {{channel_name}}
);
```

### Parameter
<a name="mysql_rds_set_external_source_with_delay_for_channel-parameters"></a>

 {{host\_name}}   
Nama host atau alamat IP dari RDS untuk contoh DB sumber MySQL.

 {{host\_port}}   
Port yang digunakan oleh RDS untuk instance DB sumber MySQL. Jika konfigurasi jaringan Anda mencakup replikasi port Secure Shell (SSH) yang mengubah nomor port, tentukan nomor port yang diekspos oleh SSH.

 {{replication\_user\_name}}   
ID pengguna dengan `REPLICATION CLIENT` dan `REPLICATION SLAVE` izin pada RDS untuk instance DB sumber MySQL. Kami menyarankan Anda memberikan akun yang hanya digunakan untuk replikasi dengan instans DB sumber.

 {{replication\_user\_password}}   
Kata sandi ID pengguna yang ditentukan dalam `replication_user_name`.

 {{mysql\_binary\_log\_file\_name}}   
Nama log biner pada instance DB sumber berisi informasi replikasi.

 {{mysql\_binary\_log\_file\_location}}   
Lokasi di log biner `mysql_binary_log_file_name` tempat replikasi akan mulai membaca informasi replikasi.  
Anda dapat menentukan nama dan lokasi file binlog dengan menjalankan `SHOW BINARY LOG STATUS` pada instans basis data sumber.  
Versi MySQL sebelumnya menggunakan `SHOW MASTER STATUS`, bukan `SHOW BINARY LOG STATUS`. Jika Anda menggunakan versi MySQL sebelum 8.4, maka gunakan. `SHOW MASTER STATUS`

 {{ssl\_encryption}}   
Nilai yang menentukan apakah enkripsi Lapisan Soket Aman (SSL) digunakan pada sambungan replikasi. 1 menentukan untuk menggunakan enkripsi SSL, 0 menentukan untuk tidak menggunakan enkripsi. Default-nya adalah 0.  
Opsi `SOURCE_SSL_VERIFY_SERVER_CERT` tidak didukung. Opsi ini diatur ke 0, yang berarti koneksi dienkripsi, tetapi sertifikat tidak diverifikasi.

 {{delay}}   
Jumlah minimum detik untuk menunda replikasi dari instans DB sumber.  
Batas untuk parameter ini adalah satu hari (86.400 detik).

 {{channel\_name}}   
Nama saluran replikasi. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_set_external_source_with_delay_for_channel-usage-notes"></a>

Pengguna utama harus menjalankan prosedur `mysql.rds_set_external_source_with_delay_for_channel`. Prosedur ini harus dijalankan pada RDS target untuk instance MySQL DB tempat Anda membuat saluran replikasi.

Sebelum Anda menjalankan`mysql.rds_set_external_source_with_delay_for_channel`, konfigurasikan pengguna replikasi pada instans DB sumber dengan hak istimewa yang diperlukan untuk replika multi-sumber. Untuk menghubungkan replika multi-sumber ke instans DB sumber, Anda harus menentukan `replication_user_name` dan `replication_user_password` nilai pengguna replikasi yang memiliki `REPLICATION CLIENT` dan `REPLICATION SLAVE` izin pada instans DB sumber.

**Untuk mengkonfigurasi pengguna replikasi pada instans DB sumber**

1. Menggunakan klien MySQL pilihan Anda, sambungkan ke instans DB sumber dan buat akun pengguna yang akan digunakan untuk replikasi. Berikut adalah contohnya.
**penting**  
Sebagai praktik keamanan terbaik, tentukan kata sandi selain nilai placeholder yang ditunjukkan dalam contoh berikut.

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '{{password}}';
   ```

1. Pada instans DB sumber, berikan `REPLICATION CLIENT` dan `REPLICATION SLAVE` hak istimewa kepada pengguna replikasi Anda. Contoh berikut memberikan hak akses `REPLICATION CLIENT` dan `REPLICATION SLAVE` pada semua basis data untuk pengguna ‘repl\_user’ domain Anda.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

Untuk menggunakan replikasi terenkripsi, konfigurasikan instans DB sumber untuk menggunakan koneksi SSL.

Setelah menelepon `mysql.rds_set_external_source_with_delay_for_channel` untuk mengonfigurasi saluran replikasi ini, Anda dapat memanggil [mysql.rds\_start\_replication\_for\_channel](#mysql_rds_start_replication_for_channel) replika untuk memulai proses replikasi di saluran. Anda dapat menelepon [mysql.rds\_reset\_external\_source\_for\_channel](#mysql_rds_reset_external_source_for_channel) untuk menghentikan replikasi pada saluran dan menghapus konfigurasi saluran dari replika.

Saat Anda menelepon`mysql.rds_set_external_source_with_delay_for_channel`, Amazon RDS mencatat waktu, pengguna, dan tindakan `set channel source` dalam `mysql.rds_history` tabel tanpa detail khusus saluran, dan dalam `mysql.rds_replication_status` tabel, dengan nama saluran. Informasi ini dicatat hanya untuk tujuan penggunaan dan pemantauan internal. Untuk mencatat panggilan prosedur lengkap untuk tujuan audit, pertimbangkan untuk mengaktifkan log audit atau log umum, berdasarkan persyaratan spesifik aplikasi Anda.

### Contoh
<a name="mysql_rds_set_external_source_with_delay_for_channel-examples"></a>

Ketika dijalankan pada RDS untuk MySQL DB instance, contoh berikut mengkonfigurasi saluran replikasi `channel_1` bernama pada instance DB ini untuk mereplikasi data dari sumber yang ditentukan oleh `sourcedb.example.com` host dan `3306` port Ini menetapkan penundaan replikasi minimum menjadi satu jam (3.600 detik). Ini berarti bahwa perubahan dari sumber RDS untuk instance MySQL DB tidak diterapkan pada replika multi-sumber setidaknya selama satu jam.

```
call mysql.rds_set_external_source_with_delay_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.000777',
  120,
  1,
  3600,
  'channel_1');
```

## mysql.rds\_set\_source\_auto\_position\_for\_channel
<a name="mysql_rds_set_source_auto_position_for_channel"></a>

Menetapkan mode replikasi untuk saluran yang ditentukan untuk didasarkan pada posisi file log biner atau pada pengidentifikasi transaksi global (GTID).

### Sintaksis
<a name="mysql_rds_set_source_auto_position_for_channel-syntax"></a>

 

```
CALL mysql.rds_set_source_auto_position_for_channel (
{{auto_position_mode}}
 , {{channel_name}}
);
```

### Parameter
<a name="mysql_rds_set_source_auto_position_for_channel-parameters"></a>

 {{auto\_position\_mode}}   
Nilai yang menunjukkan apakah akan menggunakan replikasi posisi file log atau GTID-based replikasi:  
+ `0` – Gunakan metode replikasi berdasarkan posisi file log biner. Nilai default-nya `0`.
+ `1`— Gunakan metode GTID-based replikasi.

 {{channel\_name}}   
Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_set_source_auto_position_for_channel-usage-notes"></a>

Pengguna utama harus menjalankan prosedur `mysql.rds_set_source_auto_position_for_channel`. Prosedur ini memulai ulang replikasi pada saluran yang ditentukan untuk menerapkan mode posisi auto yang ditentukan.

### Contoh
<a name="mysql_rds_set_source_auto_position_for_channel-examples"></a>

Contoh berikut menetapkan mode posisi auto untuk channel\_1 untuk menggunakan metode replikasi. GTID-based 

```
call mysql.rds_set_source_auto_position_for_channel(1,'channel_1');
```

## mysql.rds\_set\_source\_delay\_for\_channel
<a name="mysql_rds_set_source_delay_for_channel"></a>

Menetapkan jumlah minimum detik untuk menunda replikasi dari instance database sumber ke replika multi-sumber untuk saluran yang ditentukan.

### Sintaksis
<a name="mysql_rds_set_source_delay_for_channel-syntax"></a>

```
CALL mysql.rds_set_source_delay_for_channel({{delay}}, {{channel_name}});
```

### Parameter
<a name="mysql_rds_set_source_delay_for_channel-parameters"></a>

 {{delay}}   
Jumlah minimum detik untuk menunda replikasi dari instans DB sumber.  
Batas untuk parameter ini adalah satu hari (86.400 detik).

 {{channel\_name}}   
Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_set_source_delay_for_channel-usage-notes"></a>

Pengguna utama harus menjalankan prosedur `mysql.rds_set_source_delay_for_channel`. Untuk menggunakan prosedur ini, panggilan pertama `mysql.rds_stop_replication_for_channel` untuk menghentikan replikasi. Kemudian, panggil prosedur ini untuk mengatur nilai penundaan replikasi. Saat penundaan diatur, panggil `mysql.rds_start_replication_for_channel` untuk memulai ulang replikasi.

### Contoh
<a name="mysql_rds_set_source_delay_for_channel-examples"></a>

Contoh berikut menetapkan penundaan replikasi dari instance database sumber pada `channel_1` replika multi-sumber setidaknya selama satu jam (3.600 detik).

```
CALL mysql.rds_set_source_delay_for_channel(3600,'channel_1');
```

## mysql.rds\_skip\_repl\_error\_for\_channel
<a name="mysql_rds_skip_repl_error_for_channel"></a>

Melewatkan peristiwa log biner dan menghapus kesalahan replikasi pada replika multi-sumber MySQL DB untuk saluran yang ditentukan.

### Sintaksis
<a name="mysql_rds_skip_repl_error_for_channel-syntax"></a>

 

```
CALL mysql.rds_skip_repl_error_for_channel({{channel_name}});
```

### Parameter
<a name="mysql_rds_skip_repl_error_for_channel-parameters"></a>

 {{channel\_name}}   
Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_skip_repl_error_for_channel-usage-notes"></a>

Pengguna utama harus menjalankan prosedur `mysql.rds_skip_repl_error_for_channel` pada replika baca. Anda dapat menggunakan prosedur ini dengan cara yang sama `mysql.rds_skip_repl_error` digunakan untuk melewati kesalahan pada replika baca. Untuk informasi selengkapnya, lihat [Memanggil prosedur mysql.rds\_skip\_repl\_error](Appendix.MySQL.CommonDBATasks.SkipError.md#Appendix.MySQL.CommonDBATasks.SkipError.procedure).

**catatan**  
Untuk melewati kesalahan dalam GTID-based replikasi, kami sarankan Anda menggunakan prosedur [](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) sebagai gantinya.

Untuk menentukan apakah ada kesalahan, jalankan perintah `SHOW REPLICA STATUS FOR CHANNEL '{{channel_name}}'\G` MySQL. Jika kesalahan replikasi tidak parah, Anda dapat menjalankan `mysql.rds_skip_repl_error_for_channel` untuk melewati kesalahan tersebut. Jika ada beberapa kesalahan, `mysql.rds_skip_repl_error_for_channel` menghapus kesalahan pertama pada saluran replikasi yang ditentukan, kemudian memperingatkan bahwa orang lain hadir. Anda kemudian dapat menggunakan `SHOW REPLICA STATUS FOR CHANNEL '{{channel_name}}'\G` untuk menentukan tindakan yang benar untuk kesalahan berikutnya. Untuk informasi tentang nilai yang ditampilkan, lihat [SHOW REPLICA STATUS statement](https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html) dalam dokumentasi MySQL.

## mysql.rds\_start\_replication\_for\_channel
<a name="mysql_rds_start_replication_for_channel"></a>

Memulai replikasi dari RDS untuk instance MySQL DB ke replika multi-sumber pada saluran yang ditentukan.

**catatan**  
Anda dapat menggunakan prosedur tersimpan [mysql.rds\_start\_replication\_until\_for\_channel](#mysql_rds_start_replication_until_for_channel) atau [mysql.rds\_start\_replication\_until\_gtid\_for\_channel](#mysql_rds_start_replication_until_gtid_for_channel) untuk memulai replikasi dari instans DB RDS for MySQL dan menghentikan replikasi di lokasi file log biner yang ditentukan.

### Sintaksis
<a name="mysql_rds_start_replication_for_channel-syntax"></a>

 

```
CALL mysql.rds_start_replication_for_channel({{channel_name}});
```

### Parameter
<a name="mysql_rds_start_replication_for_channel-parameters"></a>

 {{channel\_name}}   
Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_start_replication_for_channel-usage-notes"></a>

Pengguna utama harus menjalankan prosedur `mysql.rds_start_replication_for_channel`. Setelah Anda mengimpor data dari sumber RDS untuk instance MySQL DB, jalankan perintah ini pada replika multi-sumber untuk memulai replikasi pada saluran yang ditentukan.

### Contoh
<a name="mysql_rds_start_replication_for_channel-examples"></a>

Contoh berikut memulai replikasi pada `channel_1` replika multi-sumber.

```
CALL mysql.rds_start_replication_for_channel('channel_1');
```

## mysql.rds\_start\_replication\_until\_for\_channel
<a name="mysql_rds_start_replication_until_for_channel"></a>

Memulai replikasi dari RDS untuk instance MySQL DB pada saluran yang ditentukan dan menghentikan replikasi di lokasi file log biner yang ditentukan.

### Sintaksis
<a name="mysql_rds_start_replication_until_for_channel-syntax"></a>

 

```
CALL mysql.rds_start_replication_until_for_channel (
{{replication_log_file}}
  , {{replication_stop_point}}
  , {{channel_name}}
);
```

### Parameter
<a name="mysql_rds_start_replication_until_for_channel-parameters"></a>

 {{replication\_log\_file}}   
Nama log biner pada instance DB sumber berisi informasi replikasi.

 {{replication\_stop\_point }}   
Lokasi di log biner `replication_log_file` tempat replikasi akan berhenti.

 {{channel\_name}}   
Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_start_replication_until_for_channel-usage-notes"></a>

Pengguna utama harus menjalankan prosedur `mysql.rds_start_replication_until_for_channel`. Dengan prosedur ini, replikasi dimulai dan kemudian berhenti ketika posisi file binlog yang ditentukan tercapai. Prosedur ini menghentikan `SQL_THREAD` dan`IO_THREAD`.

Nama file yang ditentukan untuk `replication_log_file` parameter harus cocok dengan nama file binlog instance DB sumber.

Ketika `replication_stop_point` parameter menentukan lokasi berhenti yang di masa lalu, replikasi segera dihentikan.

### Contoh
<a name="mysql_rds_start_replication_until_for_channel-examples"></a>

Contoh berikut memulai replikasi`channel_1`, dan mereplikasi perubahan hingga mencapai lokasi `120` dalam file log `mysql-bin-changelog.000777` biner.

```
call mysql.rds_start_replication_until_for_channel(
  'mysql-bin-changelog.000777',
  120,
  'channel_1'
  );
```

## mysql.rds\_start\_replication\_until\_gtid\_for\_channel
<a name="mysql_rds_start_replication_until_gtid_for_channel"></a>

Memulai replikasi pada saluran yang ditentukan dari RDS untuk instance MySQL DB dan menghentikan replikasi pada pengidentifikasi transaksi global (GTID) yang ditentukan.

### Sintaksis
<a name="mysql_rds_start_replication_until_gtid_for_channel-syntax"></a>

 

```
CALL mysql.rds_start_replication_until_gtid_for_channel({{gtid}},{{channel_name}});
```

### Parameter
<a name="mysql_rds_start_replication_until_gtid_for_channel-parameters"></a>

 {{gtid}}   
GTID setelah itu untuk menghentikan replikasi.

 {{channel\_name}}   
Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_start_replication_until_gtid_for_channel-usage-notes"></a>

Pengguna utama harus menjalankan prosedur `mysql.rds_start_replication_until_gtid_for_channel`. Prosedur memulai replikasi pada saluran yang ditentukan dan menerapkan semua perubahan hingga nilai GTID yang ditentukan. Kemudian, ia menghentikan replikasi pada saluran.

Saat parameter `gtid` menentukan transaksi yang telah dijalankan oleh replika, replikasi akan segera dihentikan.

Sebelum Anda menjalankan prosedur ini, Anda harus menonaktifkan replikasi multi-threaded dengan menetapkan nilai dari atau ke. `replica_parallel_workers` `slave_parallel_workers` `0`

### Contoh
<a name="mysql_rds_start_replication_until_gtid_for_channel-examples"></a>

Contoh berikut memulai replikasi`channel_1`, dan mereplikasi perubahan hingga mencapai GTID. `3E11FA47-71CA-11E1-9E33-C80AA9429562:23`

```
call mysql.rds_start_replication_until_gtid_for_channel('3E11FA47-71CA-11E1-9E33-C80AA9429562:23','channel_1');
```

## mysql.rds\_stop\_replication\_for\_channel
<a name="mysql_rds_stop_replication_for_channel"></a>

Menghentikan replikasi dari instance MySQL DB pada saluran yang ditentukan.

### Sintaksis
<a name="mysql_rds_stop_replication_for_channel-syntax"></a>

 

```
CALL mysql.rds_stop_replication_for_channel({{channel_name}});
```

### Parameter
<a name="mysql_rds_stop_replication_for_channel-parameters"></a>

 {{channel\_name}}   
Nama saluran replikasi pada replika multi-sumber. Setiap saluran replikasi menerima peristiwa log biner dari RDS sumber tunggal untuk instance MySQL DB yang berjalan pada host dan port tertentu.

### Catatan penggunaan
<a name="mysql_rds_stop_replication_for_channel-usage-notes"></a>

Pengguna utama harus menjalankan prosedur `mysql.rds_stop_replication_for_channel`.

### Contoh
<a name="mysql_rds_stop_replication_for_channel-examples"></a>

Contoh berikut menghentikan replikasi pada `channel_1` replika multi-sumber.

```
CALL mysql.rds_stop_replication_for_channel('channel_1');
```