适用于: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'));