Udostępnij za pośrednictwem


sys.fn_hadr_backup_is_preferred_replica (Transact-SQL)

Dotyczy:programu SQL Server

Służy do określania, czy bieżąca replika jest preferowaną repliką kopii zapasowej.

Transact-SQL konwencje składni

Składnia

sys.fn_hadr_backup_is_preferred_replica ( 'dbname' )

Argumenty (w programowaniu)

'dbname'

Nazwa bazy danych do utworzenia kopii zapasowej. dbname jest typem sysname.

Zwraca

Zwraca bit typu danych: 1 jeśli baza danych w bieżącym wystąpieniu znajduje się w preferowanej repliki, w przeciwnym razie 0.

W przypadku baz danych, które nie są częścią grupy dostępności, ta funkcja zawsze zwraca wartość 1.

Jeśli określona baza danych nie istnieje, funkcja zwraca inną wartość na podstawie wersji programu SQL Server:

  • Począwszy od programu SQL Server 2019 CU20 i PROGRAMU SQL Server 2022 CU2, funkcja zwraca wartość 0.
  • We wcześniejszych wersjach funkcja zwraca wartość 1.

Uwagi

Użyj tej funkcji w skry skryptie kopii zapasowej, aby określić, czy bieżąca baza danych znajduje się w repliki preferowanej dla kopii zapasowych. Skrypt można uruchomić na każdej repliki dostępności. Każde z tych zadań analizuje te same dane, aby określić, które zadanie powinno zostać uruchomione, więc tylko jedno z zaplanowanych zadań rzeczywiście przechodzi do etapu tworzenia kopii zapasowej. Przykładowy kod może być podobny do poniższego.

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 */

Przykłady

Odp. Korzystanie z sys.fn_hadr_backup_is_preferred_replica

Poniższy przykład zwraca wartość 1, jeśli bieżąca baza danych jest preferowaną repliką kopii zapasowej.

SELECT sys.fn_hadr_backup_is_preferred_replica('TestDB');
GO