Partilhar via


sys.fn_hadr_backup_is_preferred_replica (Transact-SQL)

Aplica-se a:SQL Server

Usado para determinar se a réplica atual é a réplica de backup preferida.

Transact-SQL convenções de sintaxe

Sintaxe

sys.fn_hadr_backup_is_preferred_replica ( 'dbname' )

Argumentos

'dbname'

O nome do banco de dados do qual será feito backup. dbname é o tipo sysname.

Devoluções

Retorna o tipo de dados bit: 1 se o banco de dados na instância atual estiver na réplica preferida, caso contrário 0.

Para bancos de dados que não fazem parte de um grupo de disponibilidade, essa função sempre retorna 1.

Se o banco de dados especificado não existir, a função retornará um valor diferente com base na versão do SQL Server:

  • A partir do SQL Server 2019 CU20 e do SQL Server 2022 CU2, a função retorna 0.
  • Em versões anteriores, a função retorna 1.

Observações

Use essa função em um script de backup para determinar se o banco de dados atual está na réplica preferida para backups. Você pode executar um script em cada réplica de disponibilidade. Cada um desses trabalhos examina os mesmos dados para determinar qual trabalho deve ser executado, portanto, apenas um dos trabalhos agendados realmente prossegue para o estágio de backup. O código de exemplo pode ser semelhante ao seguinte.

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

Exemplos

Um. Utilizar sys.fn_hadr_backup_is_preferred_replica

O exemplo a seguir retornará 1 se o banco de dados atual for a réplica de backup preferida.

SELECT sys.fn_hadr_backup_is_preferred_replica('TestDB');
GO