百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> MySQL双向备份的办法介绍(附代码)
分享文章到:

MySQL双向备份的办法介绍(附代码)

发布时间:08/01 来源:未知 浏览: 关键词:
本篇文章给大家带来的内容是对于MySQL双向备份的办法介绍(附代码),有一定的参照 价值,有需要的伴侣可以参照 一下,但愿对你有所帮忙。

本篇文章给大家带来的内容是对于MySQL双向备份的办法介绍(附代码),有一定的参照 价值,有需要的伴侣可以参照 一下,但愿对你有所帮忙。

MySQL 双向备份也被称为 主主备份 ,即两个 MySQL 办事都是 Master,其中任意一个办事又是另一个办事的 Slave。

预备

办事器

MySQL办事器版本IP地址
masterA5.6.41192.168.1.201
masterB5.6.41192.168.1.202

注:

备份的 MySQL 办事器版本尽量维持一致,不一样的版本可能二进制日志格局不兼容。

概括操纵

注意

操纵历程中注意两边数据的一致!!!

masterA 配置

my.cnf

[mysqld]
# 办事器独一标识
server-id=1
# 二进制日志文件名
log-bin=mysql-bin

# 需要备份的数据库,多个数据库用 , 分隔
binlog-do-db=piumnl
# 需要复制的数据库,多个数据库用 , 分隔
replicate-do-db=piumnl
# 中继日志文件名
relay_log=mysqld-relay-bin
# 手动启动同步办事,以免忽然宕机致使的数据日志不一样步
skip-slave-start=ON
# 互为主从需要参加这一行
log-slave-updates=ON
# 禁用符号链接,防止平安风险,可不加
symbolic-links=0

# 可不加
# resolve - [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0
master-info-repository=table
relay-log-info-repository=table
relay-log-recovery=1

# 可不加
# 禁用 dns 解析,会使授权时运用的域名无效
skip-host-cache
skip-name-resolve

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

masterB 配置

my.cnf

# 不再解释各个配置项
[mysqld]
server-id=2
log-bin=mysql-bin

binlog-do-db=piumnl
replicate-do-db=piumnl
relay_log=mysql-relay-bin
skip-slave-start=ON
log-slave-updates=ON
symbolic-links=0

# resolve - [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0
master-info-repository=table
relay-log-info-repository=table
relay-log-recovery=1

skip-host-cache
skip-name-resolve

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

新建备份会员

masterA & masterB 都要新建备份会员:

create user 'rep'@'%' identified by 'rep';    # 新建一个账户
grant replication slave on *.* to 'rep'@'%';  # 授予该账户对任意数据库任意表的主从备份权限

备注:

  1. Linux 下 MySQL 对 root@% 会员关闭了 grant_priv 权限,所以要是是长途登录会涌现授权失败的状况
  2. 此处备份会员帐号和密码可纷歧致,此处为了简化操纵运用同样的帐号和密码

重新启动办事器

重新启动办事器

开启备份

masterA

查看 masterB 状态

show master status\G;
# 此处需要关注 File 和 Position 值

开启备份

stop slave;
# master_log_file 就是首先步操纵的 File 值
# master_log_pos 就是首先步操纵的 Position 值
change master to master_host=, master_user=, master_port=, master_password=, master_log_file='mysql-log.000003', master_log_pos=154;
start slave;

查看效果

show slave status\G;
# 查看最重要的两项,两个都必需为 Yes ,有一个为 No 都要去查看差错日志文件,看看什么地方存在题目
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes

masterB

反向反复 masterA 的操纵

测试

离别在 masterA 和 masterB 中插入数据,并查看另一台办事器可否及时涌现预测的数据

题目

MySQL Slave Failed to Open the Relay Log

这应当是中继日志涌现题目,可尝试如下操纵

stop slave;
flush logs;
start slave;

Got fatal error 1236 from master when reading data from binary log

从主库中拉取日志时,发明主库的 mysql_bin.index 文件中的首先个文件不存在。

# 进行如下操纵重置
# 要是二进制日志或中继日志有其他作用,请勿进行如下操纵
reset master;
reset slave;
flush logs;

.

运用 .

进行插入、更新和删除操纵,将不会进行备份( 这是巨坑 )!!!【 打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有164人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板