Artikel ini bertujuan untuk memperkenalkan cara menginstal dan mengkonfigurasi cluster MySQL berdasarkan 2 server. Dan sadari bahwa MySQL masih bisa terus berjalan ketika ada server yang bermasalah atau sedang down.
Melihat! Walaupun ini merupakan cluster MySQL yang berbasis pada 2 server, namun harus ada tambahan server ketiga sebagai node pengelolaan, namun server ini dapat dimatikan setelah startup cluster selesai. Pada saat yang sama, perlu dicatat bahwa tidak disarankan untuk mematikan server yang berfungsi sebagai node manajemen setelah startup cluster selesai. Meskipun secara teoritis dimungkinkan untuk membangun cluster MySQL berdasarkan hanya dua server, dengan arsitektur seperti itu, setelah satu server mati, cluster tidak dapat terus bekerja secara normal, sehingga kehilangan arti dari cluster tersebut. Untuk alasan ini, server ketiga diperlukan untuk dijalankan sebagai node manajemen. Selain itu, banyak teman mungkin tidak memiliki lingkungan sebenarnya dari tiga server, sehingga mereka mungkin mempertimbangkan untuk melakukan eksperimen di VMWare atau mesin virtual lainnya.
Berikut ini asumsi situasi ketiga layanan tersebut:
Server1: mysql1.vmtest.net 192.168.0.1
Server2: mysql2.vmtest.net 192.168.0.2
Server3: mysql3.vmtest.net 192.168.0.3
Servers1 dan Server2 berfungsi sebagai server yang sebenarnya mengkonfigurasi cluster MySQL. Persyaratan untuk Server3 sebagai node manajemen lebih rendah. Hanya diperlukan sedikit penyesuaian pada sistem Server3 dan tidak perlu menginstal MySQL. Server3 dapat menggunakan komputer dengan konfigurasi lebih rendah dan dapat menjalankan layanan lain di Server3 secara bersamaan. 2. Instal MySQL di Server1 dan Server2
=================================Dari [url]/u/info_img/2009-05/30/url] Unduh mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz. Catatan: Ini harus versi maksimal MySQL. Langkah-langkah berikut perlu dilakukan satu kali di Server1 dan Server2.
# mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/
# cd /usr/lokal/
# tambahkan grup mysql
# tambahkan pengguna -g mysql mysql
# tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# rm -f mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# mv mysql-max-4.1.9-pc-linux-gnu-i686 mysql
#cd mysql
# skrip/mysql_install_db --pengguna=mysql
# chown -R akar .
# chown -R data mysql
# chgrp -R mysql .
# cp file dukungan/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld Jangan mulai MySQL saat ini!
Instal dan konfigurasikan server node manajemen (Server3)
======= Sebagai server node manajemen, Server3 memerlukan dua file: ndb_mgm dan ndb_mgmd : Unduh mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz dari [url]/u/info_img/2009-05/30/url]
# mkdir /usr/src/mysql-mgm
# cd /usr/src/mysql-mgm
# tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# cd mysql-max-4.1.9-pc-linux-gnu-i686
# mv bin/ndb_mgm .
# mv bin/ndb_mgmd .
# chmod +x ndb_mg*
# mv ndb_mg* /usr/bin/
#CD
# rm -rf /usr/src/mysql-mgm Sekarang mulailah membuat file konfigurasi untuk server node manajemen ini:
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# vi config.ini Tambahkan konten berikut ke config.ini:
[NDBD DEFAULT]
NoOfReplika=2
[DEFAULT MYSQLD]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
#Server Manajemen
[NDB_MGMD]
HostName=192.168.0.3 #Alamat IP server simpul manajemen Server3
# Mesin Penyimpanan
[NDBD]
HostName=192.168.0.1 #Alamat IP cluster MySQL Server1
DataDir= /var/lib/mysql-cluster
[NDBD]
HostName=192.168.0.2 #Alamat IP cluster MySQL Server2
DataDir=/var/lib/mysql-cluster
# Dua [MYSQLD] berikut dapat mengisi nama host Server1 dan Server2.
# Namun, untuk mempercepat penggantian server di cluster, disarankan untuk membiarkannya kosong, jika tidak, konfigurasi ini harus diubah setelah penggantian server.
[MYSQLD]
[MYSQLD] Setelah menyimpan dan keluar, mulai server node manajemen Server3:
# Setelah memulai node manajemen dengan ndb_mgmd, Anda harus mencatat bahwa ini hanya layanan node manajemen, bukan terminal manajemen. Oleh karena itu Anda tidak akan melihat informasi keluaran apa pun tentang startup. 4. Konfigurasikan server cluster dan mulai MySQL
============== Perubahan berikut perlu dilakukan di Server1 dan Server2:
# vi /etc/my.cnf
[mysqld]
ndbcluster.dll
ndb-connectstring=192.168.0.3 #Alamat IP Server3
[kluster_mysql]
ndb-connectstring=192.168.0.3 #Setelah menyimpan alamat IP Server3 dan keluar, buat direktori data dan mulai MySQL:
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# /usr/local/mysql/bin/ndbd --initial
# /etc/rc.d/init.d/mysqld start Anda dapat menambahkan /usr/local/mysql/bin/ndbd ke /etc/rc.local untuk memulai. Catatan: Anda hanya perlu menggunakan parameter --initial saat memulai ndbd untuk pertama kali atau setelah melakukan perubahan pada config.ini Server3! 5. Periksa status kerja
================ Kembali ke server simpul manajemen Server3 dan mulai terminal manajemen:
# /usr/bin/ndb_mgm Ketikkan perintah show untuk melihat status kerja saat ini: (Berikut adalah contoh keluaran status)
[root@mysql3 root]# /usr/bin/ndb_mgm
-- Klaster NDB -- Klien Manajemen --
ndb_mgm> tampilkan
Terhubung ke Server Manajemen di: localhost:1186
Konfigurasi Klaster
--------------------------
[ndbd(NDB)] 2 node
id=2 @192.168.0.1 (Versi: 4.1.9, Nodegroup: 0, Master)
id=3 @192.168.0.2 (Versi: 4.1.9, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node
id=1 @192.168.0.3 (Versi: 4.1.9)
[mysqld(API)] 2 simpul
id=4 (Versi: 4.1.9)
id=5 (Versi: 4.1.9)
ndb_mgm>
Jika tidak ada masalah di atas, mulailah menguji MySQL sekarang: Perhatikan bahwa dokumen ini tidak mengatur kata sandi root untuk MySQL. Disarankan agar Anda mengatur sendiri kata sandi root MySQL untuk Server1 dan Server2. Di Server1:
# /usr/local/mysql/bin/mysql -u root -p
> gunakan tes;
> BUAT TABEL ctest (i INT) ENGINE=NDBCLUSTER;
> MASUKKAN KE dalam ctest() NILAI (1);
> SELECT * FROM ctest; Anda seharusnya dapat melihat 1 baris informasi yang dikembalikan (nilai kembalian 1). Jika hal di atas normal, beralihlah ke Server2 dan ulangi pengujian di atas untuk mengamati efeknya. Jika berhasil, jalankan INSERT di Server2 lalu beralih kembali ke Server1 untuk mengamati apakah berfungsi normal. Jika tidak ada kendala, selamat sukses! 6. Pengujian destruktif
============== Cabut kabel jaringan Server1 atau Server2 dan amati apakah server cluster lain berfungsi normal (Anda dapat menggunakan kueri SELECT untuk menguji). Setelah pengujian selesai, masukkan kembali kabel jaringan. Jika Anda tidak memiliki akses ke server fisik, artinya Anda tidak dapat mencabut kabel jaringan, Anda juga dapat menguji seperti ini: Di Server1 atau Server2:
# ps aux |. grep ndbd akan melihat semua informasi proses ndbd:
akar 5578 0,0 0,3 6220 1964 ?S 03:14 0:00 ndbd
akar 5579 0,0 20,4 492072 102828 ?
root 23532 0.0 0.1 3680 684 pts/1 S 07:59 0:00 grep ndbd lalu matikan proses ndbd untuk menghancurkan server cluster MySQL:
# kill -9 5578 Setelah 5579, gunakan kueri SELECT pada server cluster lain untuk menguji. Dan jika Anda menjalankan perintah show di terminal manajemen server node manajemen, Anda akan melihat status server yang rusak. Setelah pengujian selesai, Anda hanya perlu me-restart proses ndbd server yang rusak:
#ndbdPerhatian! Seperti disebutkan sebelumnya, saat ini tidak perlu menambahkan parameter --initial! Sampai di sini, konfigurasi cluster MySQL telah selesai!