

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

# Mengonversi instans basis data yang ada ke klaster aktif-aktif
<a name="mysql-active-active-clusters-converting"></a>

Versi mesin DB dari instans DB yang ingin Anda migrasikan ke cluster aktif-aktif harus menjadi salah satu versi berikut:
+ Semua MySQL 8.4 versi
+ MySQL 8.0.35 dan versi minor yang lebih tinggi

Jika Anda perlu memutakhirkan versi mesin, lihat [Upgrade RDS untuk mesin MySQL DB](USER_UpgradeDBInstance.MySQL.md).

Jika Anda menyiapkan klaster aktif-aktif dengan instans basis data di lebih dari satu VPC, pastikan untuk menyelesaikan prasyarat di [Mempersiapkan cluster aktif-aktif lintas VPC](mysql-active-active-clusters-cross-vpc-prerequisites.md).

Selesaikan langkah-langkah berikut untuk memigrasikan instans basis data yang ada ke klaster aktif-aktif untuk RDS for MySQL.

**Topics**
+ [Langkah 1: Atur parameter klaster aktif-aktif dalam satu atau beberapa grup parameter kustom](#mysql-active-active-clusters-converting-parameter-group)
+ [Langkah 2: Kaitkan instans basis data dengan grup parameter basis data yang telah mengatur parameter Group Replication yang diperlukan](#mysql-active-active-clusters-converting-associate-parameter-group)
+ [Langkah 3: Buat klaster aktif-aktif](#mysql-active-active-clusters-converting-associate-parameter-groups)
+ [Langkah 4: Buat instans basis data RDS for MySQL tambahan untuk klaster aktif-aktif](#mysql-active-active-clusters-converting-add-db-instances)
+ [Langkah 5: Inisialisasikan grup pada instans basis data yang Anda konversi](#mysql-active-active-clusters-converting-start-replication-first)
+ [Langkah 6: Mulai replikasi pada instans basis data lain di klaster aktif-aktif](#mysql-active-active-clusters-converting-start-replication-other)
+ [Langkah 7: (Disarankan) Periksa status klaster aktif-aktif](#mysql-active-active-clusters-converting-view)

## Langkah 1: Atur parameter klaster aktif-aktif dalam satu atau beberapa grup parameter kustom
<a name="mysql-active-active-clusters-converting-parameter-group"></a>

Instans basis data RDS for MySQL dalam klaster aktif-aktif harus dikaitkan dengan grup parameter kustom yang memiliki setelan yang benar untuk parameter-parameter yang diperlukan. Lihat informasi tentang parameter-parameter dan setelan yang diperlukan untuk masing-masing parameter di [Setelan parameter yang diperlukan untuk klaster aktif-aktif](mysql-active-active-clusters-parameters.md).

Anda dapat mengatur semua parameter ini di grup parameter baru atau di grup parameter yang ada. Namun, untuk menghindari memengaruhi tanpa sengaja instans basis data yang bukan bagian dari klaster aktif-aktif, kami sangat menyarankan supaya Anda membuat grup parameter kustom baru. Instans basis data dalam klaster aktif-aktif dapat dikaitkan dengan grup parameter basis data yang sama atau berbeda.

Anda dapat menggunakan Konsol Manajemen AWS atau AWS CLI untuk membuat grup parameter kustom baru. Untuk informasi selengkapnya, lihat [Membuat grup parameter DB di Amazon RDS ](USER_WorkingWithParamGroups.Creating.md). Contoh berikut menjalankan [create-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html) AWS CLI perintah untuk membuat grup parameter DB kustom bernama RDS `myactivepg` untuk MySQL 8.0:

Untuk Linux, macOS, atau Unix:

```
aws rds create-db-parameter-group \
  --db-parameter-group-name myactivepg \
  --db-parameter-group-family mysql8.0 \
  --description "Parameter group for active-active clusters"
```

Untuk Windows:

```
aws rds create-db-parameter-group ^
  --db-parameter-group-name myactivepg ^
  --db-parameter-group-family mysql8.0 ^
  --description "Parameter group for active-active clusters"
```

Anda juga dapat menggunakan Konsol Manajemen AWS atau AWS CLI untuk mengatur parameter dalam grup parameter kustom. Untuk informasi selengkapnya, lihat [](USER_WorkingWithParamGroups.Modifying.md).

Contoh berikut menjalankan [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) AWS CLI perintah untuk mengatur parameter untuk RDS untuk MySQL 8.0. Untuk menggunakan contoh ini dengan RDS untuk MySQL 8.4, ubah ke. `slave_preserve_commit_order` `replica_preserve_commit_order`

Untuk Linux, macOS, atau Unix:

```
aws rds modify-db-parameter-group \
  --db-parameter-group-name myactivepg \
  --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" \
               "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" \
               "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" \
               "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" \
               "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" \
               "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" \
               "ParameterName='group_replication_group_name',ParameterValue='11111111-2222-3333-4444-555555555555',ApplyMethod=pending-reboot"
```

Untuk Windows:

```
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myactivepg ^
  --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" ^
               "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" ^
               "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" ^
               "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" ^
               "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" ^
               "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" ^
               "ParameterName='group_replication_group_name',ParameterValue='11111111-2222-3333-4444-555555555555',ApplyMethod=pending-reboot"
```

## Langkah 2: Kaitkan instans basis data dengan grup parameter basis data yang telah mengatur parameter Group Replication yang diperlukan
<a name="mysql-active-active-clusters-converting-associate-parameter-group"></a>

Kaitkan instans basis data dengan grup parameter yang Anda buat atau ubah dalam langkah sebelumnya. Lihat petunjuk di [](USER_WorkingWithParamGroups.Associating.md).

Boot ulang instans basis data agar setelan parameter baru berlaku. Lihat petunjuk di [Mem-boot ulang instans DB DB](USER_RebootInstance.md).

## Langkah 3: Buat klaster aktif-aktif
<a name="mysql-active-active-clusters-converting-associate-parameter-groups"></a>

Dalam grup parameter basis data yang terkait dengan instans basis data, atur parameter `group_replication_group_seeds` ke titik akhir instans basis data yang Anda konversi.

Anda dapat menggunakan Konsol Manajemen AWS atau AWS CLI untuk mengatur parameter. Anda tidak perlu mem-boot ulang instans basis data setelah mengatur parameter ini. Lihat informasi yang lebih lengkap tentang pengaturan parameter di [](USER_WorkingWithParamGroups.Modifying.md).

Contoh berikut menjalankan [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) AWS CLI perintah untuk mengatur parameter:

Untuk Linux, macOS, atau Unix:

```
aws rds modify-db-parameter-group \
  --db-parameter-group-name myactivepg \
  --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306',ApplyMethod=immediate"
```

Untuk Windows:

```
aws rds modify-db-parameter-group ^
  --db-parameter-group-name myactivepg ^
  --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306',ApplyMethod=immediate"
```

## Langkah 4: Buat instans basis data RDS for MySQL tambahan untuk klaster aktif-aktif
<a name="mysql-active-active-clusters-converting-add-db-instances"></a>

Untuk membuat instance DB tambahan untuk cluster aktif-aktif, lakukan point-in-time pemulihan pada instans DB yang Anda konversi. Lihat petunjuk di [Menambahkan instans DB ke cluster aktif-aktif menggunakan pemulihan point-in-time](mysql-active-active-clusters-adding.md#mysql-active-active-clusters-adding-pitr).

Klaster aktif-aktif dapat memiliki hingga sembilan instans basis data. Lakukan point-in-time pemulihan pada instans DB hingga Anda memiliki jumlah instans DB yang Anda inginkan untuk cluster. Saat Anda melakukan point-in-recovery, pastikan Anda mengaitkan instans DB yang Anda tambahkan dengan grup parameter DB yang telah `rds.group_replication_enabled` disetel`1`. Jika tidak, Group Replication tidak akan dimulai pada instans basis data yang baru ditambahkan.

## Langkah 5: Inisialisasikan grup pada instans basis data yang Anda konversi
<a name="mysql-active-active-clusters-converting-start-replication-first"></a>

Inisialisasikan grup dan mulai replikasi:

1. Hubungi instans basis data yang Anda konversi dalam klien SQL. Lihat informasi yang lebih lengkap tentang cara menghubungi instans basis data RDS for MySQL di [Menghubungkan ke instans MySQL DB Anda](USER_ConnectToInstance.md).

1. Di klien SQL, jalankan prosedur tersimpan berikut dan ganti *group\$1replication\$1user\$1password* dengan kata sandi untuk `rdsgrprepladmin` pengguna. Pengguna `rdsgrprepladmin` dicadangkan untuk koneksi Group Replication dalam klaster aktif-aktif. Kata sandi untuk pengguna ini harus sama pada semua instans basis data di klaster aktif-aktif.

   ```
   call mysql.rds_set_configuration('binlog retention hours', 168); -- 7 days binlog
   call mysql.rds_group_replication_create_user('group_replication_user_password');
   call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password');
   call mysql.rds_group_replication_start(1);
   ```

   Contoh ini menetapkan nilai `binlog retention hours` ke `168`, yang berarti bahwa file log biner dipertahankan selama tujuh hari pada instans basis data. Anda dapat menyesuaikan nilai ini untuk memenuhi kebutuhan Anda.

   Contoh-contoh ini menentukan `1` dalam prosedur tersimpan `mysql.rds_group_replication_start` untuk menginisialisasikan grup baru dengan instans basis data saat ini.

   Lihat informasi yang lebih lengkap tentang prosedur tersimpan yang dipanggil dalam contoh ini di [Mengelola klaster aktif-aktif](mysql-stored-proc-active-active-clusters.md).

## Langkah 6: Mulai replikasi pada instans basis data lain di klaster aktif-aktif
<a name="mysql-active-active-clusters-converting-start-replication-other"></a>

Untuk setiap instans basis data di klaster aktif-aktif, gunakan klien SQL untuk menghubungi instans itu, dan jalankan prosedur tersimpan berikut. Ganti *group\$1replication\$1user\$1password* dengan kata sandi untuk `rdsgrprepladmin` pengguna.

```
call mysql.rds_set_configuration('binlog retention hours', 168); -- 7 days binlog
call mysql.rds_group_replication_create_user('group_replication_user_password');
call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password');
call mysql.rds_group_replication_start(0);
```

Contoh ini menetapkan nilai `binlog retention hours` ke `168`, yang berarti bahwa file log biner dipertahankan selama tujuh hari pada setiap instans basis data. Anda dapat menyesuaikan nilai ini untuk memenuhi kebutuhan Anda.

Contoh ini menentukan `0` dalam prosedur tersimpan `mysql.rds_group_replication_start` untuk menggabungkan instans basis data saat ini dengan grup yang ada.

**Tip**  
Pastikan untuk menjalankan prosedur tersimpan ini pada semua instans basis data yang lain di klaster aktif-aktif.

## Langkah 7: (Disarankan) Periksa status klaster aktif-aktif
<a name="mysql-active-active-clusters-converting-view"></a>

Untuk memastikan bahwa setiap anggota klaster dikonfigurasikan dengan benar, periksa status klaster dengan menghubungi instans basis data di klaster aktif-aktif, dan menjalankan perintah SQL berikut:

```
SELECT * FROM performance_schema.replication_group_members;
```

Output Anda semestinya menampilkan `ONLINE` untuk `MEMBER_STATE` setiap instans basis data, seperti pada output sampel berikut:

```
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 9854d4a2-5d7f-11ee-b8ec-0ec88c43c251 | ip-10-15-3-137 |        3306 | ONLINE       | PRIMARY     | 8.0.35         | MySQL                      |
| group_replication_applier | 9e2e9c28-5d7f-11ee-8039-0e5d58f05fef | ip-10-15-3-225 |        3306 | ONLINE       | PRIMARY     | 8.0.35         | MySQL                      |
| group_replication_applier | a6ba332d-5d7f-11ee-a025-0a5c6971197d | ip-10-15-1-83  |        3306 | ONLINE       | PRIMARY     | 8.0.35         | MySQL                      |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.00 sec)
```

Lihat informasi tentang nilai `MEMBER_STATE` yang mungkin di [Group Replication Server States](https://dev.mysql.com/doc/refman/8.0/en/group-replication-server-states.html) dalam dokumentasi MySQL.