Sql-Server

SQL Server 高可用性 fn_hadr_backup_is_preferred_replica 在輔助伺服器上返回 0 零

  • March 29, 2018

我正在執行 Ola Hallengren 維護解決方案,並註意到事務日誌沒有在輔助節點上備份,因此沒有被截斷,儘管 AG 備份首選項設置為首選輔助節點。如果我執行:

SELECT availability_groups.name,
  dm_hadr_availability_replica_states.role_desc,
  UPPER(availability_groups.automated_backup_preference_desc) as 'preference'
FROM sys.databases databases
 INNER JOIN sys.availability_databases_cluster availability_databases_cluster ON databases.group_database_id = availability_databases_cluster.group_database_id
 INNER JOIN sys.availability_groups availability_groups ON availability_databases_cluster.group_id = availability_groups.group_id
 INNER JOIN sys.dm_hadr_availability_replica_states dm_hadr_availability_replica_states ON availability_groups.group_id = dm_hadr_availability_replica_states.group_id AND databases.replica_id = dm_hadr_availability_replica_states.replica_id
WHERE databases.name = 'EXT_CONFIG_DB'

在中學,我得到:

name            role_desc   preference
SP-EXT-CONFIG   SECONDARY   SECONDARY

這正如預期的那樣。但是,如果我然後執行:

SELECT sys.fn_hadr_backup_is_preferred_replica('EXT_Config_DB') as 'is_preferred_replica'

我得到:

is_preferred_replica
0

這是錯誤的,應該設置為1. 由於該fn_hadr_backup_is_preferred_replica位設置為0Ola 作業不會備份或因此截斷日誌。搜尋似乎表明小寫的實例名稱可能是問題所在,但我所有的實例名稱都是大寫的。

誰能建議 fn_hadr_backup_is_preferred_replica 返回 0 而不是 1 的解決方案?

備份首選項

副本屬性

這是錯誤的,應該設置為1.

如果要將其設置為 1,則應正確配置備份首選項。

它不返回 a 的原因1是它不應該基於您目前的偏好。現在,您的所有副本都具有完全相同的備份優先級,這意味著我們接下來將查看副本名稱。由於UK-DR-SQL001\WSS首先排序,那應該是函式返回的次要(假設這UK-SB-SQL01\WSS是你的主要)1

如果您希望備份發生在不同的伺服器上,請適當設置優先級。

這是一個非常簡單的複製品,顯示給定您目前的設置,UK-DR-SQL001\WSS應該是 a1返回的副本。

CREATE TABLE #Replicas
(
   ReplicaName VARCHAR(40) NOT NULL,
   BackupPriority INT NOT NULL
)
GO

INSERT INTO #Replicas(ReplicaName, BackupPriority) 
Values('UK-DR-SQL001\WSS', 50)
,('UK-SB-SQL01\WSS',50)
,('UK-SB-SQL02\WSS',50)
GO

-- current case UK-SB-SQL01\WSS is the PRIMARY
-- prefer secondary is set
-- default collation assumed

SELECT ReplicaName, BackupPriority
FROM #Replicas
WHERE ReplicaName <> 'UK-SB-SQL01\WSS'
ORDER BY BackupPriority DESC --most important first
, ReplicaName ASC

我正在執行 Ola Hallengren 維護解決方案並註意到事務日誌沒有在輔助節點上備份,因此沒有被截斷,儘管 AG 備份首選項設置為首選輔助節點

似乎這不是在 DR 伺服器上設置或執行的,或者至少會嘗試備份。

引用自:https://dba.stackexchange.com/questions/168924