一、在两台服务器上分别安装MySQL实例
Mysql01:192.168.0.207
Mysql02:192.168.0.208
vip1:192.168.0.211
vip2:192.168.0.212
(略)
二、在两台服务器上配置主主复制
GRANT REPLICATION SLAVE ON *.* TO 'dba_repl'@'192.168.0.%' IDENTIFIED BY '123456';
change master to MASTER_HOST='192.168.0.207',
MASTER_USER='dba_repl',
MASTER_PASSWORD ='123456',
MASTER_LOG_FILE = 'mysql-bin.000003',
MASTER_LOG_POS = 120
;
三、配置keepalived,这个方案的关键点在于keepalived的配制,两个vrrp_instance在两个主上的优先级相反。
MySQL01:
global_defs {
# Keepalived process identifier
lvs_id MySQL_HA
}
# Script used to check if Proxy is running
vrrp_script check_proxy {
script "killall -0 mysql"
interval 2
weight 3
}
# Virtual interface 1
# The priority specifies the order in which the assigned interface to take over in a failover
vrrp_instance VI_01 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
# The virtual ip address shared between the two loadbalancers
virtual_ipaddress {
192.168.0.211 dev eth0
}
track_script {
check_proxy
}
}
# Virtual interface 2
# The priority specifies the order in which the assigned interface to take over in a failover
vrrp_instance VI_02 {
state MASTER
interface eth0
virtual_router_id 52
priority 102
# The virtual ip address shared between the two loadbalancers
virtual_ipaddress {
192.168.0.212 dev eth0
}
track_script {
check_proxy
}
}
主二:
global_defs {
# Keepalived process identifier
lvs_id MySQL_HA
}
# Script used to check if Proxy is running
vrrp_script check_proxy {
script "killall -0 mysql"
interval 2
weight 3
}
# Virtual interface 1
# The priority specifies the order in which the assigned interface to take over in a failover
vrrp_instance VI_01 {
state MASTER
interface eth0
virtual_router_id 51
priority 102
# The virtual ip address shared between the two loadbalancers
virtual_ipaddress {
10.103.9.211 dev eth0
}
track_script {
check_proxy
}
}
# Virtual interface 2
# The priority specifies the order in which the assigned interface to take over in a failover
vrrp_instance VI_02 {
state MASTER
interface eth0
virtual_router_id 52
priority 100
# The virtual ip address shared between the two loadbalancers
virtual_ipaddress {
192.168.0.212 dev eth0
}
track_script {
check_proxy
}
}
MySQL课程推荐
MySQL性能管理及架构设计
高性能可扩展MySQL数据库设计及架构优化 电商项目