SSDB のマスター/スレーブ同期とレプリケーションの構成と監視


設定

古いバージョンの場合は、slaveof.ip を通じてマスターの 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

マルチマスター

合計 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: バイナリ キューの最大長
  • min_seq: 現在のキューの最小バイナリ シーケンス番号
  • max_seq: current キュー内の最大 binlog シーケンス番号

replication

複数の replication レコードが存在する可能性があります。各レコードは、現在のサーバーに接続されたスレーブ (client) またはマスター (slaveof) を表します。 ).

  • slaveof|client host:port、リモート マスター/スレーブの host:port。
  • type: type、sync|mirror.
  • status: 現在の同期ステータス、DISCONNECTED|INIT|OUT_OF_SYNC|COPY|SYNC.
  • last_seq: 送受信された最後のバイナリログのシーケンス番号。
  • slaveof.id: マスターの ID (これはスレーブの観点からのものであり、マスター上で独自の ID を設定する必要はありません)
  • slaveof.copy_count: 完全同期中にコピーされた内容キーの数。
  • slaveof.sync_count: 送受信されたビンログの数。

ステータスについて:

  • DISCONNECTED: マスターとの接続が切断されました。通常はネットワークの中断が原因です。
  • INIT: 初期化状態です。
  • OUT_OF_SYNC: 多数の書き込み操作が原因です。短期間でマスターにアクセスし、その結果、binlog キューが削除され、スレーブは同期ポイントを失い、すべてのデータを再度コピーする必要があります。
  • COPY: ベンチマーク データをコピーするプロセス中に、新しい書き込み操作は時間内に同期されない可能性があります。
  • SYNC: 同期ステータスは正常です。

同期ステータスを確認してください。

マスターの場合binlogs.max_seq は、現在のインスタンスの最新のものを指します。 書き込み (書き込み/更新/削除) 操作のシリアル番号、replication.client.last_seq は、シリアル番号を指します。スレーブに送信された最新の binlog の番号。

したがって、マスターがスレーブ同期が同期されているかどうか (リアルタイム更新) を確認したい場合は、binlogs.max_seq## かどうかを確認します。 # と replication.client.last_seq は等しいです。