ssdb cluster + keepalived para construir el combate real 6. Reparación de excepciones maestras y en espera
Medio ambiente
Sistema operativo: CentOS Linux versión 7.6.1810 (Core)
ssdb: 1.9.7
keepalived: keepalived-2.0.16
IP:
maestro: 10.11.100.87
esclavo: 10.11.100.88
vip : 10.11.100.89
Experimento de reparación de anomalías
Debido a las fluctuaciones de la red y el tiempo de inactividad, a menudo conduce a fallas en la sincronización de la base de datos. Simulemos el experimento de reparación de las excepciones de sincronización principal y en espera.
1. anormalidad de la simulación
Cierre la biblioteca esclava, escriba los datos en la biblioteca maestra y luego inicie la biblioteca esclava. Ahora mire el estado del clúster en la biblioteca maestra:
ssdb 10.11.100.87:8888> info
version
1.9.7
links
1
total_calls
43
dbsize
141
binlogs
capacity : 20000000
min_seq : 0
max_seq : 13
replication
client 10.11.100.88:35708
type : sync
status : OUT_OF_SYNC
last_seq : 16
serv_key_range
kv : "" - ""
hash: "" - ""
zset: "" - ""
list: "" - ""
data_key_range
kv : "a" - "z"
hash: "" - ""
zset: "" - ""
list: "" - ""
leveldb.stats
Compactions
Level Files Size(MB) Time(sec) Read(MB) Write(MB)
--------------------------------------------------
2 1 0 0 0 0
19 result(s) (0.001 sec)
(0.001 sec)
Mirando el estado del clúster desde el lado de la biblioteca:
ssdb 10.11.100.88:8888> info
version
1.9.7
links
1
total_calls
5
dbsize
739
binlogs
capacity : 20000000
min_seq : 1
max_seq : 17
replication
slaveof 10.11.100.87:8888
id : svc_1
type : sync
status : OUT_OF_SYNC
last_seq : 16
copy_count : 0
sync_count : 0
serv_key_range
kv : "" - ""
hash: "" - ""
zset: "" - ""
list: "" - ""
data_key_range
kv : "a" - "d"
hash: "" - ""
zset: "" - ""
list: "" - ""
leveldb.stats
Compactions
Level Files Size(MB) Time(sec) Read(MB) Write(MB)
--------------------------------------------------
0 2 0 0 0 0
19 result(s) (0.002 sec)
(0.002 sec)
La pantalla está todo OUT_OF_SYNC, la sincronización falla,
luego escribe nuevos datos en la biblioteca maestra, la biblioteca esclava no se sincronizará, el clúster se ha colgado
2. Reparación
En este caso, debe sincronizar manualmente los datos de la base de datos principal con la base de datos en espera:
Use el comando ssdb-dump en la biblioteca principal para hacer una copia de seguridad:
[root@localhost ssdb]# ./ssdb-dump 10.11.100.87 8888 ./backup.ssdb
ssdb-dump - SSDB backup command
Copyright (c) 2012-2015 ssdb.io
recv begin...
received 1 entry(s)
received 5 entry(s)
recv end
total dumped 5 entry(s)
Compactions
Level Files Size(MB) Time(sec) Read(MB) Write(MB)
--------------------------------------------------
compacting data...
Compactions
Level Files Size(MB) Time(sec) Read(MB) Write(MB)
--------------------------------------------------
2 1 0 0 0 0
backup has been made to folder: ./backup.ssdb
Detenga el servicio ssdb de la biblioteca:
[root@localhost ssdb]# ./ssdb-server ssdb.conf -s stop
ssdb-server 1.9.7
Copyright (c) 2012-2015 ssdb.io
Haga una copia de seguridad del directorio var como var.bak y cree un nuevo directorio var:
[root@localhost ssdb]# mv var var.bak
[root@localhost ssdb]# mkdir var
Transfiera backup.ssdb al directorio var de la biblioteca esclava en el lado de la biblioteca maestra:
[root@localhost ssdb]# scp -r ./backup.ssdb 10.11.100.88:/usr/local/ssdb/var
root@10.11.100.88's password:
LOG 100% 362 0.4KB/s 00:00
LOCK 100% 0 0.0KB/s 00:00
CURRENT 100% 16 0.0KB/s 00:00
MANIFEST-000002 100% 92 0.1KB/s 00:00
000004.log 100% 0 0.0KB/s 00:00
000005.ldb 100% 164 0.2KB/s 00:00
Inicie el servicio desde la biblioteca:
[root@localhost ssdb]# ./ssdb-server -d ssdb.conf
ssdb-server 1.9.7
Copyright (c) 2012-2015 ssdb.io
Luego verifique el estado del clúster:
[root@localhost ssdb]# ./ssdb-cli -h 10.11.100.87 -p 8888
ssdb (cli) - ssdb command line tool.
Copyright (c) 2012-2016 ssdb.io
'h' or 'help' for help, 'q' to quit.
ssdb-server 1.9.7
ssdb 10.11.100.87:8888> info
version
1.9.7
links
1
total_calls
45
dbsize
141
binlogs
capacity : 20000000
min_seq : 0
max_seq : 13
replication
client 10.11.100.88:35734
type : sync
status : SYNC
last_seq : 13
serv_key_range
kv : "" - ""
hash: "" - ""
zset: "" - ""
list: "" - ""
data_key_range
kv : "a" - "z"
hash: "" - ""
zset: "" - ""
list: "" - ""
leveldb.stats
Compactions
Level Files Size(MB) Time(sec) Read(MB) Write(MB)
--------------------------------------------------
2 1 0 0 0 0
19 result(s) (0.001 sec)
(0.001 sec)
Normal