Поделиться через


sys.fn_hadr_backup_is_preferred_replica (Transact-SQL)

Область применения:SQL Server

Используется для определения, является ли текущая реплика предпочитаемой резервной репликой.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sys.fn_hadr_backup_is_preferred_replica ( 'dbname' )

Аргументы

Dbname

Имя базы данных для резервного копирования. dbname — имя sysname.

Возвраты

Возвращает бит типа 0

Для баз данных, не входящих в группу доступности, эта функция всегда возвращается 1.

Если указанная база данных не существует, функция возвращает другое значение в зависимости от версии SQL Server:

  • Начиная с SQL Server 2019 CU20 и SQL Server 2022 CU2 функция возвращается 0.
  • В более ранних версиях функция возвращается 1.

Замечания

Используйте данную функцию в скрипте резервного копирования для определения, доступна ли текущая база данных на реплике, которая является предпочитаемой для резервного копирования. Вы можете запустить скрипт на любой доступной реплике. Каждая из данных задач обращается к одним и тем же данным для определения того, какую задачу следует выполнить, поэтому для создания резервной копии фактически обрабатывается только одна запланированная задача. Образец кода должен быть аналогичен следующему.

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

Примеры

А. Использование sys.fn_hadr_backup_is_preferred_replica

В следующем примере возвращаемое значение равно 1, если текущая база данных является предпочитаемой репликой для резервного копия.

SELECT sys.fn_hadr_backup_is_preferred_replica('TestDB');
GO