| Tables_in_clustertest | +---+ | mycluster | +---+
Jika node db1 bisa menampilkan table yang baru dibuat hal tersebut mengindikasikan Cluster model Master-Master telah berhasil di konfigurasi. Testing berikutnya yaitu menguji penambahan record data.
[root@mariadb-cluster-node1 ~]# mysql -u root -predhat -e 'INSERT INTO clustertest.mycluster (name, ipaddress) VALUES ("db1", "10.11.12.1");' [root@mariadb-cluster-node2 ~]# mysql -u root -predhat -e 'USE clustertest; SELECT * FROM mycluster'
+----+---+---+ | id | name | ipaddress | +----+---+---+ | 2 | db1 | 10.11.12.1 | +----+---+---+
Limitasi pada MariaDB Cluster
Berikut adalah limitasi pada MariaDB cluster yang harus kita ketahui
1. Saat ini proses replikasi cluster hanya bekerja untuk model Storage Engine InnoDB. Semua model penulisan dari tipe lainya, termasuk model system (mysql.*) table tidak akan di replikasi
2. Penguncian table / database eksplisit yang didukung termasuk LOCK TABLES, FLUSH TABLES {explicit table list} WITH READ LOCK, (GET_LOCK(), RELEASE_LOCK(),…). Menggunakan transaksi yang benar dapat mengatasi keterbatasan ini. Global locking operators seperti FLUSH TABLES WITH READ LOCK juga disupport.
3. Semua table minimal harus mempunyai 1 primary key (juga mensupport multi-column primary keys). DELETE operations tidak disupport pada tables yang tidak mempunyai primary key.
4. Query log tidak bisa langsung ke dalam table. Jika server mengaktifkan query logging, log file harus di teruskan ke sebuah file: log_output=nama-file
5. Tidak mendukung XA transactions.
writeset is processed as a single memory-resident buffer and as a result, extremely large transactions (e.g. LOAD DATA) may adversely affect node performance. To avoid that, the wsrep_max_ws_rows and wsrep_max_ws_size system variables limit transaction rows to 128K and the transaction size to 1Gb by default. If necessary, users may want to increase those limits. Future versions will add support for transaction fragmentation.
Pemeriksaan Integritas Cluster
Di Galera Cluster, anda dapat memantau status write-set replikasi seluruh cluster dengan menggunakan standar query wsrep mmenggunakan mysql klien. Karena semua variabel statusnya yang berhubungan dengan write-set replikasi diawali oleh wsrep, oleh sebab itu Anda dapat menampilkan query untuk semuanya.
Untuk menampilkan status dari semua wsrep dapat menjalankan perintah berikut
mysql -uroot -predhat -e"show status like 'wsrep%'"
+---+---+ | Variable_name | Value | +---+---+ | wsrep_local_state_uuid | dc916334-de60-11e4-9afd-37c163596afd | | wsrep_protocol_version | 7 | | wsrep_last_committed | 3 | | wsrep_replicated | 2 | >>>>>>>>>>>>>>>>>>>>>>>> DIPERSINGKAT <<<<<<<<<<<<<<<<<<<<<<<<<<<< | wsrep_provider_vendor | Codership Oy <[email protected]> |
| wsrep_provider_version | 25.3.9(r3385) |
| wsrep_ready | ON |
| wsrep_thread_count | 2 |
+---+---+
Untuk memantau perubahan dalam keanggotaan cluster dan status node, Anda dapat menggunakan perintah Notification.
Pada saat salah satu anggota cluster menerima dan mereplikasi write-sets dari node lainya atau sebaliknya, berarti cluster anda pada status yang baik. Untuk mengecek Integritas cluster, untuk setiap node jalankan langkah-langkah berikut:
Mengecek suatu node adalah bagian dari cluster:
[root@mariadb-cluster-node1 ~]# mysql -uroot -predhat -e"SHOW GLOBAL STATUS LIKE 'wsrep_cluster_state_uuid';" +---+---+ | Variable_name | Value | +---+---+ | wsrep_cluster_state_uuid | dc916334-de60-11e4-9afd-37c163596afd | +---+---+
[root@mariadb-cluster-node2 ~]# mysql -uroot -predhat -e"SHOW GLOBAL STATUS LIKE 'wsrep_cluster_state_uuid';" +---+---+ | Variable_name | Value | +---+---+ | wsrep_cluster_state_uuid | dc916334-de60-11e4-9afd-37c163596afd | +---+---+
Tiap node yang tergabung kedalam cluster akan memberikan Value yang sama. Jika anda mendapatkan salah satu node mengeluarkan Value yang berbeda, hal tersebut mengindikasikan bahwa node tersebut tidak ter-join ke cluster.
Memeriksa node milik komponen cluster yang sama:
[root@mariadb-cluster-node1 ~]# mysql -uroot -predhat -e"SHOW GLOBAL STATUS LIKE 'wsrep_cluster_conf_id'" +---+---+ | Variable_name | Value | +---+---+ | wsrep_cluster_conf_id | 4 | +---+---+
[root@mariadb-cluster-node2 ~]# mysql -uroot -predhat -e"SHOW GLOBAL STATUS LIKE 'wsrep_cluster_conf_id'" +---+---+ | Variable_name | Value | +---+---+ | wsrep_cluster_conf_id | 4 | +---+---+
Tiap node yang tergabung kedalam cluster akan memberikan Value yang sama. Jika anda mendapatkan salah satu node mengeluarkan Value yang berbeda, hal tersebut mengidikasikan cluster tersebut dalam kondisi terbagi-bagi (partioned). Biasanya permasalahnya ada pada koneksi antar Node cluster, jika koneksi sudah diperbaiki, nilainya akan kembali sama secara otomatis.
Pada node pertama, check jumlah node yang tergabung kedalam cluster dengan menggunaka perintah berikut:
LIKE 'wsrep_cluster_size';" +---+---+ | Variable_name | Value | +---+---+ | wsrep_cluster_size | 2 | +---+---+
[root@mariadb-cluster-node2 ~]# mysql -uroot -predhat -e"SHOW GLOBAL STATUS LIKE 'wsrep_cluster_size';" +---+---+ | Variable_name | Value | +---+---+ | wsrep_cluster_size | 2 | +---+---+
Jika Value yang dihasilkan sama, mengindikasikan semua node sudah dengan baik tergabung kedalam cluster.
Periksa primary status dari komponen cluster
[root@mariadb-cluster-node1 ~]# mysql -uroot -predhat -e"SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status';" +---+---+ | Variable_name | Value | +---+---+ | wsrep_cluster_status | Primary | +---+---+
[root@mariadb-cluster-node2 ~]# mysql -uroot -predhat -e"SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status';" +---+---+ | Variable_name | Value | +---+---+ | wsrep_cluster_status | Primary | +---+---+
Memeriska Perfoma Anggota Cluster
Pengaturan kontrol flow akan menghasilkan jeda yang mengatur kapan wsrep_local_recv_queue melebihi ambang batas. Pemantauan variabel-variabel berikut akan memberikan pemahaman tentang panjang wsrep_local_recv_queue selama periode antara pemeriksaan Status:
wsrep_local_recv_queue_avg wsrep_local_recv_queue_max wsrep_local_recv_queue_min
Menemukan Penuruman Perfoma Pada Slave:
[root@mariadb-cluster-node2 ~]# mysql -uroot -predhat -e"SHOW STATUS LIKE 'wsrep_flow_control_paused';"
+---+---+ | Variable_name | Value | +---+---+ | wsrep_flow_control_paused | 0.000000 | +---+---+
Jika jarak dari Value antara 0.0 dan 1.0, Hal ini menunjukkan sebagian kecil dari waktu replikasi itu terhenti semenjak perintah STATUS ini ditampilkan. Jika Valuenya adalah 1.0 mengidikasikan proses replikasi benar-benar berhenti. Kita harus menjaga sebisa mungkin nilai dari Value agar tetap mendekati 0.0.
Cara satu-satunya untuk mengingkatkan value ini adalah dengan meningkatkan
wsrep_slave_threads parameter dan menlepas keangotaan node tersebut untuk
diperbaiki.
Menentukan jarak rata-rata antara nilai terendah dan tertinggi dari Value seqno
[root@mariadb-cluster-node2 ~]# mysql -uroot -predhat -e"SHOW STATUS LIKE 'wsrep_cert_deps_distance';" +---+---+ | Variable_name | Value | +---+---+ | wsrep_cert_deps_distance | 1.000000 | +---+---+
Hal Ini memberikan nilai rata-rata berapa banyak transaksi yang dapat diterapkan secara bersamaan dalam satu waktu.
Memeriksa Perfoma Jaringan Yang Lambat
Jika Anda memiliki jaringan yang lambat atau jaringan sedang terdapat gangguan, periksa nilai variabel di bawah ini:
wsrep_local_send_queue_avg wsrep_local_send_queue_max wsrep_local_send_queue_min
Untuk menentukan apakah Anda memiliki permasalahan jaringan, jalankan query berikut:
[root@mariadb-cluster-node2 ~]# mysql -uroot -predhat -e"SHOW STATUS LIKE 'wsrep_local_send_queue_avg';"
+---+---+ | Variable_name | Value | +---+---+ | wsrep_local_send_queue_avg | 0.000000 |
+---+---+
Nilai tinggi dapat menunjukkan gangguan pada link jaringan. Jika hal ini terjadi, penyebabnya bisa berada di setiap lapisan, dari komponen fisik untuk konfigurasi sistem operasi.