MySQL Group Replication (MGR) adalah mode replikasi terdistribusi yang disediakan oleh MySQL berdasarkan mekanisme binary logging dan protokol Paxos. Mode ini didukung untuk Edisi Kluster pada ApsaraDB RDS for MySQL. Instance ApsaraDB RDS for MySQL yang menjalankan Edisi Kluster disebut kluster RDS. Topik ini menjelaskan cara mengatur mode replikasi kluster RDS ke MGR.
Informasi latar belakang
Kluster RDS yang menggunakan mode MGR dapat menerapkan pengelolaan mandiri berdasarkan protokol Paxos. Hal ini membantu memastikan keandalan data tinggi dan konsistensi data kuat. Dibandingkan dengan mode replikasi utama/sekunder, mode MGR menawarkan keuntungan berikut:
Konsistensi data kuat: Kluster RDS dalam mode MGR dapat menerapkan pengelolaan mandiri. Jika node utama gagal, sistem secara otomatis menghapus node tersebut dan melakukan switchover utama/sekunder. Setelah proses selesai, data antara node utama dan sekunder tetap konsisten.
Keandalan data tinggi: Dalam mode MGR, commit transaksi pada node utama memerlukan pengiriman data transaksi ke mayoritas node sekunder. Ini mencegah kehilangan data.
Konsistensi transaksi global kuat: Mode MGR menyediakan konsistensi global untuk operasi baca dan tulis di antara node. Anda dapat menggunakan parameter group_replication_consistency untuk menentukan tingkat konsistensi sesuai kebutuhan bisnis.
CatatanKonsistensi baca global: Atur parameter group_replication_consistency ke BEFORE untuk sesi pada node sekunder. Query hanya akan dijalankan setelah transaksi diterapkan pada node utama.
Konsistensi tulis global: Atur parameter group_replication_consistency ke AFTER untuk sesi pada node utama. Transaksi tulis akan dicommit setelah diterapkan ke semua node dalam kluster RDS.
Mayoritas: Menunjukkan lebih dari setengah jumlah node dalam kluster RDS.
Skenario
Mode MGR cocok untuk skenario bisnis yang memerlukan konsistensi data kuat dan keandalan data tinggi, seperti keuangan, e-commerce, dan sistem transaksi inti.
Prasyarat
Instance RDS Anda harus memenuhi persyaratan berikut:
Edisi RDS: Instance RDS menjalankan Edisi Kluster RDS.
CatatanUntuk informasi lebih lanjut tentang peningkatan instance RDS dari Edisi Ketersediaan Tinggi RDS ke Edisi Kluster RDS, lihat Tingkatkan edisi RDS dari Edisi Ketersediaan Tinggi RDS ke Edisi Kluster RDS.
Versi mesin: Versi mesin utama kluster RDS adalah MySQL 8.0, dan versi mesin minor adalah 20221231 atau lebih baru. Untuk informasi lebih lanjut tentang pembaruan versi mesin minor, lihat Perbarui versi mesin minor.
Mesin penyimpanan: Mesin penyimpanan adalah InnoDB.
Kapasitas memori: Kapasitas memori kluster RDS minimal 8 GB. Untuk informasi lebih lanjut tentang perubahan spesifikasi, lihat Ubah spesifikasi instance.
Jumlah node: Jumlah node dalam kluster RDS adalah angka ganjil minimal 3.
Spesifikasi node: Spesifikasi setiap node harus sama.
Versi proksi database: Jika fitur proksi database diaktifkan, versi proksi database adalah Maxscale_MySQL_2.2.12_20230302 atau lebih baru. Untuk informasi lebih lanjut tentang pembaruan versi proksi database, lihat Perbarui versi proksi database.
Tipe produk: Tipe produk kluster RDS adalah standar.
Anda dapat masuk ke konsol ApsaraDB RDS dan pergi ke halaman Basic Information kluster RDS untuk melihat informasi seperti edisi RDS, versi mesin utama, dan tipe instance.
Batasan
Mode MGR tidak dapat digunakan untuk kluster RDS yang berisi tabel X-Engine.
Anda dapat menjalankan pernyataan SQL berikut untuk memeriksa keberadaan tabel X-Engine. Jika nilai 0 dikembalikan, tidak ada tabel X-Engine dalam kluster RDS.
SELECT COUNT(1) FROM information_schema.TABLES WHERE ENGINE = 'xengine' AND table_schema NOT IN( 'information_schema', 'performance_schema', 'mysql', 'test', 'sys', '__recycle_bin__' );Mode MGR tidak dapat digunakan untuk kluster RDS yang berisi tabel tanpa kunci utama.
Anda dapat menjalankan pernyataan SQL berikut untuk memeriksa keberadaan tabel tanpa kunci utama. Hasil query 0 menunjukkan bahwa semua tabel memiliki kunci utama.
SELECT COUNT(1) AS count FROM information_schema.TABLES t1 LEFT OUTER JOIN information_schema.columns t2 ON t1.table_schema = t2.TABLE_SCHEMA AND t1.table_name = t2.TABLE_NAME AND t2.COLUMN_KEY = 'PRI' WHERE t2.table_name IS NULL AND t1.table_type = 'BASE TABLE' AND t1.TABLE_SCHEMA NOT IN( 'information_schema', 'performance_schema', 'mysql', 'sys' );Untuk informasi lebih lanjut tentang batasan mode MGR, lihat Persyaratan dan Batasan di situs resmi.
Dampak
Saat mengubah mode replikasi data menjadi MGR, pergantian instance akan terjadi. Kami sarankan Anda melakukan perubahan selama jam-jam sepi dan memastikan aplikasi dikonfigurasi untuk menyambung ulang secara otomatis. Untuk informasi lebih lanjut tentang dampak pergantian instance, lihat Dampak pergantian instance.
Implementasi
MGR adalah mode replikasi terdistribusi berbasis protokol Paxos. Untuk informasi lebih lanjut, lihat Pengenalan mode MGR.
Catatan penggunaan
Mode MGR memberikan performa lebih rendah dibandingkan mode replikasi asinkron dan mengonsumsi lebih banyak sumber daya memori. Sebelum menggunakan mode MGR, kami sarankan Anda melakukan uji coba pada beban kerja sensitif terhadap performa atau sumber daya.
Untuk memastikan stabilitas kluster RDS dalam mode MGR, pengaturan parameter berikut digunakan:
disabled_storage_engines=MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY,XENGINE gtid_mode=ON enforce_gtid_consistency=ON log_slave_updates=ON binlog_format=ROW slave_preserve_commit_order=ON rpl_semi_sync_master_enabled=OFF rpl_semi_sync_slave_enabled=OFF master_info_repository=TABLE relay_log_info_repository=TABLE binlog_transaction_dependency_tracking=WRITESET transaction_write_set_extraction=XXHASH64 slave_parallel_type=LOGICAL_CLOCK replication_communication_stack=MYSQL group_replication_single_primary_mode=ON group_replication_paxos_single_leader=ON group_replication_consistency=BEFORE_ON_PRIMARY_FAILOVER
Aturan penagihan
Penggunaan mode MGR tidak dikenakan biaya tambahan.
Prosedur
Aktifkan mode MGR untuk kluster RDS baru
Saat membuat kluster RDS, atur parameter Parameter Template ke MySQL_InnoDB_8.0_RDS Cluster Edition_MGR Parameter Template. Setelah pembuatan kluster RDS selesai, mode MGR akan diaktifkan.
Ubah mode replikasi kluster RDS yang ada menjadi MGR
Di bagian Manajemen Topologi Instance halaman Basic Information kluster RDS yang ada, klik Change Data Replication Mode. Di kotak dialog yang muncul, pilih MGR untuk parameter Mode Replikasi Data dan klik confirm.
Anda juga dapat mengubah mode MGR ke mode replikasi asinkron atau semi-sinkron.
Pertanyaan Umum
Bisakah saya mengubah mode replikasi data kluster RDS saya dari mode MGR ke mode replikasi asinkron atau semi-sinkron?
Ya, Anda dapat mengubah mode replikasi data kluster RDS Anda dari mode MGR ke mode replikasi asinkron atau semi-sinkron. Anda dapat beralih antara mode replikasi asinkron, semi-sinkron, dan MGR. Untuk mengubah mode replikasi kluster RDS Anda, pergi ke halaman Basic Information kluster RDS Anda dan klik Change Data Replication Mode di bagian Manajemen Topologi Instance. Pilih mode replikasi yang diperlukan di kotak dialog yang muncul.
Bisakah node sekunder di kluster RDS saya memproses permintaan baca jika mode MGR digunakan?
Ya, node sekunder di kluster RDS Anda dapat memproses permintaan baca saat mode MGR digunakan. Mode MGR menggunakan protokol Paxos untuk mereplikasi data antar node. Jika node sekunder kelebihan beban, performa tulis node utama terpengaruh. Kami sarankan Anda mengaktifkan fitur proksi database untuk menerapkan pemisahan baca/tulis. Fitur ini memungkinkan Anda mengonfigurasi bobot baca dan ambang batas latensi replikasi, mencegah node sekunder kelebihan beban.
Apakah kluster RDS yang menggunakan mode MGR mendukung mode multi-utama?
Tidak, kluster RDS yang menggunakan mode MGR tidak mendukung mode multi-utama. Mode MGR hanya didukung untuk kluster RDS dengan satu node utama. Stabilitas kluster RDS dalam mode multi-utama buruk, dan getaran atau kegagalan pada node memengaruhi ketersediaan kluster RDS.
Kapasitas memori kluster RDS saya yang menggunakan mode MGR harus minimal 8 GB. Mengapa?
Setelah mode MGR diaktifkan, cache sekitar 1 GB dipertahankan di lapisan XCom untuk menyimpan pesan XCom. Modul autentikasi transaksi mode MGR juga mempertahankan array informasi autentikasi, yang mengonsumsi sejumlah memori tertentu. Thread latar tambahan diaktifkan saat mode MGR digunakan, yang mengonsumsi memori tambahan. Jika kapasitas memori kurang dari 8 GB, kesalahan out of memory (OOM) dapat terjadi saat beban memori tinggi. Oleh karena itu, kami sarankan Anda memilih tipe instance dengan kapasitas memori besar untuk kluster RDS dengan mode MGR diaktifkan.
Haruskah saya memilih tipe instance umum atau khusus untuk kluster RDS saya jika mode MGR diaktifkan?
Memori tambahan digunakan saat mode MGR diaktifkan untuk kluster RDS Anda. Jika kapasitas memori berkisar antara 8 GB hingga 16 GB, kami sarankan Anda memilih tipe instance umum untuk mencegah memori dikonsumsi oleh sistem manajemen dan meningkatkan memori yang tersedia untuk kluster RDS.
Jika Anda membeli kapasitas memori besar, seperti 32 GB, untuk kluster RDS Anda, kami sarankan Anda memilih tipe instance khusus untuk merasakan isolasi yang lebih baik dan performa puncak.
Operasi terkait
Operasi | Deskripsi |
Membuat instance. Saat Anda memanggil operasi CreateDBInstance untuk membuat instance yang menjalankan Edisi Kluster RDS dan menggunakan mode MGR, Anda harus mengatur parameter DBParamGroupId ke rpg-sys-01040407010400 dan mengonfigurasi parameter lainnya berdasarkan kebutuhan bisnis Anda. | |
Mengubah mode replikasi data instance. Saat Anda memanggil operasi ModifyDBInstanceHAConfig untuk mengubah mode replikasi data instance menjadi MGR, Anda harus mengatur parameter SyncMode ke Mgr dan mengonfigurasi parameter lainnya berdasarkan kebutuhan bisnis Anda. |