Configuration et surveillance de la synchronisation et de la réplication maître-esclave SSDB


Configuration

Pour les anciennes versions, vous devez préciser le nom d'hôte (nom de domaine) du maître via slaveof.ip 指定 master 的 IP 地址, 但对于新版本(1.9.2+), 你可以通过 slaveof.host.

Maître-Esclave

#serveur 1

replication:
    slaveof:

#serveur 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

Maître-Maître

#serveur 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

#serveur 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-maître

Dans un groupe de groupes d'instances SSDB contenant un total de n instances, chaque instance doit asservir les n-1 instances restantes.

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

Surveiller l'état de synchronisation

la commande info renvoie des informations

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

L'état de l'opération d'écriture de l'instance actuelle.

  • capacity : la longueur maximale de la file d'attente du journal binaire
  • min_seq : le numéro de séquence minimum du journal binaire dans la file d'attente actuelle
  • max_seq : la séquence maximale du journal binaire numéro dans la file d'attente actuelle

réplication

Il peut y en avoir plusieurs 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 : le numéro de séquence du dernier binlog envoyé ou reçu
  • slaveof.id : l'identifiant du maître (c'est du point de vue de l'esclave, vous n'avez jamais besoin de le configurer sur le maître. ) propre identifiant).
  • slaveof.copy_count : Pendant la synchronisation complète, le nombre de clés qui ont été copiées.
  • slaveof.sync_count : Le nombre de binlogs envoyés ou reçus.

À propos du statut :

  • DISCONNECTED : La connexion avec le maître est déconnectée, généralement en raison d'une interruption du réseau.
  • INIT : État d'initialisation
  • OUT_OF_SYNC : En raison d'un grand nombre d'opérations d'écriture sur le maître dans un court laps de temps, la file d'attente binlog. est éliminé et l'esclave perd le point de synchronisation et doit répliquer à nouveau toutes les données. sain.
  • Jugez l'état de synchronisation
Pour master

, < code style="box-sizing: border-box; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12,6 px ; rembourrage en haut : 2 px ; rembourrage en bas : 2 px ; couleur : RVB (199, 37, 78) ; ;">binlogs.max_seq fait référence à la dernière version sur l'instance actuelle. Le numéro de série d'une opération d'écriture (écriture/mise à jour/suppression), replication.client.last_seq fait référence au numéro de séquence du dernier journal binaire envoyé à l'esclave.

Donc, si vous voulez juger si la synchronisation maître-esclave est en place (mise à jour en temps réel), puis jugez binlogs.max_seq et replication.client.last_seq est égal.