Vertauschen der Rolle von Datenbanken zwischen dem primären und dem Replikationsknoten
Durch die Verwendung der Rollenumkehr kann der Benutzer die Rolle eines Replikats und des Primärspeichers für eine oder mehrere Datenbanken tauschen.
- Tauschen Sie die Rollen der Knoten von Datenbanken:
- senden.
- ohne dass eine vollständige Sicherung auf dem neuen primären Rechner und eine Wiederherstellung auf einem neuen Replikat erforderlich ist.
- ohne die Notwendigkeit, die Datenbanken für die Replikation neu zu konfigurieren.
- Migrieren Sie ihre Lese-/Schreibanwendungen auf die Systeme, die zuvor in der Replikationsrolle waren, wobei die DR-Fähigkeit erhalten bleibt.
- Testen Sie regelmäßig die Bereitschaft der Replikationssysteme auf ihre DR-Fähigkeit.
Vorbereitende Schritte
Bevor der Benutzer den Rollentausch initiieren kann, stellen Sie sicher, dass die folgenden Bedingungen zwischen dem primären Replikationsknoten und den Replikationsknoten der Datenbanken erfüllt sind.
- Alle Mitgliedsknoten der gegebenen Datenbanken sollten sich im aktiven Zustand befinden und in einem gesunden Zustand laufen.
- Die aktuelle Anwendungsreihenfolge auf dem Replikationsknoten der Datenbanken sollte mit der aktuellen Erfassungsreihenfolge auf dem Primärknoten übereinstimmen.Hinweis: Wenn die Anwendungsreihenfolge nicht gleich ist, gehen Sie wie folgt vor:
- Stoppen Sie die Erstellung neuer Backups für diese Datenbank im Quellsystem, indem Sie die Replikation für die gegebene DB stoppen. Weitere Informationen finden Sie unter Starten und Beenden der Replikation für eine bestimmte Datenbank.
- Verlängern Sie das Replikationsintervall für diese Datenbank vorübergehend erheblich, um die Häufigkeit neuer Sicherungen zu verringern und dem Zielsystem ausreichend Zeit zu geben, den Rückstand abzuarbeiten. Weitere Informationen finden Sie
nzdr update dbunter im Befehl nzdr. - Warten Sie darauf, dass die Replik die Primärdaten einholt.
- Der Benutzer muss aktive Transaktionen gegen die Datenbanken auf dem aktuellen primären Knoten abbrechen, um die Datenintegrität zwischen den Replikationsknoten zu wahren. Nach dem Rollentausch müssen alle Lese-/Schreibanwendungen auf dem alten primären Knoten verschoben werden, um auf dem neuen primären Knoten ausgeführt zu werden.
- Stellen Sie vor dem Rollentausch sicher, dass die Sicherheitsstufen auf beiden Systemen übereinstimmen. Alle Sicherheitsdeskriptoren auf dem Quellsystem müssen auf dem Zielsystem vorhanden sein. Sie können mit dem Befehl
nzbackup -globals -direin globales Backup erstellen und es mit dem Befehlnzrestore -globals -dirauf den Replikationssystemen wiederherstellen, um sicherzustellen, dass globale Daten wie Sicherheitsinformationen und Benutzerdefinitionen zwischen Primär- und Replikationssystemen synchronisiert werden. - Verbinden Sie sich mit dem primären Netezza Performance Server system als Admin-Benutzer und führen Sie die folgende Abfrage aus:
update _t_backup_history set BATCHID=TO_CHAR(TIMESTAMP(BACKUPSET), 'YYYYMMDDHH24MISS' :: VARCHAR(16)) where BATCHID='';Hinweis: Stellen Sie sicher, dass Sie diese Abfrage für jeden Rollentausch ausführen. - Wenn Sie die Rollenumkehr zum ersten Mal für eine bestimmte Datenbank auf einem der Replikationsknoten durchführen, führen Sie die folgenden Abfragen aus:
- Führen Sie auf dem Primärsystem die Abfrage
selectfür die Tabelle_t_restore_historyaus und prüfen Sie, ob sie0zurückgibt.$ nzsql <dbname> -c "select count(*) from _t_restore_history where TO_CHAR(TIMESTAMP(BACKUPSET), 'YYYYMMDDHH24MISS' :: VARCHAR(16)) = <backupset> and type=6 and status =1" - Führen Sie auf dem Replikatsystem die Abfrage
selectfür die Tabelle_t_backup_historyaus und prüfen Sie, ob sie0zurückgibt.$ nzsql <dbname> -c "select count(*) from _t_backup_history where TO_CHAR(TIMESTAMP(BACKUPSET), 'YYYYMMDDHH24MISS' :: VARCHAR(16)) = <backupset> and type=6 and status =1" - Führen Sie auf dem Primärsystem
_t_object tableaus und prüfen Sie, ob der Wert ungleich Null ist.$nzsql <dbname> -c "select count(*) from _t_object where objdb=current_db and RESTOREDOID != 0;"Wenn alle Bedingungen erfüllt sind, wenden Sie sich an den IBM, bevor Sie mit dem Rollentausch fortfahren.
WICHTIG:- Diese Abfragen gelten nur für NRS-Versionen unter 3.0.4.0
- Sobald die Rollenumkehrung durchgeführt wurde, stellen Sie sicher, dass Sie die
backupsetidnicht für manuelle inkrementelle Sicherungen verwenden, da dies zu Datenbeschädigungen führen kann. - Sie können
NRSREPL OpTypein dernzbackupundnzrestoreHistorie für die jeweilige Datenbank sehen, sobald der Rollentausch durchgeführt wurde.
Hinweis: Um Details zuBACKUPSETzu erhalten, führen Sienzdr list dbaus. Weitere Informationen finden Sie unter Auflistung von Replikationsdatenbanken - Führen Sie auf dem Primärsystem die Abfrage
Vorgehensweise
ALL mit der Option --db-name verwenden, anstatt die Liste der Namen im Befehl nzdr change role anzugeben.- Holen Sie den Status der Datenbanken von allen Mitgliedsknoten und vergewissern Sie sich, dass sie die Voraussetzungen für die Rollenumkehr erfüllen.
nzdr status node nzdr status db --db-name <DB1>,<DB2> --detailsBeispiel:[root@rajnrs11 ~]# nzdr status node +-------------+-------------+-------------+----------+ | serial-no | node-name | reachable | health | +=============+=============+=============+==========+ | 1 | CPDS-A | Yes | Healthy | +-------------+-------------+-------------+----------+ | 2 | CPDS-B | Yes | Healthy | +-------------+-------------+-------------+----------+ [root@rajnrs11 ~]# nzdr status db --db-name UDB50,UDB49 --details Databases - 1. UDB50 Primary: Node: CPDS-B Last capture timestamp: Tue 03 Jun 2025 03:40 AM PDT Last capture seq no: 11 Last pruned capture seq no: 10 Last reported capture error: None Replication status: Active Replicas: Node: CPDS-A Last apply timestamp: Tue 03 Jun 2025 04:25 AM PDT Last apply seq no: 11 Last pruned apply seq no: 11 Last reported apply error: None Replication status: Active 2. UDB49 Primary: Node: CPDS-B Last capture timestamp: Tue 03 Jun 2025 03:40 AM PDT Last capture seq no: 11 Last pruned capture seq no: 10 Last reported capture error: None Replication status: Active Replicas: Node: CPDS-A Last apply timestamp: Tue 03 Jun 2025 04:25 AM PDT Last apply seq no: 11 Last pruned apply seq no: 11 Last reported apply error: None Replication status: Active Note: If node replication status is suspended then node replication status takes precedence over database replication status. - Starten Sie den Befehl zur Rollenumkehr, indem Sie den gewünschten Replikationsknotennamen der Datenbanken verwenden.
nzdr change role --db-name <DB1>,<DB2> --node-name <REPLICA NODE NAME> --role-type primary --beginWenn alle Bedingungen erfüllt sind, startet dieser Befehl einen On-Demand-Erfassungsauftrag auf der aktuellen Primärdatei.
Beispiel:[root@rajnrs11 ~]# nzdr change role --node-name CPDS-A --db-name UDB49,UDB50 --role-type primary --begin Successfully started begin role reversal job with id 19 for the following databases: UDB49, UDB50. You can monitor the status of this job via 'nzdr job --node-name CPDS-B --job-id 19' Monitor the status of these databases via command below. 'nzdr status db --details' command. Once the Replication Status of these databases changes to 'Role Reversal (Pending)' on the Primary and Replica nodes, you can then proceed with 'nzdr change role' command using the '--end' option to complete the change role process - Überwachen Sie den Fortschritt der Anfangsphase des Rollentauschs, indem Sie den Auftragsstatus an der Primärstelle sowie den Status der Datenbanken überprüfen.
nzdr job --node-name <PRIMARY NODE> --job-id <JOB ID> nzdr status db --db-name <DB1>,<DB2> --detailsWarten Sie, bis der Status des Auftrags auf
Completedund der Replikationsstatus der Datenbank auf allen Knoten vonActiveaufRole Reversal (Pending)wechselt.Beispiel:[root@rajnrs11 ~]# nzdr job --node-name CPDS-B --job-id 19 Job Id : 19 Job Type : ROLE_BEGIN_JOB +-----------+------------------+--------------+-------------+ | db-name | capture-seq-no | job-status | job-error | +===========+==================+==============+=============+ | UDB49 | -1 | Running | | +-----------+------------------+--------------+-------------+ | UDB50 | -1 | Running | | +-----------+------------------+--------------+-------------+ [root@rajnrs11 ~]# nzdr job --node-name CPDS-B --job-id 19 Job Id : 19 Job Type : ROLE_BEGIN_JOB +-----------+------------------+--------------+-------------+ | db-name | capture-seq-no | job-status | job-error | +===========+==================+==============+=============+ | UDB49 | 12 | Completed | | +-----------+------------------+--------------+-------------+ | UDB50 | 12 | Completed | | +-----------+------------------+--------------+-------------+[root@rajnrs11 ~]# nzdr status db --db-name UDB50,UDB49 --details Databases - 1. UDB50 Primary: Node: CPDS-B Last capture timestamp: Tue 03 Jun 2025 05:43 AM PDT Last capture seq no: 12 Last pruned capture seq no: 10 Last reported capture error: None Replication status: Role Reversal (Pending) Replicas: Node: CPDS-A Last apply timestamp: Tue 03 Jun 2025 05:57 AM PDT Last apply seq no: 12 Last pruned apply seq no: 11 Last reported apply error: None Replication status: Role Reversal (Pending) 2. UDB49 Primary: Node: CPDS-B Last capture timestamp: Tue 03 Jun 2025 05:43 AM PDT Last capture seq no: 12 Last pruned capture seq no: 10 Last reported capture error: None Replication status: Role Reversal (Pending) Replicas: Node: CPDS-A Last apply timestamp: Tue 03 Jun 2025 05:57 AM PDT Last apply seq no: 12 Last pruned apply seq no: 11 Last reported apply error: None Replication status: Role Reversal (Pending) Note: If node replication status is suspended then node replication status takes precedence over database replication status. - Schließen Sie den Prozess der Rollenumkehr für die erforderlichen Datenbanken ab. Wenn sich der Replikationsstatus der Datenbanken auf allen Knoten zu
Role Reversal (Pending)ändert, geben Sie den folgenden Befehl ein, um den Rollentauschvorgang abzuschließen.nzdr change role --db-name <DB1>,<DB2> --node-name <REPLICA NODE NAME> --role-type primary --endBeispiel:[root@rajnrs11 ~]# nzdr change role --node-name CPDS-A --db-name UDB49,UDB50 --role-type primary --end Successfully started end role reversal job with id 50 for the following databases: UDB49, UDB50. You can monitor the status of this job via the command below: 'nzdr job --node-name CPDS-A --job-id 50' - Überwachen Sie den Fortschritt der Endphase des Rollentauschs, indem Sie den Jobstatus in der Primärdatenbank oder den Status der Datenbanken überprüfen.
nzdr job --node-name <PRIMARY NODE> --job-id <JOB ID> nzdr status db --db-name <DB1>,<DB2> --detailsStellen Sie sicher, dass die- Status der Stelle in
Completedstate. - Der Abschnitt Primäre und Replik spiegelt den Rollenwechsel wider.
- Stellen Sie sicher, dass der Replikationsstatus der Datenbank auf
Activegeändert wird.
Beispiel:[root@rajnrs11 ~]# nzdr job --node-name CPDS-A --job-id 50 Job Id : 50 Job Type : ROLE_END_JOB +---------+------------------+--------------+-----------+ | db-name | capture-seq-no | job-status | job-error| +=========+==================+==============+===========+ | UDB49 | -1 | Completed | | +---------+------------------+--------------+-----------+ | UDB50 | -1 | Completed | | +---------+------------------+--------------+-----------+ [root@rajnrs11 ~]# nzdr status db --db-name UDB50,UDB49 --details Databases - 1. UDB50 Primary: Node: CPDS-A Last capture timestamp: Tue 03 Jun 2025 05:57 AM PDT Last capture seq no: 12 Last pruned capture seq no: -1 Last reported capture error: None Replication status: Active Replicas: Node: CPDS-B Last apply timestamp: Tue 03 Jun 2025 05:43 AM PDT Last apply seq no: 12 Last pruned apply seq no: -1 Last reported apply error: None Replication status: Active 2. UDB49 Primary: Node: CPDS-A Last capture timestamp: Tue 03 Jun 2025 05:57 AM PDT Last capture seq no: 12 Last pruned capture seq no: -1 Last reported capture error: None Replication status: Active Replicas: Node: CPDS-B Last apply timestamp: Tue 03 Jun 2025 05:43 AM PDT Last apply seq no: 12 Last pruned apply seq no: -1 Last reported apply error: None Replication status: Active Note: If node replication status is suspended then node replication status takes precedence over database replication status. - Status der Stelle in