sys.dm_hs_database_replicas(Transact-SQL)

适用于:Azure SQL 数据库

动态 sys.dm_hs_database_replicas 管理功能 (DMF) 返回有关给定超大规模数据库的 Azure SQL 数据库 超大规模次要副本 的信息。

Syntax

sys.dm_hs_database_replicas ( 
{ database_id | NULL }                                     
)                             

Arguments

database_id

database_id 是表示数据库 ID 的 整数 ,没有默认值。 有效的输入是数据库 ID 或 NULL

提供 a database_id 时, sys.dm_hs_database_replicas 返回该特定数据库的行。

如果未提供或 NULL 何时提供,则为单一数据库返回当前数据库的行。 对于弹性池中的数据库,返回调用方具有足够 权限的池中所有数据库的行。

可以指定内置函数 DB_ID

返回的表

列名 数据类型 Description
replica_id uniqueidentifier 副本的标识符。 不可为 null。
replica_server_name sysname 副本所在的逻辑服务器的名称。 不可为 null。
replica_database_name sysname 副本数据库的名称。 不可为 null。
is_local bit 副本数据库是否为本地数据库:
1 = 副本数据库是查询 sys.dm_hs_database_replicas时连接到的副本数据库。
0 = 副本数据库不是连接到的副本数据库。
replica_role tinyint 副本角色:
0 = 主要
1 = 高可用性辅助数据库
2 = 异地复制转发器
3 = 命名副本。 不可为 null。
replica_role_desc nvarchar(256) 主要
高可用性辅助数据库
异地复制转发器
命名副本。 </ br/ br><> 不可为 null。
local_database_id int 数据库的标识符。
在 Azure SQL 数据库中,值在单个数据库或弹性池中是唯一的,但不在逻辑服务器中。
parent_replica_id uniqueidentifier 仅适用于高可用性副本。
父副本的标识符(例如,具有 HA 副本的主副本、异地转发器或命名副本)。 空。

注解

动态 sys.dm_hs_database_replicas 管理功能目前仅适用于 Azure SQL 数据库超大规模层。

虽然可以将辅助副本添加到主数据库的异地辅助副本,但当在主副本上查询时, sys.dm_hs_database_replicas 不会返回在异地辅助副本下添加的辅助副本的行。 应在连接到异地辅助副本时查询 sys.dm_hs_database_replicas ,以列出其下添加的次要副本。

Permissions

此动态管理功能需要 VIEW DATABASE PERFORMANCE STATE 权限。 有关详细信息,请参阅 系统动态管理视图。 若要查询共用数据库,需要 VIEW SERVER STATE 权限。 如果调用方具有 VIEW DATABASE PERFORMANCE STATE 权限,则返回保留此权限的数据库的行。

例子

答: 返回在“超大规模”层中创建的数据库的主副本和所有次要副本

以下示例为“超大规模”数据库中添加的每个次要副本返回一行。

SELECT replica_role_desc, replica_server_name, replica_id
FROM sys.dm_hs_database_replicas(DB_ID(N'Contosodb'));