MySQL 复制(三:相关配置)

有许多参数可以控制复制,其中一些会对数据的安全和性能产生影响。博主推荐一种“安全” 的配置,可以最小化问题的概率。

在主库上二进制日志最重要的选项是 sync_binlog:

sync_binlog = 1

如果开启此选项,MySQL每次提交事务前会将二进制日志同步到磁盘上,保证在服务器崩溃时不会丢失时间。

如果无法容忍服务器崩溃导致表损坏,推荐使用InnoDB。在表损坏无关紧要时,MyISAM是可以接受的,但在一次备库服务器崩溃重启后,MyISAM表可能已经处于不一致状态。一种可能是语句没有完全应用到一个或多个表上,那么即使修复了表,数据也可能是不一致的。

如果使用InnoDB,强烈建议使用如下配置:

innodb_flush_logs_at_trx_commit #Flush every log write
innodb_support_xa = 1           #MySQL5.0 and newer only
innodb_safe_binlog              #MySQL4.1 only, roughly equivalent to innodb_support_xa

这些是 MySQL5.0以及最新版本中的配置,推荐明确指定二进制日志的名字,以保证二进制日志名在所以服务器上是一致的,避免因为服务器名变化导致的日志文件名变化。

当在服务器间转移文件、克隆新的备库、转储备份或者其他场景下,可能会导致很多问题。为了避免这些问题,需要给log_bin 选项指定一个参数。

log_bin = /var/bin/mysql/mysql-bin

在备库上,我们同样推荐开启如下配置选项,为中继日志指定绝对路径:

relay_log = /path/to/logs/relay_log
skip_slave_start
read_only

通过设置 relay_log 可以避免中继日志文件基于机器名来命名,防止之前提到过可能存在的问题。

skip_slava_start 选项能够阻止备库在崩溃后自动启动复制。

read_only 选项可以阻止大部分用户更改非临时表,除了复制SQL线程和其他拥有超级权限的用户之外,这也是要尽量避免给正常账号授予超级权限的原因之一。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值