Lvs+keepalived+mysql(主從複製)

一、準備環境
操做系統:centos 6.5
2臺機器主機名爲node5三、node54
 
  Mysql Lvs keepalived
node2 Y Y Y
node3 Y Y Y
 
 
 
 
 
 
二、安裝mysql(配置主主複製)
 
 
服務器名稱 ip vip
node2 192.168.0.12 192.168.0.200
node3 192.168.0.13 192.168.0.200
  
 
 
 
 
2.一、安裝數據庫
      yum install -y mysql
 
2.二、關閉防火牆
    
 service iptables stop
 chkconfig iptables off
 
2.三、修改root用戶名/訪問權限
use mysql
delete from user where user= '' ;
grant replication slave on *.* to 'root' @ '%' identified by '123456' ;
2.四、修改/etc/my.cnf
在node2機器上配置以下
 
[mysqld]
datadir= /var/lib/mysql
socket= /var/lib/mysql/mysql .sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
log-bin=mysql-bin
server- id =1
#須要記錄二進制日誌的數據庫,若是有多個庫,寫多個binlog-do-db,用逗號隔開,測試時發現不能同步?有空在研究
binlog- do -db=amdb
binlog- do -db=hivedb
binlog- do -db=ooziedb
#不須要記錄日誌的數據庫
binlog-ignore-db=mysql
#須要同步的數據庫
replicate- do -db=amdb
replicate- do -db=hivedb
replicate- do -db=ooziedb
#不須要同步的庫
replicate-ignore-db=mysql,information_schema
#默認值3600s
slave-net-timeout=60
 
#保證slave掛在任何一臺master上都會接收到另外一個master的寫入信息
log-slave-updates
sync_binlog=1
slave-skip-errors=all
auto_increment_offset=1
auto_increment_increment=2
 
[mysqld_safe]
log-error= /var/log/mysqld .log
pid- file = /var/run/mysqld/mysqld .pid
 
 
在node3機器上配置以下
 
 
[mysqld]
datadir= /var/lib/mysql
socket= /var/lib/mysql/mysql .sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
log-bin=mysql-bin
#設置不一樣的id
server- id =2
#須要記錄二進制日誌的數據庫,若是有多個庫,寫多個binlog-do-db,用逗號隔開,測試時發現不能同步?有空在研究
binlog- do -db=amdb
binlog- do -db=hivedb
binlog- do -db=ooziedb
#不須要記錄日誌的數據庫
binlog-ignore-db=mysql
#須要同步的數據庫
replicate- do -db=amdb
replicate- do -db=hivedb
replicate- do -db=ooziedb
#不須要同步的庫
replicate-ignore-db=mysql,information_schema
#默認值3600s
slave-net-timeout=60
 
#保證slave掛在任何一臺master上都會接收到另外一個master的寫入信息
log-slave-updates
sync_binlog=1
slave-skip-errors=all
auto_increment_offset=1
auto_increment_increment=2
 
[mysqld_safe]
log-error= /var/log/mysqld .log
pid- file = /var/run/mysqld/mysqld .pid
 
2.五、重啓mysql服務
     service mysqld restart
 
2.六、分別在node二、node3上執行
 
mysql> flush tables with read lock; #防止進入新的數據
Query OK, 0 rows affected (0.00 sec)
mysql> show master status\G;
*************************** 1. row ***************************
             File: mysql-bin.000007
         Position: 438
     Binlog_Do_DB: db_rocky
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)
 
在node3
 
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status\G;
*************************** 1. row ***************************
             File: mysql-bin.000008
         Position: 107
     Binlog_Do_DB: db_rocky
Binlog_Ignore_DB: mysql
1 row in set (0.01 sec)
 
2.七、在node二、node3指定同步位置
在node53
mysql> change master to master_host= '10.211.55.54' ,master_user= 'root' ,master_password= '123456' ,master_log_file= 'mysql-bin.000008' ,master_log_pos=107;
Query OK, 0 rows affected (0.05 sec)
 
在node3
 
mysql> change master to master_host= '10.211.55.53' ,master_user= 'root' ,master_password= '123456' ,
     -> master_log_file= 'mysql-bin.000007' ,master_log_pos=438;
Query OK, 0 rows affected (0.15 sec)
 
注:master_log_file,master_log_pos由上面主服務器查出的狀態值中肯定
 
2.八、解鎖表
 
mysql> unlock tables;
mysql> start slave;
 
2.九、分別在2臺機器查看狀態
show slave status\G;
若是顯示以下,則正常
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
三、Lvs配置
3.1 安裝lvs
yum install ipvsadm
3.2 編寫啓動腳本
 
vim /etc/init .d /realserver .sh
#!/bin/bash
#description: Config realserver lo and apply noarp
  
SNS_VIP=10.211.55.200
/etc/rc .d /init .d /functions
case "$1" in
  
start)
       ifconfig eth0:1 $SNS_VIP /24
       /sbin/route add -host $SNS_VIP dev eth0:1
       echo "vip Start OK"
       ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
       /sbin/route add -host $SNS_VIP dev lo:0
       echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
       echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
       echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
       sysctl -p > /dev/null 2>&1
       echo "RealServer Start OK"
       ;;
  
stop)
       ifconfig eth0:1 down
       route del $SNS_VIP > /dev/null 2>&1
       echo "vip Stoped"
       ifconfig lo:0 down
       route del $SNS_VIP > /dev/null 2>&1
       echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
       echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
       echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Stoped"
       ;;
  
*)
  
       echo "Usage: $0 {start|stop}"
       exit 1
esac
exit 0
 
配置開機啓動
 
 echo "/etc/init.d/realserver.sh start" >> /etc/rc .d /rc . local
四、配置keepalived
4.一、安裝keepalived
  yum install keepalived
 
4.二、配置keepalived.conf
 
 
  
vim /etc/keepalived/keepalived .conf
! Configuration File for keepalived
global_defs {
  
         notification_email {
              yangyufans@qq.com
         }
         notification_email_from yangyufans@qq.com
         smtp_server smtp.qq.com
         smtp_connect_timeout 30
         router_id LVS1
}
  
vrrp_sync_group test {
         group {
                 loadbalance
         }
}
  
vrrp_instance loadbalance {
         state MASTER
         lvs_sync_daemon_inteface eth0
         virtual_router_id 51
         priority 150
         advert_int 1
  
         authentication {
                 auth_type PASS
                 auth_pass 1111
         }
  
         virtual_ipaddress {
                 10.211.55.200 dev eth0 label eth0:1
         }
}
virtual_server 10.211.55.200 3306 {
         delay_loop 6
         lb_algo rr
         lb_kind DR
         persistence_timeout 20
         protocol TCP
         sorry_server 10.211.55.54 3306
         real_server 10.211.55.53 3306 {
                 weight 3
                 TCP_CHECK {
                         connect_timeout 3
                         nb_get_retry 3
                         delay_before_retry 3
                         connect_port 3306
                 }
         }
}
 
 
node3上配置keepalived.conf
2個參數不一樣,其餘配置相同
state BACKUP
priority 100
 
chkconfig keepalived on
 
插入圖片=============
 
 
 
 
相關文章
相關標籤/搜索