MySQL Replication 设定 Delay 多久时间

..

MySQL Replication 的 Slave 想要设定默认 Delay 一些时间,要怎么设定?Slave status 要怎么看?

MySQL Replication 设定 Delay 多久时间

官方文件:MySQL :: 17.3.12 Delayed Replication

Replication Delay 的设定方式

设定 Replication Delay 的方法跟一般 Replication 是一样的,只是多一个 MASTER_DELAY 的参数而已。

一样是先建立 repl 的使用者,再来 Slave 指定 Master 的档案 和 POS位址,范例如下:

  1. ssh MySQL-Master # and mysql -u root
    • mysql> CREATE USER 'repl_user'@'%' IDENTIFIED BY 'repl_password';
    • mysql> GRANT REPLICATION SLAVE ON . TO 'repl_user'@'%';
    • mysql> show master status;
  2. ssh MySQL-Slave # and mysql -u root
    • mysql> CHANGE MASTER TO
      • MASTER_HOST='MYSQL_MASTER_IP',
      • MASTER_USER='repl_user',
      • MASTER_PASSWORD='repl_password',
      • MASTER_LOG_FILE='mysql-bin.000001',
      • MASTER_LOG_POS=4,
      • MASTER_DELAY=3600;

设定好后,就可以在 Slave 看 Status,设定 Delay 时,有几个数字比较不一样,要特别注意一下:

  • mysql> SHOW SLAVE STATUS\G # 会看到下述几个参数:
    • SQL_Delay: 3600
    • Seconds_Behind_Master:
      • 如果小于 Delay 的值,代表还不能开始将 binlog 写入 DB (Replication)
        • 注:通常只有一开始的时候才会发生,跑久跟上之后, 就会接近 Delay 的值
      • 如果超过 Delay 的值, 代表 binlog 太多,Replication 来不及做,所以需要时间跟上
      • 正常要 <= Delay 的值
    • SQL_Remaining_Delay:有资料可以做了, 下一笔要等多久
      • 如果没有资料 Seconds_Behind_Master + SQL_Remaining_Delay = 0
      • 如果有资料 Seconds_Behind_Master + SQL_Remaining_Delay = Delay

相关网页

想在手机阅读更多MySQL资讯?下载【香港硅谷】Android应用
分享到Facebook