標籤:keepalived + mysql 雙主
一、配置Mysql主主同步1,修改/etc/my.cnf,建立同步處理的使用者Master104[[email protected] ~]# vim /etc/my.cnf[mysqld]server-id = 1 #backup這台設定2log-bin = mysql-binbinlog-ignore-db = mysql,information_schema #忽略寫入binlog日誌的庫auto-increment-increment = 2 #欄位變化增量值auto-increment-offset = 1 #初始欄位ID為1slave-skip-errors = all #忽略所有複製產生的錯誤[[email protected] ~]# service mysqld restart#查看log bin日誌和pos值位置[[email protected] ~]# mysql -uroot -pmysql> grant replication slave on *.* to ‘replication‘@‘192.168.9.%‘ identified by ‘replication‘;Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)Backup106#106配置Mysql主主同步[[email protected] ~]# vim /etc/my.cnf [mysqld]server-id = 2 log-bin = mysql-binbinlog-ignore-db = mysql,information_schema auto-increment-increment = 2 auto-increment-offset = 1 slave-skip-errors = all [[email protected] ~]# service mysqld restart#查看log bin日誌和pos值位置[[email protected] ~]# mysql -uroot -pmysql> grant replication slave on *.* to ‘replication‘@‘192.168.9.%‘ identified by ‘replication‘;Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)2、配置Mysql主主同步Master 104[[email protected] ~]# mysql -uroot -pmysql> show master status;+------------------+----------+--------------+--------------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+--------------------------+| mysql-bin.000002 | 625 | | msyql,information_schema |+------------------+----------+--------------+--------------------------+1 row in set (0.00 sec)mysql> change master to -> master_host=‘192.168.9.106‘, -> master_user=‘replication‘, -> master_password=‘replication‘, -> master_log_file=‘mysql-bin.000002‘, -> master_log_pos=356;Query OK, 0 rows affected (0.02 sec)mysql> start slave;Query OK, 0 rows affected (0.00 sec)mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.9.106 Master_User: replication Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 356 Relay_Log_File: 104-relay-bin.000002 Relay_Log_Pos: 253 Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: YesBackup 106[[email protected] ~]# mysql -uroot -pmysql> show master status;+------------------+----------+--------------+--------------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+--------------------------+| mysql-bin.000002 | 356 | | mysql,information_schema |+------------------+----------+--------------+--------------------------+1 row in set (0.00 sec)mysql> change master to-> master_host=‘192.168.9.104‘,-> master_user=‘replication‘,-> master_password=‘replication‘,-> master_log_file=‘mysql-bin.000002‘,-> master_log_pos=625;Query OK, 0 rows affected (0.02 sec)mysql> start slave;Query OK, 0 rows affected (0.00 sec)mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.9.104 Master_User: replication Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 625 Relay_Log_File: 106-relay-bin.000002 Relay_Log_Pos: 253 Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes#如果Slave_IO_Running和Slave_SQL_Running為Yes,則配置主主正常,可以建立測試下二、配置keepalived實現雙主熱備1,#下載安裝keepalived[[email protected] ~]# cd /usr/local/src/[[email protected] src]# wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz[[email protected] src]# yum -y install gcc gcc-c++ gcc-g77 ncurses-devel bison libaio-devel cmake libnl* libpopt* popt-static openssl-devel[[email protected] src]# tar xf keepalived-1.2.13.tar.gz [[email protected] src]# cd keepalived-1.2.13[[email protected] keepalived-1.2.13]# ./configure --prefix=/usr/local/keepalived --disable-fwmark [[email protected] keepalived-1.2.13]# make[[email protected] keepalived-1.2.13]# make install2,#配置keepalived配置成系統服務[[email protected] keepalived-1.2.13]# cd /usr/local/keepalived/[[email protected] keepalived]# cp etc/rc.d/init.d/keepalived /etc/init.d/[[email protected] keepalived]# cp etc/sysconfig/keepalived /etc/sysconfig/[[email protected] keepalived]# mkdir /etc/keepalived[[email protected] keepalived]# cp etc/keepalived/keepalived.conf /etc/keepalived/[[email protected] keepalived]# cp sbin/keepalived /usr/sbin/[[email protected] keepalived]# chkconfig keepalived on[[email protected] keepalived]# chkconfig --list keepalived keepalived 0:off 1:off 2:on 3:on 4:on 5:on 6:off 3,#配置mysql熱備Mater 104[[email protected] keepalived]# vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { router_id Mysql_HA #標識,雙主相同}vrrp_instance zabbix_mysql { state Backup #倆台都設定Backup interface eth0 virtual_router_id 53 #主備相同 priority 100 #優先順序,backup設定90 advert_int 1 nopreempt #不主動搶佔資源,只在master這台優先順序高的設定,backup不設定 authentication { auth_type PASS auth_pass sina } virtual_ipaddress { 192.168.9.123 } } virtual_server 192.168.9.123 3306 { delay_loop 6 nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP real_server 192.168.9.104 3306 { weight 3 notify_down "/etc/keepalived/mysql.sh" TCP_CHECK { connect_timeout 5 nb_get_retry 2 delay_before_retry 3 } } }[[email protected] keepalived]# vim /etc/keepalived/mysql.sh#!/bin/bash/etc/init.d/keepalived stop#啟動keepalived[[email protected] keepalived]# /etc/init.d/keepalived start[[email protected] keepalived]# ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:ff:a5:92 brd ff:ff:ff:ff:ff:ff inet 192.168.9.104/24 brd 192.168.9.255 scope global eth0 inet 192.168.9.123/32 scope global eth0 inet6 fe80::20c:29ff:feff:a592/64 scope link valid_lft forever preferred_lft foreverBackup106[[email protected] keepalived]# vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { router_id Mysql_HA }vrrp_instance zabbix_mysql { state Backup interface eth0 virtual_router_id 53 priority 90 advert_int 1 authentication { auth_type PASS auth_pass sina } virtual_ipaddress { 192.168.9.123 } } virtual_server 192.168.9.123 3306 { delay_loop 6 nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP real_server 192.168.9.106 3306 { weight 3 notify_down "/etc/keepalived/mysql.sh" TCP_CHECK { connect_timeout 5 nb_get_retry 2 delay_before_retry 3 } } }[[email protected] keepalived]# vim /etc/keepalived/mysql.sh#!/bin/bash/etc/init.d/keepalived stop[[email protected] keepalived]# chmod +x /etc/keepalived/mysql.sh#啟動keepalived[[email protected] keepalived]# /etc/init.d/keepalived start[[email protected] keepalived]# ip addr4,驗證104停止mysqld[[email protected] keepalived]# service mysqld stopShutting down MySQL.... SUCCESS! [[email protected] keepalived]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:ff:a5:92 brd ff:ff:ff:ff:ff:ff inet 192.168.9.104/24 brd 192.168.9.255 scope global eth0 inet6 fe80::20c:29ff:feff:a592/64 scope link valid_lft forever preferred_lft forever106[[email protected] keepalived]# ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:c1:76:6b brd ff:ff:ff:ff:ff:ff inet 192.168.9.106/24 brd 192.168.9.255 scope global eth0 inet 192.168.9.123/32 scope global eth0 inet6 fe80::20c:29ff:fec1:766b/64 scope link valid_lft forever preferred_lft forever
Keepalived +Mysql 主主同步