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_seq
및 replication.client.last_seq
는 동일합니다.