Linux下keepalived+Mysql主主同步实现数据库高可用实践
来源:互联网 发布:蒙面唱将猜猜猜知乎 编辑:程序博客网 时间:2024/05/16 05:37
1):编辑mysql配置文件/etc/my.cnf,选定主主同步的数据库
[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysqlsymbolic-links=0log-bin=binlogbinlog_format=mixedserver_id=1//主备两台mysql的server_id须不同binlog-do-db=renderreplicate-do-db=render[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
2):操作主数据库,"show master status"后记录下其file和position
grant replication slave on *.* to 'slave'@'192.168.1.90' identified by '123456';flush privileges;show master status;
3):操作从数据库,如果show slave status正常,则主从同步机制建立。同时也在从数据库上开启master,以便主数据库也能从从数据库同步数据
change master to master_host='192.168.1.33',master_user='slave',master_password='123456',master_port=3306,master_log_file='binlog.000001',master_log_pos=207017;start slave;show slave status;grant replication slave on *.* to 'slave'@'192.168.1.33' identified by '123456';flush privileges;show master status;4):操作主数据库,如果show slave status正常,则主主同步机制建立完成。
master-mysql:change master to master_host='192.168.1.90',master_user='slave',master_password='123456',master_port=3306,master_log_file='mysql-bin.000014',master_log_pos=2461;start slave;show slave status;
5):数据库主主机制建立后,还需要在两台机器上都安装keepalived,以便向外提供一个VIP,当某台机器挂的时候,不影响数据库的使用。
a)需要安装ipvsadm和keepalived:yum install ipvsadm;yum install keepalived;
b)编辑/etc/keepalived/keepalived.conf。
global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.1.33 smtp_connect_timeout 30 router_id LVS_DEVEL}vrrp_script chk_mysqld{ script "/etc/keepalived/mysql.sh" interval 3 weight -20}vrrp_instance VI_1 { state MASTER//主备不同 interface eth1 virtual_router_id 51 priority 100//主备不同,备的比主的要小 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.13 }} virtual_server 192.168.1.13 3306 { delay_loop 2 lb_algo rr lb_kind DR persistence_timeout 60 protocol TCP real_server 192.168.1.90 3306{//主备两台机器的实IP不同 weight 3 notify_down /etc/keepalived/mysql.sh TCP_CHECK{ connect_timeout 3 nb_get_retry 3 connect_port 3306 } }}
c)编辑/etc/keepalived/mysql.sh。keepalived会定时启动mysql.sh脚本检查数据库状态,当数据库异常时,杀死当前机器的keepalived,VIP将被另一台数据库机器绑定,从而实现数据库的高可用,平滑切换。
#!/bin/bashMYSQL_OK=1function check_mysql_helth (){ mysql -e "show status;" &>/dev/null if [ $? = 0 ] ;then MYSQL_OK=1 else MYSQL_OK=0 fi return $MYSQL_OK }while [ $CHECK_TIME -ne 0 ]do let "CHECK_TIME -= 1" check_mysql_helthif [ $MYSQL_OK = 1 ] ; then echo "mysql ok\n" CHECK_TIME=0 exit 0fiif [ $MYSQL_OK -eq 0 ] && [ $CHECK_TIME -eq 0 ]then pkill keepalived exit 1fisleep 1done
d)启动keepalived:/usr/sbin/keepalived -D。使用VIP(这里是192.168.1.13)连接数据库即可。
0 0
- Linux下keepalived+Mysql主主同步实现数据库高可用实践
- Linux下keepalived+mysql 实现高可用
- Keepalived+MySQL主主数据同步实现数据库高可用(HA)
- Keepalived+MySQL主主数据同步实现高可用(HA)
- mysql高可用探究(二)Lvs+Keepalived+Mysql单点写入主主同步高可用方案
- keepalived+双主复制实现mysql高可用
- MHA+MYSQL+KEEPALIVED实现数据库的高可用
- mysql高可用探究(三)Lvs+Keepalived+Mysql单点写入读负载均衡主主同步高可用方案
- Linux下部署lvs+keepalived实现高可用负载均衡
- LVS+KEEPALIVED+MYSQL单点写入读负载均衡主主同步高可用方案
- MySQL + KeepAlived + LVS 单点写入主主同步高可用架构实验
- MySQL + KeepAlived + LVS 单点写入主主同步高可用架构实验
- MySQL + KeepAlived + LVS 单点写入主主同步高可用架构
- 利用LVS+Keepalived实现MySQL高可用
- 利用LVS+Keepalived实现MySQL高可用
- Keepalived+MySQL主主互备模式实现高可用
- MySQL主主互备结合keepalived实现高可用
- 基于Keepalived实现Mysql高可用
- 乐家村
- Java语言 实现并归排序
- hdoj 4324 Triangle LOVE【拓扑排序】
- 利用WinIo模拟硬件键盘
- Qt之显示网络图片
- Linux下keepalived+Mysql主主同步实现数据库高可用实践
- 使用客户端上传Android源码到GitHub上
- tomcat集群的memcached session manager方案
- GPU Debugging Tools
- POJ1719二分匹配
- 复习题知识点
- POJ3216 最小路径覆盖
- 对java多线程的一些浅浅的理解
- Proxy动态代理