Mengonversi instans basis data yang ada ke klaster aktif-aktif - 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.

Mengonversi instans basis data yang ada ke klaster aktif-aktif

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.

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.

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

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 Konsol Manajemen AWS 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 Konsol Manajemen AWS atau AWS CLI untuk mengatur parameter dalam grup 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: Kaitkan instans basis data dengan grup parameter basis data yang telah mengatur parameter Group Replication yang diperlukan

Kaitkan instans basis data dengan grup parameter yang Anda buat atau ubah dalam langkah sebelumnya. Lihat petunjuk di .

Boot ulang instans basis data agar setelan parameter baru berlaku. Lihat petunjuk di Mem-boot ulang instans DB DB.

Langkah 3: Buat klaster aktif-aktif

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 .

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',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

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.

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

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.

  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 6: Mulai replikasi pada instans basis data lain di klaster 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 7: (Disarankan) Periksa status klaster 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.