Cara mengkonfigurasi kluster pangkalan data yang sangat tersedia di Linux
Dalam aplikasi Internet moden, pangkalan data memainkan peranan yang sangat penting. Untuk memastikan kebolehpercayaan data dan ketersediaan tinggi, banyak syarikat mengkonfigurasi kelompok pangkalan data yang sangat tersedia. Artikel ini akan memperkenalkan cara untuk mengkonfigurasi kluster pangkalan data yang tersedia pada Linux untuk memastikan bahawa apabila pangkalan data gagal, ia boleh bertukar dengan cepat kepada pangkalan data siap sedia untuk memastikan operasi berterusan aplikasi.
Kami akan menggunakan MySQL sebagai pangkalan data sampel untuk menunjukkan cara mengkonfigurasi kluster pangkalan data MySQL yang tersedia di Linux.
Mula-mula, anda perlu memasang MySQL pada Linux. Anda boleh menggunakan arahan berikut:
sudo apt-get install mysql-server
Dalam kluster pangkalan data ketersediaan tinggi, replikasi tuan-hamba biasanya digunakan untuk mencapai penyegerakan data. Dalam mod ini, satu pelayan pangkalan data berfungsi sebagai pelayan induk, bertanggungjawab untuk menulis dan mengemas kini data, dan pelayan pangkalan data lain berfungsi sebagai pelayan hamba, bertanggungjawab untuk membaca data dan menyegerakkan data pelayan induk dalam masa nyata.
Pertama, anda perlu mengkonfigurasinya pada pelayan utama. Edit fail konfigurasi MySQL my.cnf
, cari dan ubah suai konfigurasi berikut: my.cnf
,找到并修改以下配置:
server-id=1 log_bin=mysql-bin binlog_format=row
然后,重启MySQL服务。
接下来,在从服务器上进行配置。同样,需要编辑MySQL的配置文件my.cnf
,找到并修改以下配置:
server-id=2 relay-log=mysql-relay-bin log_slave_updates=1 read_only=1
然后,重启MySQL服务。
现在,主从服务器已经成功配置好了,接下来需要设置主从同步。在主服务器上,使用以下命令创建一个用于同步的用户:
CREATE USER 'replication'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%'; FLUSH PRIVILEGES;
然后,执行以下命令获取主服务器的二进制日志文件和位置:
SHOW MASTER STATUS;
得到的结果类似于:
+---------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------+----------+--------------+------------------+ | mysql-bin.0001| 107 | test | | +---------------+----------+--------------+------------------+
接下来,在从服务器上执行以下命令开始进行主从同步:
CHANGE MASTER TO MASTER_HOST='master_server_ip', MASTER_USER='replication', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.0001', MASTER_LOG_POS=107; START SLAVE;
在从服务器上执行以下命令查看主从同步状态:
SHOW SLAVE STATUSG
如果显示Slave_IO_Running
和Slave_SQL_Running
都为Yes
,表示主从同步已成功设置。
当主服务器出现故障时,需要手动切换到备用数据库。为了方便切换,可以使用Keepalived和HAProxy来实现自动切换。
首先,需要安装Keepalived和HAProxy。可以使用以下命令:
sudo apt-get install keepalived haproxy
然后,编辑Keepalived的配置文件/etc/keepalived/keepalived.conf
,修改以下配置:
vrrp_script chk_mysql { script "killall -0 mysqld" interval 2 weight -2 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass your_password } track_script { chk_mysql } virtual_ipaddress { 192.168.1.100/24 } }
保存并关闭文件。
接下来,编辑HAProxy的配置文件/etc/haproxy/haproxy.cfg
listen mysql-cluster bind 192.168.1.100:3306 mode tcp option mysql-check user haproxy_check balance roundrobin server mysql1 192.168.1.101:3306 check server mysql2 192.168.1.102:3306 check backup
my.cnf
, cari dan ubah suai konfigurasi berikut: sudo service keepalived restart sudo service haproxy restart
Slave_IO_Running
dan Slave_SQL_Running
dipaparkan Kedua-duanya adalah Ya
, menunjukkan bahawa penyegerakan induk-hamba telah berjaya disediakan. 🎜/etc/keepalived/keepalived.conf
dan ubah suai konfigurasi berikut: 🎜rrreee🎜Simpan dan tutup fail. 🎜🎜Seterusnya, edit fail konfigurasi HAProxy /etc/haproxy/haproxy.cfg
dan tambah konfigurasi berikut: 🎜rrreee🎜Simpan dan tutup fail. 🎜🎜Akhir sekali, mulakan semula perkhidmatan Keepalived dan HAProxy: 🎜rrreee🎜 Sekarang, apabila pelayan utama gagal, Keepalived akan menukar alamat IP maya kepada pangkalan data siap sedia dan memajukan trafik ke HAProxy. 🎜🎜Melalui langkah di atas, kami berjaya mengkonfigurasi kluster pangkalan data yang sangat tersedia di Linux. Apabila pangkalan data gagal, sistem secara automatik beralih ke pangkalan data siap sedia, memastikan kebolehpercayaan data dan ketersediaan tinggi. Saya harap artikel ini dapat membantu anda mengkonfigurasi kluster pangkalan data yang sangat tersedia. 🎜Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi kluster pangkalan data yang sangat tersedia di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!