Schalter

In SKOOR 6.2 hat sich die Semantik des switch erheblich geändert. In früheren Versionen hat der switch Befehl die Rollen von Primary und Standby vollständig vertauscht. Seit SKOOR 6.2 führt der Switch-Befehl nur noch ein Failover von Primary auf Standby durch. Um wieder eine funktionierende Replikation zu erhalten, muss auf dem neuen Primärserver manuell ein createslave ausgeführt werden. Dies deckt die üblichen Anwendungsfälle viel besser ab, indem es viel schnellere Failover bietet.

Ausfallsicherung

Dies kann erreicht werden, indem der folgende Befehl auf dem aktuellen Standby- oder Primary ausgeführt wird. Wenn der primäre nicht mehr erreichbar ist, muss er auf dem Standby ausgeführt werden:

# /opt/eranger/bin/eranger-server-replication.pl switch

10.1.0.89 
10.1.0.89 checking ssh for user reranger


localhost (10.1.0.89) is slave, master 10.1.0.88 is up

will convert localhost to master
and 10.1.0.88 to slave

press ENTER to continue, Ctrl-C to abort >

Drücken Sie die Eingabetaste , um fortzufahren. Die Ausgabe sollte wie folgt aussehen:

10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 pre s2m
10.1.0.88 calling eranger-server-syncfs.sh 10.1.0.89
10.1.0.88 calling eranger-server-sync-collector-bin.pl
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 pre m2s
10.1.0.88 OK> 10.1.0.90 removed from eth0
10.1.0.89 from slave to master
10.1.0.89 current master: 10.1.0.88
10.1.0.89 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 httpd already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-report (service eranger-report )..
10.1.0.89 done
10.1.0.89 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-server (service eranger-server )..
10.1.0.89 done
10.1.0.89 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ethd (service eranger-ethd )..
10.1.0.89 done
10.1.0.89 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.89 done
10.1.0.89 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-collector (service eranger-collector )..
10.1.0.89 delete /opt/eranger/collector/ringbuffer1.bin
10.1.0.89 done
10.1.0.89 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-agent already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.89 done
10.1.0.89 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 httpd already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-report already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-server already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ethd (service eranger-ethd )..
10.1.0.89 done
10.1.0.89 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.89 done
10.1.0.89 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-collector already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-agent already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.89 done
10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 post s2m
10.1.0.89 OK> 10.1.0.90 added to eth0.
10.1.0.89 OK> 10.1.0.90 configured in /etc/sysconfig/network-scripts/ifcfg-eth0:0.
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 post m2s
10.1.0.89 
10.1.0.89 checking ssh for user reranger

Das Skript wird:

  • Machen Sie den aktuellen Standby zum neuen primären

  • Führen Sie alle Pre-Skripts aus, wenn sie in eranger-replication.cfg definiert sind

  • Deaktivieren Sie die Dateisystemsynchronisierung (syncfs-Dienst) auf dem alten primären

  • Stoppen Sie die Dienste eranger- Server , eranger- Kollektor und eranger-report auf der alten Primärdatenbank

  • starten Sie die Dienste eranger- Server , eranger- Kollektor und eranger-report auf der neuen Primary

  • Starten Sie httpd und eranger- Agent , wenn er nicht bereits auf dem Primär- und Standby-Server läuft

  • Melden Sie sich bei allen externen Kollektoren an und ändern Sie die Kollektor so, dass diese ihre Daten an den neuen primären Server liefern (funktioniert nicht mit Server _Adresse Parameter eine http-Adresse setzen)

  • Führen Sie alle Post-Scripts aus, wenn sie in eranger-replication.cfg definiert sind

Replikation zwischen neuem und altem Primärserver aktivieren

Dieser Schritt sollte nur durchgeführt werden, wenn die alte Primärseite noch verfügbar ist und geplant ist, wieder auf das alte System zurückzuwechseln.

Um eine laufende Replikation vom neuen Primary zum neuen Standby zu erhalten, muss auf dem neuen Primary ein createstandby durchgeführt werden.

/opt/eranger/bin/eranger-server-replication.pl createslave

Virtuelle IP

Das obige Beispiel wurde durchgeführt, während die alte Primärdatenbank noch lief und verfügbar war. Nach einem erfolgreichen Wechsel müssen die Endbenutzer benachrichtigt werden, stattdessen die IP-Adresse oder den DNS-Namen des neuen primären Servers zu verwenden.

Das Zuweisen einer virtuellen IP und deren Verschieben zur aktiven primären Adresse mit IP-Aliasing wird unterstützt (siehe Virtuelle IP-Adresse mit Pre- und Post-Skripten einrichten ) und das entsprechende Pre- und Post-Skript vip-switch.sh wird oben verwendet Beispiel.

Zurückschalten

Vor dem Zurückschalten auf die alte Primary muss man auf der neuen Primary einen createslave durchführen.

Die aktuelle Primärdatenbank muss nicht ausgeführt werden, damit die Standby-Instanz übernehmen kann. Der Schalter kann auch auf Standby ausgegeben werden, wenn die aktuelle Primärseite defekt (nicht verfügbar) ist. Vorsicht ist geboten, wenn Sie die alte primäre wieder online schalten, da sie immer noch als primary konfiguriert ist. Stoppen Sie die Prozesse eranger- Server , eranger- Kollektor und eranger-scheduler auf der alten primären und setzen Sie den createslave-Befehl auf der aktuell aktiven primären ab. Um zu den Standardrollen zurückzukehren, geben Sie erneut den Befehl switch ein.

Es wird angenommen, dass die Umschaltung nur temporär ist und dass nach dem erneuten Hochfahren der Primärseite eine weitere Umschaltung zurück auf die ursprüngliche Primärseite durchgeführt wird. Daher werden die IP-Adressen von Primary und Standby in der eranger-replication.cfg bei einem Switch nicht getauscht. Das Zurückschalten funktioniert auch mit diesem Setup, nur wenn Sie eine neue createslave-Operation von der neuen primären durchführen, müssen die IP-Adressen in eranger-replication.cfg geändert werden.

SKOOR Engine nach dem Umschalten

Nach dem Wechsel zeigt der Statusbefehl eRanger.sh die folgende Ausgabe auf der neuen Primärseite:

# /opt/eranger/bin/eRanger.sh status
Running /opt/eranger/bin/eRanger.sh with root privileges...
eRanger Server installation...

Current eRanger Status:

Status postgresql:              started
Status postgresql replication:  started
Status postfix:                 started
Status rsyslog:                 started
Status snmptrapd:               stopped
Status http server:             started
Status eRanger Server:          started
Status eRanger Collector:       started
Status eRanger Report:          started
Status eRanger Agent:           started
Status eRanger Webservice:      started

und die folgende Ausgabe auf dem neuen Standby:

# /opt/eranger/bin/eRanger.sh status
Running /opt/eranger/bin/eRanger.sh with root privileges...
eRanger Server installation...

Current eRanger Status:

Status postgresql:              started
Status postgresql replication:  started
Status postfix:                 started
Status rsyslog:                 started
Status snmptrapd:               stopped
Status http server:             started
Status smsd:                    stopped
Status eRanger Server:          stopped (postgresql slave)
Status eRanger Collector:       stopped (postgresql slave)
Status eRanger Report:          stopped (postgresql slave)
Status eRanger Agent:           stopped
Status eRanger Webservice:      started

Nicht interaktiver Modus

Der Switch kann in einem nicht interaktiven Modus ausgeführt werden, indem die Option -f hinzugefügt wird. Verwenden Sie dies, wenn das Skript unbeaufsichtigt ausgeführt werden muss und falls einer oder einige der Kollektoren eine SKOOR-Version installiert haben, die nicht mit der auf dem Primär- und Standby-Server identisch ist. Das Folgende zeigt die Ausgabe, wenn der Schalter mit -f auf dem aktuellen Standby ausgeführt wird, dh dem ursprünglichen primary . Dieser zweite switch-Befehl stellt die ursprünglichen Rollen von primary und standby wieder her.

# /opt/eranger/bin/eranger-server-replication.pl -f switch
10.1.0.88 
10.1.0.88 checking ssh for user reranger


localhost (10.1.0.88) is slave, master 10.1.0.89 is up

will convert localhost to master
and 10.1.0.89 to slave
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 pre s2m
10.1.0.89 calling eranger-server-syncfs.sh 10.1.0.88
10.1.0.89 calling eranger-server-sync-collector-bin.pl
10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 pre m2s
10.1.0.89 OK> 10.1.0.90 removed from eth0
10.1.0.88 from slave to master
10.1.0.88 current master: 10.1.0.89
10.1.0.88 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 httpd already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-report (service eranger-report )..
10.1.0.88 done
10.1.0.88 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-server (service eranger-server )..
10.1.0.88 done
10.1.0.88 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ethd (service eranger-ethd )..
10.1.0.88 done
10.1.0.88 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.88 done
10.1.0.88 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-collector (service eranger-collector )..
10.1.0.88 delete /opt/eranger/collector/ringbuffer1.bin
10.1.0.88 done
10.1.0.88 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-agent already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.88 done
10.1.0.88 copied file to /var/lib/pgsql/data/
NOTICE:  pg_stop_backup complete, all required WAL segments have been archived
10.1.0.88 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 httpd already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-report already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-server already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ethd (service eranger-ethd )..
10.1.0.88 done
10.1.0.88 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.88 done
10.1.0.88 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-collector already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-agent already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.88 done
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 post s2m
10.1.0.88 OK> 10.1.0.90 added to eth0.
10.1.0.88 OK> 10.1.0.90 configured in /etc/sysconfig/network-scripts/ifcfg-eth0:0.
10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 post m2s
10.1.0.88 
10.1.0.88 checking ssh for user reranger