CENTOS6.3下MYSQL主主互备架构配置

  MySQL主主互备结构是基于mysql增量日志基础上的,区别于主从复制结构.
  在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器上,这个改变是基于sql语句的改变, 如果删除系统数据库源文件或删除后新创建同名MYSQL表实现同步则无效。这样两台服务器互为主从,并且都能向外提供服务,这就比使用主从复制具有更好的性能.
接下来我将使用两个相同的环境来实现这个效果:
系统环境:centos6.3

数据库: mysql-5.6.10


注:在做此项配置之前首先要保证数据库当前无任何变动,建议同步前关闭WEB服务等影响数据库变动的服务

安装配置mysql(略)
1.主1 mysql配置:(192.168.7.201)
删除之前遗留bin日志
# rm -rf /usr/local/mysql/log/bin*
修改mysql配置文件:
# vi /etc/my.cnf
添加:
-----------------
# Replication Master Server 1
# bin日志路径
log-bin = /usr/local/mysql/log/bin.log
# 服务器ID号
server-id = 1
# 忽略mysql数据库复制
binlog-ignore-db=mysql
# 每次增长2
auto-increment-increment = 2
# 设置自动增长的字段的偏移量,即初始值为1
auto-increment-offset = 1
------------
# mysql -u root -p123456
在主1上为主2添加同步帐号
> grant replication slave on *.* to 'slave'@'192.168.7.249' identified by '123456';
将主1的数据库表全部备份,并发送到主2服务器上。
# /usr/local/mysql/bin/mysqldump -u root -p123456 --opt --skip-lock-tables  --flush-logs  --all-database > /root/allbak.sql
# cd ~
# scp allbak.sql root@192.168.7.249:/root
重启服务
# service mysqld restart
# mysql -u root -p123456;
配置连接到主2服务器(注意这步一定要在主2添加账户后执行)
> stop slave;
> change master to master_host='192.168.7.249',master_user='slave',master_password='123456';
> start slave;
2.主2 mysql配置(192.168.7.249)
删除之前遗留bin日志
# rm -rf /usr/local/mysql/log/bin*
修改mysql配置文件:
# vi /etc/my.cnf
添加:
--------------------
# Replication Master Server 2
# bin日志路径
log-bin = /usr/local/mysql/log/bin.log
server-id=2
# 忽略mysql数据库复制
replicate-ignore-db=mysql
# 每次增长2
auto-increment-increment = 2
# 设置自动增长的字段的偏移量,即初始值为2  
auto-increment-offset = 2
---------------------
# mysql -u root -p123456
在主2上为主1添加同步帐号
> grant replication slave on *.* to 'slave'@'192.168.7.201' identified by '123456';
恢复主1的数据库到主2
#/usr/local/mysql/bin/mysql -u root -p123456 < /root/allbak.sql
重启服务
# service mysqld restart
# mysql -u root -p123456;
配置连接到主1服务器
> stop slave;
> change master to master_host='192.168.7.201',master_user='slave',master_password='123456';
> start slave;
最后分别登陆两台服务器mysql后台查看主主备份连接状态
# mysql -u root -p123456;
> show slave status\G;
搜索这三行,如下则主主互备配置成功
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

190526693.jpg

190541784.jpg

当主1的数据库增加,删除,改变数据时,主2也会同步更新。

当主2的数据库增加,删除,改变数据时,主1也会同步更新。

这样就可以配合keepalived实现数据库双机热备+数据同步互备,大大提高了MYSQL的可靠性和安全性。

keepalived+MYSQL互备

http://showerlee.blog.51cto.com/2047005/1188549






     本文转自 showerlee 51CTO博客,原文链接:http://blog.51cto.com/showerlee/1187693,如需转载请自行联系原作者



优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/437534

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。