Freigeben über


sys.fn_hadr_backup_is_preferred_replica (Transact-SQL)

Gilt für:SQL Server

Dient zum Ermitteln, ob das aktuelle Replikat das bevorzugte Sicherungsreplikat ist.

Transact-SQL-Syntaxkonventionen

Syntax

sys.fn_hadr_backup_is_preferred_replica ( 'dbname' )

Argumente

'dbname'

Der Name der Datenbank, die gesichert werden soll. "dbname" ist vom Typ "sysname ".

Gibt zurück

Gibt den Datentyp Bit zurück: 1 Wenn sich die Datenbank auf der aktuellen Instanz im bevorzugten Replikat befindet, andernfalls 0.

Bei Datenbanken, die nicht Teil einer Verfügbarkeitsgruppe sind, gibt diese Funktion immer zurück 1.

Wenn die angegebene Datenbank nicht vorhanden ist, gibt die Funktion einen anderen Wert basierend auf der Version von SQL Server zurück:

  • Ab SQL Server 2019 CU20 und SQL Server 2022 CU2 gibt die Funktion zurück 0.
  • In früheren Versionen gibt die Funktion zurück 1.

Hinweise

Verwenden Sie diese Funktion in einem Sicherungsskript, um zu ermitteln, ob sich die aktuelle Datenbank auf dem für Sicherungen bevorzugten Replikat befindet. Sie können ein Skript über jedes Verfügbarkeitsreplikat ausführen. Jeder dieser Aufträge untersucht die gleichen Daten, um zu bestimmen, welcher Auftrag ausgeführt werden soll, sodass nur einer der geplanten Aufträge tatsächlich mit der Sicherungsphase fortfährt. Beispielcode kann sich wie folgt zusammensetzen.

IF sys.fn_hadr_backup_is_preferred_replica(@dbname) <> 1
    BEGIN
-- If this is not the preferred replica, exit (probably without error).
        SELECT 'This is not the preferred replica, exiting with success';
    END
-- If this is the preferred replica, continue to do the backup.
/* actual backup command goes here */

Beispiele

A. Verwenden von sys.fn_hadr_backup_is_preferred_replica

Im folgenden Beispiel wird 1 zurückgegeben, wenn die aktuelle Datenbank dem bevorzugten Sicherungsreplikat entspricht.

SELECT sys.fn_hadr_backup_is_preferred_replica('TestDB');
GO