Befehle für die Replikationsdatenbank

Sie können die Konfiguration der Replikationsdatenbank mit Befehlen ändern.

Die Befehle lauten wie folgt:
  • CREATE DATABASE <db_name> REPLICATION SET <replsetname>

    Erstellt eine neue replizierte Datenbank und ordnet sie dem angegebenen Replikationsset zu. Sie müssen diesen Befehl vom primären System aus eingeben; wenn Sie ihn von einem Replikat aus eingeben, führt dies zu einem Fehler. Um eine bestehende Datenbank zum Satz hinzuzufügen, verwenden Sie den Befehl ALTER DATABASE.

  • ALTER DATABASE <db_name> REPLICATION SET <replsetname>

    Fügt eine vorhandene Datenbank zu einer Replikationsgruppe hinzu. Sie müssen diesen Befehl von der Primärstation aus eingeben.

    Die Ausgabe des Befehls ALTER DATABASE...REPLICATION SET initiiert die Replikation nach Werten, was die Leistung beeinträchtigen kann.

    Nachdem Sie eine Datenbank mit diesem Befehl zu einem Replikationssatz hinzugefügt haben, müssen Sie die erforderlichen Initialisierungsschritte mit den Befehlen nzreplanalyze -needsrecovery (sofern Sie die Datenbank nicht vor der Registrierung des Replikats zum Replikationssatz hinzufügen), nzreplbackup und nzreplrestore durchführen. Nachdem Sie den Knoten initialisiert oder wiederhergestellt haben, wird die by-SQL-Replikation wieder aufgenommen.

  • ALTER DATABASE <db_name> REPLICATION NEEDS RECOVERY FOR <sub_node>

    Markiert die benannte Datenbank auf dem angegebenen Replikationsknoten manuell für die Wiederherstellung. Wenn Sie einen Replikationsknoten zu einem Replikationssatz oder eine Datenbank zur Replikation hinzufügen, markiert die Software die Datenbank automatisch für die Wiederherstellung, so dass dieser Befehl nicht erforderlich ist. Verwenden Sie den Befehl nur, wenn Sie feststellen, dass die Datenbank eines Replikats aufgrund anderer als der genannten Umstände wiederhergestellt werden muss.

    Nachdem eine Datenbank markiert wurde, werden Transaktionen, die aus der Datenbank lesen oder in sie schreiben, auf allen Knoten im Replikationsset nach Wert repliziert, bis Sie die Datenbank auf dem Replikat wiederherstellen. (Dies kann die Leistung beeinträchtigen.) Das Primärsystem protokolliert weiterhin Transaktionen, die von der markierten Datenbank lesen oder in sie schreiben. Die wiederherstellende Replik setzt die Replikation anderer Datenbanken fort, überspringt aber die Transaktionen für die wiederherzustellende Datenbank. Einige der übersprungenen Transaktionen werden nie angewandt, und einige werden nach der Wiederherstellung angewandt, je nachdem, ob die Transaktionen vor oder nach der Erfassung der Wiederherstellungsdaten auf dem primären System stattfinden. In jedem Fall setzen die anderen Replikate des Satzes die Replikation fort. Darüber hinaus gibt es einen zusätzlichen Zeitraum, in dem die Primärdatei die Protokollierung nach Wert fortsetzt, bis alle zuvor aktiven Transaktionen abgeschlossen sind (festgeschrieben oder zurückgenommen).

    Führen Sie den Befehl von der Primärstation aus. Sowohl bei der manuellen als auch bei der automatischen Markierung verwenden Sie die Befehle nzreplanalyze -needsrecovery, nzreplbackup und nzreplrestore, um das Replikat wiederherzustellen, wodurch die Markierung entfernt und die by-SQL-Replikation neu initiiert wird.

  • ALTER DATABASE <db_name> REPLICATION RECOVERED AT <master_node> <recovered_to_CSN>

    Markiert die angegebene Datenbank als durch eine andere externe Methode als die Befehlsprozeduren nzreplanalyze, nzreplbackup und nzreplrestore wiederhergestellt. Sie können zum Beispiel das Dienstprogramm nz_migrate oder ein ETL-Tool für die Wiederherstellung verwenden, aber jede Situation hängt von den Umständen ab. Verwenden Sie den Befehl ALTER DATABASE jedoch mit Vorsicht, da Sie damit eine Datenbank als wiederhergestellt markieren können, auch wenn sie nicht vollständig synchronisiert ist. Wenn eine Datenbank als wiederhergestellt markiert wird, kann die primäre Datenbank per SQL replizieren und die wiederhergestellte Replik kann mit der Replikation von Transaktionen für die wiederhergestellten Datenbanken beginnen. Wenn die Datenbank nicht synchronisiert ist, kann es zu einer Divergenz zwischen Primär- und Replikatdaten kommen.

    Führen Sie diesen Befehl von der Replik aus, die eine Datenbankwiederherstellung benötigt.

  • ALTER DATABASE <db_name> REPLICATION SET NONE

    Entfernt die angegebene Datenbank aus dem Replikationssatz. Führen Sie diesen Befehl nur auf dem primären Knoten aus.

    Wenn es keine aktiven Transaktionen für die angegebene Datenbank oder aktive Transaktionen für andere replizierte Datenbanken gibt, die auf die angegebene Datenbank verweisen, entfernt der Befehl die angegebene Datenbank aus dem Replikationssatz. Es werden keine weiteren Aktualisierungen der Datenbank repliziert.

    Wenn es aktive Aktualisierungstransaktionen gegen die Datenbank gibt, werden die Transaktionen nicht protokolliert, aber sie werden normal verarbeitet und schlagen nicht fehl. Wenn alle entsprechenden replizierten Transaktionen, die sich auf diese Datenbank beziehen, auf den Replikationsknoten abgeschlossen sind, wird die Datenbank zu einer normalen, lokalen Datenbank auf allen Knoten.

    Der Befehl ALTER DATABASE <db_name> REPLICATION SET NONE erfordert exklusiven Zugriff auf die Datenbank. Wenn der Befehl keinen exklusiven Zugriff hat, schlägt er fehl.

  • ALTER DATABASE <db_name> RENAME TO <new_db_name>

    Ändert den Namen der angegebenen Datenbank. Dies ist ein NPS®-Befehl, der jedoch Auswirkungen auf die Replikationsumgebung hat. Sie können den Namen einer Datenbank bei laufenden Update-Transaktionen nicht ändern. In diesem Fall schlägt der Befehl fehl und erzeugt eine Fehlermeldung. Wenn Sie den Befehl auf eine replizierte Datenbank anwenden, müssen Sie den Befehl auf der primären Datenbank ausführen.