Menyiapkan klaster aktif-aktif dengan instans basis data baru - Layanan Basis Data Relasional Amazon

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

Menyiapkan klaster aktif-aktif dengan instans basis data baru

Selesaikan langkah-langkah berikut untuk menyiapkan cluster aktif-aktif menggunakan Amazon RDS baru untuk instans DB Amazon RDS for MySQL.

Jika Anda menyiapkan klaster aktif-aktif dengan instans basis data di lebih dari satu VPC, pastikan untuk menyelesaikan prasyarat di Mempersiapkan klaster VPC aktif silang.

Langkah 1: Atur parameter klaster aktif-aktif dalam satu atau beberapa grup parameter kustom

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.

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 AWS Management Console atau AWS CLI untuk membuat grup parameter kustom baru. Untuk informasi selengkapnya, lihat Membuat grup parameter DB di Amazon RDS . Contoh berikut menjalankan create-db-parameter-group 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 AWS Management Console atau AWS CLI untuk mengatur parameter dalam kelompok parameter kustom. Untuk informasi selengkapnya, lihat .

Contoh berikut menjalankan modify-db-parameter-group 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: Buat instans basis data RDS for MySQL baru untuk klaster aktif-aktif

Cluster aktif-aktif didukung untuk versi RDS berikut untuk instans MySQL DB:

  • Semua versi MySQL 8.4

  • MySQL versi 8.0.35 dan versi minor yang lebih tinggi

Anda dapat membuat hingga sembilan instans basis data baru untuk klaster.

Anda dapat menggunakan AWS Management Console atau AWS CLI untuk membuat instance DB baru. Lihat informasi yang lebih lengkap tentang cara membuat instans basis data di Membuat instans DB Amazon RDS. Saat Anda membuat instans basis data, kaitkan dengan grup parameter basis data yang Anda buat atau ubah dalam langkah sebelumnya.

Langkah 3: Tentukan instance DB di cluster aktif-aktif

Dalam grup parameter basis data yang terkait dengan setiap instans basis data, atur parameter group_replication_group_seeds ke titik akhir instans basis data yang ingin Anda sertakan dalam klaster.

Anda dapat menggunakan AWS Management Console 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 .

Contoh berikut menjalankan modify-db-parameter-group 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,myactivedb2.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb3.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,myactivedb2.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb3.123456789012.us-east-1.rds.amazonaws.com:3306',ApplyMethod=immediate"
Tip

Pastikan untuk mengatur parameter group_replication_group_seeds di setiap grup parameter basis data yang terkait dengan instans basis data di klaster aktif-aktif.

Langkah 4: Inisialisasi grup pada instance DB dan mulai replikasi

Anda dapat memilih basis data baru untuk menginisialisasikan grup dan memulai replikasi. Untuk melakukannya, selesaikan langkah-langkah berikut:

  1. Pilih instans basis data di klaster aktif-aktif, dan hubungi instans basis data itu di klien SQL. Lihat informasi yang lebih lengkap tentang cara menghubungi instans basis data RDS for MySQL di Menghubungkan ke instans MySQL DB Anda.

  2. Di klien SQL, jalankan prosedur tersimpan berikut dan ganti group_replication_user_password 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.

Langkah 5: Mulai replikasi pada instans DB lainnya di cluster aktif-aktif

Untuk setiap instans basis data di klaster aktif-aktif, gunakan klien SQL untuk menghubungi instans itu, dan jalankan prosedur tersimpan berikut. Ganti group_replication_user_password 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 6: (Disarankan) Periksa status cluster aktif-aktif

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 dalam dokumentasi MySQL.

Langkah 7: (Opsional) Impor data ke instans DB di cluster aktif-aktif

Anda dapat mengimpor data dari basis data MySQL ke instans basis data di klaster aktif-aktif. Setelah data diimpor, Group Replication mereplikasi data ke instans basis data lain di klaster.

Lihat informasi tentang cara mengimpor data di Mengimpor data ke database Amazon RDS for MySQL dengan downtime yang dikurangi.