线上mysql主从服务器切换binlog_format

现在服务器上面跑着已经配置好的主从环境,配置大概如下:

主:

# binlog_format="STATEMENT" # (默认配置)
server-id = 10
log_bin = /var/lib/mysql/mysql-bin

从:

server-id = 11
log_bin = mysql-bin
relay_log = /var/lib/mysql/mysql-relay-bin
log_slave_updates = 1
# binlog_format="STATEMENT" # (默认配置)

由于本身就在阿里云的ecs上面,现在想切换数据库直接使用阿里云的RDS数据库作为主数据库,rds提供了同步功能,但是需要主库是 binlog_format="STATEMENT" 基于行的复制配置。所以这里想改下配置但是能够将服务停止的时间降到最低。

另外需要释义的是:

  1. 基于row的复制需要停机然后拷贝数据到从库之后再开启slave吗?还是说主动将所有数据全部复制过来?
  2. 如果按照google的结果: 如何安全的线上改变binlog_format ,是我现在环境下地主从两台服务器都要执行 set global binlog_format=STATEMENT;语句还是从库会自动转换。
阅读 8.6k
1 个回答

主从复制是依照binlog的吧 被记录的操作才会被同步
运行的时候主服会将信息写进binlog里 然后从服务自己会过来抓(记得是要配置用户跟密码的)
配置是两边都要设置的 推荐还是晚上维护吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题