MariaDB+Keepalived雙主高可用配置MySQL-HA_MySQL
來源:懂視網
責編:小采
時間:2020-11-09 18:39:56
MariaDB+Keepalived雙主高可用配置MySQL-HA_MySQL
MariaDB+Keepalived雙主高可用配置MySQL-HA_MySQL:MariaDB bitsCN.com 利用keepalived構建高可用MySQL-HA,保證兩臺MySQL數據的一致性,然后用keepalived實現虛擬VIP,通過keepalived自帶的服務監控功能來實現MySQL故障時自動切換。 硬件拓撲如下: VIP:192.168.1.200mysql1:19
導讀MariaDB+Keepalived雙主高可用配置MySQL-HA_MySQL:MariaDB bitsCN.com 利用keepalived構建高可用MySQL-HA,保證兩臺MySQL數據的一致性,然后用keepalived實現虛擬VIP,通過keepalived自帶的服務監控功能來實現MySQL故障時自動切換。 硬件拓撲如下: VIP:192.168.1.200mysql1:19
MariaDB
bitsCN.com
利用keepalived構建高可用MySQL-HA,保證兩臺MySQL數據的一致性,然后用keepalived實現虛擬VIP,通過keepalived自帶的服務監控功能來實現MySQL故障時自動切換。 硬件拓撲如下: VIP:192.168.1.200mysql1:192.168.1.201mysql2:192.168.1.202 操作系統:CentOS release 6.3(32位)MySQL版本:MariaDB 5.5.31 Stable下載地址(64位請下載64版本):https://downloads.mariadb.org/f/mariadb-5.5.31/kvm-tarbake-jaunty-x86/mariadb-5.5.31.tar.gz/from/http:/mirrors.scie.in/mariadbKeepalived版本:Version 1.2.7下載地址:http://www.keepalived.org/software/keepalived-1.2.7.tar.gz 一、配置Centos運行環境: 執行:rpm -qa|grep mysqlrpm -e mysqlyum -y remove mysql-server mysqlyum -y remove php-mysql移除系統自帶的mysql yum -y install yum-fastestmirroryum -y update更新系統軟件; rm -rf /etc/localtimeln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime yum install -y ntpntpdate -d cn.pool.ntp.orgdate設置時區并同步系統時間 #Disable SeLinuxif [ -s /etc/selinux/config ]; thensed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configfildconfig關閉安全增強 cat >>/etc/security/limits.conf<
>/etc/sysctl.conf<
2、安裝:[root@localhost down]# tar -zxvf keepalived-1.2.7.tar.gz[root@localhost down]# cd keepalived-1.2.7
[root@localhost keepalived-1.2.7]# ./configure --prefix=/usr/local/keepalived 安裝到/usr/local/keepalived目錄下;至此keepalived安裝完畢。 四、分別在201和202兩臺機器上都重復二,三安裝好mariaDB和keepalived。 五、配置201數據庫服務器: 1、設置mariaDB數據庫配置文件:[root@localhost /]# vi /etc/my.cnf 確保/etc/my.cnf中有如下參數,沒有的話需手工添加,并重啟mysql服務。[mysqld]
log-bin=mysql-bin #啟動二進制文件
server-id=1 #服務器ID
設置完畢啟動mariaDB服務器 [root@localhost /]# service mariamysql start
2、登錄mysql,然后在增加一個賬號專門用于同步,如下:
[root@localhost /]# /usr/local/mariamysql/bin/mysql -uroot -p #初始密碼為空到Enter password:處直接回車即可MariaDB [(none)]> grant replication slave on *.* to 'backup'@'192.168.1.202' identified by 'backup'; flush privileges;
顯示master狀態:MariaDB [(none)]> show master status;
記錄下File和Position然后在202上面設置從201同步。
六、配置202數據庫服務器: [root@localhost /]# vi /etc/my.cnf 確保/etc/my.cnf中有如下參數,沒有的話需手工添加,并重啟mysql服務。[mysqld]
log-bin=mysql-bin #啟動二進制文件
server-id=10(此處要設置的跟201不同)#服務器ID
設置完畢啟動mariaDB服務器。[root@localhost /]# service mariamysql start登錄數據庫:[root@localhost /]# /usr/local/mariamysql/bin/mysql -uroot -p 輸入:MariaDB [(none)]> change master to master_host='192.168.1.201',master_user='backup',master_password='backup',master_log_file='mysql-bin.000010',master_log_pos=245;注意:245對應上面在201上面記下的Position,mysql-bin.000010對應201上面記錄的File
執行成功后,輸入命令顯示從庫狀態:MariaDB [(none)]> show slave status /G;
Slave_IO_Running: Yes Slave_SQL_Running: Yes兩項都顯示Yes時說明從201同步數據成功。至此201為主202為從的主從架構數據設置成功! 七、設置201和202互為主從: 1、202機器上增加一個帳號專門用于同步數據:MariaDB [(none)]> grant replication slave on *.* to 'backup'@'192.168.1.201' identified by 'backup'; flush privileges;
2、顯示202做為主庫時的狀態:MariaDB [(none)]> show master status;
3、在201數據庫服務器上:MariaDB [(none)]> change master to master_host='192.168.1.202',master_user='backup',master_password='backup',master_log_file='mysql-bin.000005',master_log_pos=5005;
注意:5005對應上面在202上面記下的Position,mysql-bin.000005對應202上面記錄的File顯示狀態:MariaDB [(none)]> show slave status /G;
Slave_IO_Running: Yes Slave_SQL_Running: Yes兩項都顯示Yes時說明從202同步數據成功。至此201、202互為主從設置成功! 可以試試在這兩臺服務器上任何一臺增加一個數據庫,并建個表,增加一些數據看看,互為主從同步的狀態是否成功!首先在201上面:MariaDB [(none)]> create database mysqltest;MariaDB [(none)]> use mysqltest;MariaDB [mysqltest]> create table user(id int(5),name char(10));MariaDB [mysqltest]> insert into user values (00001,'zhangsan');在202上面驗證一下:MariaDB [(none)]> use mysqltest;MariaDB [mysqltest]> select * from user;
會發現201上面的數據已經自動同步到202上面了同樣在202上面:MariaDB [mysqltest]> insert into user values (00002,'wander'); 在201上面驗證一下:MariaDB [mysqltest]> select * from user;
互為主從結構設置完畢 注意:如果同步不成功,首先要確保服務器3306端口打開的。centos可以用service iptables stop關閉防火墻。 八、利用keepalived實現高可用 keepalived實現虛擬IP,通過keepalived自帶的服務監控功能來實現MySQL故障時自動切換; 1、keepalived設置:201服務器上面,編輯keeplaived.conf配置文件:[root@localhost /]# vi /usr/local/keepalived/etc/keepalived/keepalived.conf
配置文件內容如下:! Configuration File for keepalivedglobal_defs {
router_id mysql-ha
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 201
priority 100
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.1.200
}
}
virtual_server 192.168.1.200 3306 {
delay_loop 2
lb_algo rr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.1.201 3306 {
weight 1
notify_down /usr/local/keepalived/etc/keepalived/mysql.sh
TCP_CHECK {
connect_port 3306
connect_timeout 3
nb_get_retry 2
delay_before_retry 1
}
}
}
~
編輯mysql服務停止后的切換腳本:mysql.sh[root@localhost /]# vi /usr/local/keepalived/etc/keepalived/mysql.sh
內容如下:#!/bin/bash
pkill keepalived
2、啟動201上面的keepalived[root@localhost /]# /usr/local/keepalived/sbin/keepalived -f /usr/local/keepalived/etc/keepalived/keepalived.conf -D查看:
啟動成功后會有三個keepalived進程 此是在任一局域機器上面ping 192.168.1.200發現已經可以ping通,并且用192.168.1.200這個IP也能夠連接到數據庫服務器。 3、在202機器上面重復1、2步驟;配置keepalived.conf文件的時候注意要把 real_server 192.168.1.201 3306改為 real_server 192.168.1.202 3306virtual_router_id 201 改為virtual_router_id 202 至此MariaDB+Keepalived雙主高可用配置MySQL-HA設置完畢。可以試著把201上面的mariaDB停止 [root@localhost /]# service mariamysql stop;會發現連接192.168.1.200還是可以連接上去的,keepalived會自動切換到202的服務器上面去。這樣,當一臺數據庫服務器發生故障時,另一臺服務器可以立即切換過來,保證高可用。bitsCN.com
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
MariaDB+Keepalived雙主高可用配置MySQL-HA_MySQL
MariaDB+Keepalived雙主高可用配置MySQL-HA_MySQL:MariaDB bitsCN.com 利用keepalived構建高可用MySQL-HA,保證兩臺MySQL數據的一致性,然后用keepalived實現虛擬VIP,通過keepalived自帶的服務監控功能來實現MySQL故障時自動切換。 硬件拓撲如下: VIP:192.168.1.200mysql1:19