课程表

SSDB 开始

SSDB 运维管理

SSDB 定义

工具箱
速查手册

SSDB 同步和复制

当前位置:免费教程 » 数据库/运维 » SSDB

配置

对于老版本, 你必须通过 slaveof.ip 指定 master 的 IP 地址, 但对于新版本(1.9.2+), 你可以通过 slaveof.host 指定 master 的主机名(域名).

主-从

#server 1

  1. replication:
  2. slaveof:

#server 2

  1. replication:
  2. slaveof:
  3. id: svc_1
  4.     # sync|mirror, default is sync
  5.     type: sync
  6.     # use ip for older version
  7.     #ip: 127.0.0.1
  8.     # use host since 1.9.2
  9.     host: localhost
  10.     port: 8888

主-主

#server 1

  1. replication:
  2. slaveof:
  3. id: svc_2
  4.     # sync|mirror, default is sync
  5.     type: mirror
  6.     # use ip for older version
  7.     #ip: 127.0.0.1
  8.     # use host since 1.9.2
  9.     host: localhost
  10.     port: 8889

#server 2

  1. replication:
  2. slaveof:
  3. id: svc_1
  4.     # sync|mirror, default is sync
  5.     type: mirror
  6.     # use ip for older version
  7.     #ip: 127.0.0.1
  8.     # use host since 1.9.2
  9.     host: localhost
  10.     port: 8888

多主

在一组一共包含 n 个实例的 SSDB 实例群中, 每一个实例必须 slaveof 其余的 n-1 个实例.

  1. replication:
  2. slaveof:
  3. id: svc_1
  4.     # sync|mirror, default is sync
  5.     type: mirror
  6.     # use ip for older version
  7.     #ip: 127.0.0.1
  8.     # use host since 1.9.2
  9.     host: localhost
  10.     port: 8888
  11. slaveof:
  12.     id: svc_2
  13.     # sync|mirror, default is sync
  14.     type: mirror
  15.     # use ip for older version
  16.     #ip: 127.0.0.1
  17.     # use host since 1.9.2
  18.     host: localhost
  19.     port: 8889
  20. # ... more slaveof

监控同步状态

info 命令返回的信息

  1. ssdb 127.0.0.1:8899> info
  2. binlogs
  3. capacity : 10000000
  4. min_seq : 1
  5. max_seq : 74
  6. replication
  7. client 127.0.0.1:55479
  8. type : sync
  9. status : SYNC
  10. last_seq : 74
  11. replication
  12. slaveof 127.0.0.1:8888
  13. id : svc_2
  14. type : sync
  15. status : SYNC
  16. last_seq : 10023
  17. copy_count : 0
  18. sync_count : 44

binlogs

当前实例的写操作状态.

  • capacity: binlog 队列的最大长度
  • min_seq: 当前队列中的最小 binlog 序号
  • max_seq: 当前队列中的最大 binlog 序号

replication

可以有多条 replication 记录. 每一条表示一个连接进来的 slave(client), 或者一个当前服务器所连接的 master(slaveof).

  • slaveof|client host:port, 远端 master/slave 的 host:port.
  • type: 类型, sync|mirror.
  • status: 当前同步状态, DISCONNECTED|INIT|OUT_OF_SYNC|COPY|SYNC.
  • last_seq: 上一条发送或者收到的 binlog 的序号.
  • slaveof.id: master 的 id(这是从 slave's 角度来看的, 你永远不需要在 master 上配置它自己的 id).
  • slaveof.copy_count: 在全量同步时, 已经复制的 key 的数量.
  • slaveof.sync_count: 发送或者收到的 binlog 的数量.

关于 status:

  • DISCONNECTED: 与 master 断开了连接, 一般是网络中断.
  • INIT: 初始化状态.
  • OUT_OF_SYNC: 由于短时间内在 master 有大量写操作, 导致 binlog 队列淘汰, slave 丢失同步点, 只好重新复制全部的数据.
  • COPY: 正在复制基准数据的过程中, 新的写操作可能无法及时地同步.
  • SYNC: 同步状态是健康的.

判断同步状态

对于 masterbinlogs.max_seq 是指当前实例上的最新一次的写(写/更新/删除)操作的序号, replication.client.last_seq 是指已发送给 slave 的最新一条 binlog 的序号.

所以, 如果你想判断主从同步是否已经同步到位(实时更新), 那么就判断 binlogs.max_seq 和 replication.client.last_seq 是否相等。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号