mysql+5.6+主备搭建_mysql 5.6 主从搭建

mysql5.6的主从搭建和之前版本的有了很大的改进,5.6引进GTID(Global Transaction ID)来强化数据库主备一致性,故障恢复,

以及容错能力。GTID的引入方便了运维人员的操作难度。

安装mysql 5.6请参阅http://zhangxz.blog.51cto.com/5490116/1380366

1.创建复制账号

grant replication slave,replication client on *.* to 'repl'@'192.168.2.%' identified by 'password';

-->复制账号只需要replication slave权限,replication client权限是给后期维护做准备

2.主库和备库配置

master

bin_log = mysql-bin

server_id = 10

slave

server_id = 20

relay_log = /usr/local/mysql/data/mysql-relay-log #(指定中继日志位置)

3.启动复制

指定主服务器位置和账号

CHANGE MASTER TO

MASTER_HOST = '192.168.2.111',

MASTER_USER = 'repl',

MASTER_PASSWORD = 'password';

开始复制

START SLAVE;

注意

1.以上的操作是在主库的二进制日志保存完整的基础上,如果二进制日志删除过就要利用其他的方式备份到备库上然后开始复制

2.主库和备库的版本推荐用一样的,这样可以避免一些问题

3.server_id 不能相同

4.主库必须开启二进制日志,从库可以不开日志提高性能

在主主模式的主动-被动模式下切换主备的推荐步骤

1.停止所有主动服务器上的所有写入操作

2.在主动服务器上执行 SET GLOBAL read_only = 1,但记住这不会阻挡拥有超级管理员权限的用户更改数据。如果想阻止所有人更改数据,可以执行FLUSH TABLES WITH READ LOCK。如果没有这么做,你必须kill所有的客户端连接以保证没有长时间运行的语句或者未提交的事务

3.在主动服务器上执行SHOW MASTER STATUS并记录二进制日志坐标

4.使用主动服务器上的二进制日志坐标在被动服务器上执行SELECT MASTER_POS_WAIT().该语句将阻塞住,直到复制跟上主动服务器

5.在被动服务器上执行SET GLOBAL read_only = 0 ,这样就变换成主服务器

6.修改应用的配置,使其写入到新的主动服务器中

相关配置

master

sync_binlog = 1        #每次提交事务都写到磁盘

innodb_flush_logs_at_trx_commit

innodb_support_xa = 1

innodb_safe_binlog

slave

replicate-do-db          #需要复制的数据库

replicate-ignore-db      #不需要复制的数据库

log_slave_updates = 1    #(允许备库将其重放的事件写入自身的二进制日志,做A--B--C复制用)

skip_slave_start         #启动服务不启动复制

slave_skip_errors = all  #跳过所有类型的错误

从数据库建议设置成read_only (set global read_only = 1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值