Wenn die primäre Appliance ausfällt, können Sie einen Datenbank-Failover durchführen. In diesem Abschnitt wird die Vorgehensweise für Appliances mit Versionen, die älter als 9.0.0 sind, beschrieben.
Wenn die primäre Appliance ausfällt, ist die sekundäre Datenbank schreibgeschützt. Führen Sie bei einem Failover die folgenden Aufgaben aus:
- Aktivieren von Schreibvorgängen auf der sekundären Datenbank
- Permanentes Heraufstufen der sekundären Dienstanbieter-Appliance auf die primäre Appliance
- Permanentes Heraufstufen der sekundären Mandanten-Appliance auf die primäre Appliance
- Neustart der primären Appliance
Aktivieren von Schreibvorgängen auf der sekundären Datenbank
Ziel dieses Verfahrens ist das Wechseln der Masterdatenbank zur sekundären Appliance (Mandant oder Dienstanbieter), wenn die primäre Appliance nicht verfügbar ist. Ziel ist es, Schreibvorgänge zu aktivieren, damit die Datenbank der sekundären Appliance die Masterdatenquelle ist.
- Halten Sie „dtService“, „av-manager“ und den Diagnosedienst sowohl auf der primären (sofern zugänglich) als auch auf der sekundären Appliance an:
sudo service dtService stop sudo service av-manager stop sudo service diagnose stop
- Halten Sie alle Slony-Daemons sowohl auf den primären (sofern zugänglich) als auch auf den sekundären Appliances an:
sudo killall slon
- Stellen Sie auf der sekundären Appliance eine Verbindung mit der FDB-Datenbank her und führen Sie den folgenden SQL-Befehl aus:
drop schema _slony cascade;
- Wiederholen Sie Schritt 3 für die EDB und AVDB, wenn die Appliance zu einer Mandantenorganisation gehört.
- Wenn die Datenbank auf der primären Appliance weiterhin zugänglich ist, sichern Sie die Datenbank, kopieren Sie die Datenbankdateien und stellen Sie die Datenbank in der sekundären Appliance wieder her (siehe Sichern und Wiederherstellen von Datenbanken).
- Öffnen Sie die Datei „/usr/local/desktone/release/active/conf/fdb.properties“ zum Bearbeiten und Entfernen der IP-Adresse der primären Appliance.
- Wiederholen Sie Schritt 6 für „/usr/local/desktone/release/active/edb.properties“, wenn die Appliance zu einer Mandantenorganisation gehört.
- Wiederholen Sie Schritt 6 für „/usr/local/desktone/release/active/avdb.properties“, wenn die Appliance zu einer Mandantenorganisation gehört.
- Legen Sie die Umgebungsvariablen „DB_HOST“ und „DB_PASSWORD“ fest:
export DB_HOST=IP_of_TA2_appliance export DB_PASSWORD=database_password
- Führen Sie das Skript „av-setup“ als Sudo aus:
sudo /usr/local/desktone/scripts/av-setup
- Öffnen Sie die Datei „applications.properties“ zur Bearbeitung:
vi /usr/local/xmpms/diagnose/config/application.properties
- Bearbeiten Sie in der Datei „applications.properties“ die Zeilen wie folgt:
db.jdbc.url=jdbc:postgresql://<ip address>:5432/avdb?ssl=true db.fdb.jdbc.url=jdbc:postgresql://<ip address>:5432/fdb?ssl=true
- Starten Sie „dtService“, „av-manager“ und den Diagnosedienst auf der sekundären Appliance:
service dtService start service av-manager start service diagnose start
Heraufstufen der sekundären Dienstanbieter-Appliance auf die primäre Appliance
Führen Sie die folgenden Schritte aus, um die sekundäre Dienstanbieter-Appliance dauerhaft auf die primäre Dienstanbieter-Appliance heraufzustufen.
In diesem Beispiel ist die primäre Appliance „A“, die sekundäre Appliance ist „B“ und auf Appliance A ist zugänglich (Datenbank in dieser Appliance ist zugänglich).
- Halten Sie „dtService“ auf allen Dienstanbieter-Appliances an:
service dtService stop
- Melden Sie sich bei allen Dienstanbieter-Appliances an.
- Öffnen Sie die Datei „/usr/local/desktone/release/active/conf/fdb.properties“ zum Bearbeiten und Entfernen der IP-Adresse der ausgefallenen primären Appliance.
- Halten Sie alle Slony-Daemons auf allen Dienstanbieter-Appliances an:
killall slon
- Stellen Sie auf der primären Appliance eine Verbindung mit der FDB-Datenbank her und führen Sie den folgenden SQL-Befehl aus:
drop schema _slony cascade;
- Führen Sie die folgenden SQL-Befehle in der sekundären Appliance des Datencenters aus (ersetzen Sie „A“ und „B“ durch die Namen Ihrer Appliances):
fdb=# update appliance set capabilities = (capabilities & 65343) where name='A'; fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
- Starten Sie „dtService“ auf den Dienstanbieter-Appliances mit Ausnahme der ausgefallenen Appliance:
service dtService start
Bestätigen Sie, dass die Appliance aktiv ist, bevor Sie mit dem nächsten Schritt fortfahren.
- Halten Sie „dtService“ auf allen Dienstanbieter-Appliances mit Ausnahme der Master-Dienstanbieter-Appliance an (die sekundäre Dienstanbieter-Appliance ist die Master-Appliance):
service dtService stop
- Starten Sie die Slon-Daemons in allen Dienstanbieter-Appliances:
/usr/local/desktone/scripts/start_slon_fdb.sh
- Melden Sie sich über Ihren Browser im Servicecenter der Master-Dienstanbieter-Appliance an (die sekundäre Dienstanbieter-Appliance ist die Master-Appliance) und führen Sie den Vorgang zur Slony-Neuinitialisierung durch:
- Navigieren Sie zu .
- Wählen Sie in der Dropdown-Liste für die Organisations-ID die Option „1000“ aus.
- Klicken Sie auf die Schaltfläche , um die Slony-Neuinitialisierung zu aktivieren.
- Wenn die Slony-Neuinitialisierung abgeschlossen ist, führen Sie den folgenden Befehl in der FDB der sekundären Appliance im Datencenter aus:
SELECT a.set_id, a.set_comment, (SELECT last_value FROM _slony.sl_local_node_id) AS local_id, CASE WHEN a.set_origin = (SELECT last_value FROM _slony.sl_local_node_id)THEN TRUE ELSE FALSE END AS master_node from _slony.sl_set a;
Die Ausgabe sollte wie folgt erscheinen:
set_id | set_comment | local_id | master_node --------+--------------------------+----------+------------- 1 | All tables and Sequences | 1 | t (1 row)
- Starten Sie „dtService“ auf allen Appliances mit Ausnahme der ausgefallenen Dienstanbieter-Appliance.
service dtService start
Heraufstufen der sekundären Mandanten-Appliance auf die primäre Appliance
Führen Sie die folgenden Schritte aus, um die sekundäre Mandanten-Appliance dauerhaft auf die primäre Mandanten-Appliance heraufzustufen.
In diesem Beispiel ist die primäre Appliance „A“, die sekundäre Appliance ist „B“ und auf Appliance A ist zugänglich (Datenbank in dieser Appliance ist zugänglich).
- Halten Sie „dtService“ auf allen Mandanten-Appliances in der Organisation an:
service dtService stop
- Melden Sie sich bei allen Mandanten-Appliances in der Organisation an.
- Öffnen Sie die Datei „/usr/local/desktone/release/active/conf/fdb.properties“ zum Bearbeiten und Entfernen der IP-Adresse der ausgefallenen primären Appliance.
- Halten Sie alle Slony-Daemons auf allen Mandanten-Appliances in der Organisation an:
killall slon
- Sichern Sie ggf. die Datenbank auf der Master-Appliance und stellen Sie sie auf den Slave-Appliances wieder her.
- Stellen Sie in den Master- und Slave-Appliances eine Verbindung mit der FDB-Datenbank her und führen Sie den folgenden SQL-Befehl aus:
drop schema _slony cascade;
- Führen Sie die folgenden SQL-Befehle auf der Master-Dienstanbieter-Appliance aus (ersetzen Sie „A“ und „B“ durch die Namen Ihrer Appliances):
fdb=# update appliance set capabilities = (capabilities & 65343) where name='A'; fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
- Starten Sie die Slon-Daemons auf allen Mandanten-Appliances in der Organisation:
/usr/local/desktone/scripts/start_slon_fdb.sh /usr/local/desktone/scripts/start_slon_edb.sh /usr/local/desktone/scripts/start_slon_avdb.sh
- Melden Sie sich über Ihren Browser im Servicecenter der Master-Dienstanbieter-Appliance an und führen Sie den Vorgang zur Slony-Neuinitialisierung durch:
- Navigieren Sie zu .
- Wählen Sie die Organisations-ID für den Mandanten aus der Dropdown-Liste für die Organisations-ID aus.
- Wählen Sie für die Bezeichnung der DB-Instanz die Option „Fabric“ aus.
- Klicken Sie auf die Schaltfläche , um die Slony-Neuinitialisierung zu aktivieren.
- Wenn die Slony-Neuinitialisierung abgeschlossen ist, führen Sie den folgenden Befehl in der FDB der sekundären Mandanten-Appliance im Datencenter aus:
SELECT a.set_id, a.set_comment, (SELECT last_value FROM _slony.sl_local_node_id) AS local_id, CASE WHEN a.set_origin = (SELECT last_value FROM _slony.sl_local_node_id) THEN TRUE ELSE FALSE END AS master_node from _slony.sl_set a;
Die Ausgabe sollte wie folgt erscheinen (wenn die primäre Appliance im ersten Datencenter ausgefallen ist):
set_id | set_comment | local_id | master_node --------+--------------------------+----------+------------- 1 | All tables and Sequences | 1 | t (1 row)
- Starten Sie „dtService“ auf allen Mandanten-Appliances mit Ausnahme der ausgefallenen Mandanten-Appliance.
service dtService start
Neustart der primären Appliance
Wenn Sie die primäre Appliance nach einem Failover neu starten, führen Sie eine Slony-Neuinitialisierung sowohl auf der EDB als auch auf der AVDB durch.