Compartilhar via


sys.fn_hadr_backup_is_preferred_replica (Transact-SQL)

Aplica-se:SQL Server

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

Convenções de sintaxe de Transact-SQL

Sintaxe

sys.fn_hadr_backup_is_preferred_replica ( 'dbname' )

Argumentos

'dbname'

O nome do banco de dados para backup. dbname é o tipo sysname.

Devoluções

Retorna bit de tipo 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.

Comentários

Use esta função em um script de backup para determinar se o banco de dados atual está na réplica preferencial 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, somente um dos trabalhos agendados realmente passa 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

R. Use 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 preferencial.

SELECT sys.fn_hadr_backup_is_preferred_replica('TestDB');
GO