我正在尝试设置 SQL 代理作业,该作业仅在它是故障转移组的 Azure SQL MI 的主副本时才会执行。
sys.dm_hadr_database_replica_states
我正在尝试使用where获取主副本,is_primary_replica =1
但是当我在不同区域的 SQL MI 上运行它时,它也返回值 1。
我正在使用dbo.fn_hadr_group_is_primary(@AGName)=1
本地函数,因此寻找与 Azure SQL MI 类似的函数。
我正在尝试设置 SQL 代理作业,该作业仅在它是故障转移组的 Azure SQL MI 的主副本时才会执行。
sys.dm_hadr_database_replica_states
我正在尝试使用where获取主副本,is_primary_replica =1
但是当我在不同区域的 SQL MI 上运行它时,它也返回值 1。
我正在使用dbo.fn_hadr_group_is_primary(@AGName)=1
本地函数,因此寻找与 Azure SQL MI 类似的函数。
在 SQL 托管实例中,在代理作业中,您可以使用以下命令:
在故障转移组内的主要托管实例上,用户数据库将处于
READ_WRITE
模式。在辅助托管实例上 -READ_ONLY
这是因为单个 Azure SQL 托管实例下面有四个内部副本。它返回 1,因为您正在与当前为主的内部副本进行交互。这与故障转移组无关,并且不显示 MI 在故障转移组中的角色。