ssdb cluster + keepalived, um den eigentlichen Kampf zu erstellen. 6. Reparatur von Master- und Standby-Ausnahmen
Umwelt
Betriebssystem: CentOS Linux Release 7.6.1810 (Core)
ssdb: 1.9.7 keepalived: keepalived
-2.0.16
IP:
master: 10.11.100.87
Slave: 10.11.100.88
vip : 10.11.100.89
Anomaliereparaturversuch
Aufgrund von Netzwerkschwankungen und Ausfallzeiten kommt es häufig zu Fehlern bei der Datenbanksynchronisierung. Simulieren wir das Reparaturversuch der Haupt- und Standby-Synchronisierungsausnahmen.
1. Simulationsstörung
Schließen Sie die Slave-Bibliothek, schreiben Sie die Daten in die Master-Bibliothek und starten Sie dann die Slave-Bibliothek. Sehen Sie sich nun den Cluster-Status auf der Seite der Master-Bibliothek an:
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)
Betrachten des Clusterstatus von der Bibliotheksseite aus:
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)
Die Anzeige ist alles OUT_OF_SYNC, die Synchronisation schlägt fehl,
dann werden neue Daten in die Master-Bibliothek geschrieben, die Slave-Bibliothek wird nicht synchronisiert, der Cluster wurde aufgehängt
2. Reparieren
In diesem Fall müssen Sie die Daten in der Hauptdatenbank manuell mit der Standby-Datenbank synchronisieren:
Verwenden Sie den Befehl ssdb-dump in der Hauptbibliothek, um Folgendes zu sichern:
[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
Beenden Sie den ssdb-Dienst aus der Bibliothek:
[root@localhost ssdb]# ./ssdb-server ssdb.conf -s stop
ssdb-server 1.9.7
Copyright (c) 2012-2015 ssdb.io
Sichern Sie das var-Verzeichnis als var.bak und erstellen Sie ein neues var-Verzeichnis:
[root@localhost ssdb]# mv var var.bak
[root@localhost ssdb]# mkdir var
Übertragen Sie backup.ssdb in das var-Verzeichnis der Slave-Bibliothek auf der Seite der Master-Bibliothek:
[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
Starten Sie den Dienst aus der Bibliothek:
[root@localhost ssdb]# ./ssdb-server -d ssdb.conf
ssdb-server 1.9.7
Copyright (c) 2012-2015 ssdb.io
Überprüfen Sie dann den Clusterstatus:
[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