SSDB 마스터-슬레이브 동기화 및 복제 구성 및 모니터링


Configuration

이전 버전의 경우 slaveof.ip 指定 master 的 IP 地址, 但对于新版本(1.9.2+), 你可以通过 slaveof.host.
을 통해 마스터의 호스트 이름(도메인 이름)을 지정해야 합니다.

마스터-슬레이브

#서버 1

replication:
    slaveof:

#서버 2

replication:
    slaveof:
        id: svc_1
    # sync|mirror, default is sync
    type: sync
    # use ip for older version
    #ip: 127.0.0.1
    # use host since 1.9.2
    host: localhost
    port: 8888

마스터-마스터

#서버 1

replication:
    slaveof:
        id: svc_2
    # sync|mirror, default is sync
    type: mirror
    # use ip for older version
    #ip: 127.0.0.1
    # use host since 1.9.2
    host: localhost
    port: 8889

#서버 2

replication:
    slaveof:
        id: svc_1
    # sync|mirror, default is sync
    type: mirror
    # use ip for older version
    #ip: 127.0.0.1
    # use host since 1.9.2
    host: localhost
    port: 8888

Multi-master

총 n개의 인스턴스를 포함하는 SSDB 인스턴스 그룹 그룹에서 각 인스턴스는 나머지 n-1개 인스턴스의 슬레이브여야 합니다.

replication:
    slaveof:
        id: svc_1
    # sync|mirror, default is sync
    type: mirror
    # use ip for older version
    #ip: 127.0.0.1
    # use host since 1.9.2
    host: localhost
    port: 8888
slaveof:
    id: svc_2
    # sync|mirror, default is sync
    type: mirror
    # use ip for older version
    #ip: 127.0.0.1
    # use host since 1.9.2
    host: localhost
    port: 8889
# ... more slaveof

동기화 상태 모니터링

info 명령은 정보를 반환합니다.

ssdb 127.0.0.1:8899> info
binlogs
    capacity : 10000000
    min_seq  : 1
    max_seq  : 74
replication
    client 127.0.0.1:55479
        type     : sync
        status   : SYNC
        last_seq : 74
replication
    slaveof 127.0.0.1:8888
        id         : svc_2
        type       : sync
        status     : SYNC
        last_seq   : 10023
        copy_count : 0
        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: 마스터의 ID(이는 슬레이브의 관점에서 볼 수 있으므로 마스터에서 구성할 필요가 없습니다. ) 자신의 ID).
  • slaveof.copy_count: 전체 동기화 중에 복사된 키 수.
  • slaveof.sync_count: 보내거나 받은 binlog 수.

상태 정보:

  • DISCONNECTED: 일반적으로 네트워크 중단으로 인해 마스터와의 연결이 끊어졌습니다.
  • INIT: 초기화 상태
  • OUT_OF_SYNC: 짧은 시간 동안 마스터에서 많은 수의 쓰기 작업으로 인해 binlog 대기열이 발생합니다. 제거되고 슬레이브는 동기화 지점을 잃어 모든 데이터를 다시 복제해야 합니다.
  • COPY: 기준 데이터를 복사하는 과정에서 새로운 쓰기 작업이 제때에 동기화되지 않을 수 있습니다.
  • SYNC: 동기화 상태가 정상입니다. .

동기화 상태 판단

마스터의 경우, < code style="box-sizing: border-box; 글꼴-가족: Monaco, Menlo, Consolas, 'Courier New', monospace; 글꼴 크기: 12.6 px; 상단 패딩: 2px; 색상: rgb(199, 37, 78); 테두리 반경: 4px; ">binlogs.max_seq는 현재 인스턴스의 최신 버전을 나타냅니다. 쓰기(쓰기/업데이트/삭제) 작업의 일련 번호, replication.client.last_seq는 슬레이브로 전송된 최신 binlog의 시퀀스 번호를 나타냅니다.binlogs.max_seq 是指当前实例上的最新一次的写(写/更新/删除)操作的序号, replication.client.last_seq 是指已发送给 slave 的最新一条 binlog 的序号.

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

그래서 원하는 경우 마스터-슬레이브 동기화가 이루어졌는지 판단하려면(실시간 업데이트) binlogs.max_seqreplication.client.last_seq는 동일합니다.
🎜