sys.dm_geo_replication_link_status(Azure SQL 数据库和 Azure SQL 托管实例)
适用于: Azure SQL 数据库 Azure SQL 托管实例
在异地复制合作关系中,主数据库和辅助数据库之间的每个复制链接都要包含一行。 这包括主数据库和辅助数据库。 如果给定主数据库有多个连续复制链接,此表将对每种关系包含一行。 将在所有数据库(包括 master 数据库)中创建该视图。 但是,在 master 数据库中查询此视图将返回空集。
列名称 | 数据类型 | 描述 |
---|---|---|
link_guid | uniqueidentifier | 复制链接的唯一 ID。 |
partner_server | sysname | 包含链接数据库的 SQL Database 服务器名称。 |
partner_database | sysname | 链接 SQL Database 服务器上链接数据库的名称。 |
last_replication | datetimeoffset | 主数据库收到最后一个日志块已被辅助数据库强化的确认的时间(根据主数据库时钟)。 日志块会持续发送到异地辅助数据库,而无需等待在主数据库上提交事务。 此值仅适用于主数据库。 |
replication_lag_sec | int | last_replication 值与基于主数据库时钟的该事务在主数据库上提交的时间戳之间的时间差(以秒为单位)。 此值仅适用于主数据库。 |
replication_state | tinyint | 此数据库的异地复制状态,其中之一: 1 = 种子设定。 正在对异地复制目标进行种子设定,但是两个数据库尚未同步。 在完成种子设定之前,你无法连接到辅助数据库。 从主数据库中删除辅助数据库将会取消种子设定操作。 2 = 追加。 辅助数据库在事务上保持一致状态,并持续与主数据库同步。 4 = 已暂停。 这不是有效的连续复制关系。 此状态通常指示可用的互连带宽不足,无法满足主数据库上事务活动的水平。 但是,连续复制关系仍保持不变。 |
replication_state_desc | nvarchar(256) | PENDING SEEDING CATCH_UP SUSPENDED |
role | tinyint | 异地复制角色,其中之一: 0 = 主。 database_id 是指异地复制合作关系中的主数据库。 1 = 辅助。 database_id 是指异地复制合作关系中的主数据库。 |
role_desc | nvarchar(256) | PRIMARY SECONDARY |
secondary_allow_connections | tinyint | 辅助类型,其中之一: 0 = 不允许直接连接到辅助数据库,且不支持读取此数据库。 2 = 允许针对辅助复制中的数据库的所有连接进行只读访问。 |
secondary_allow_connections_desc | nvarchar(256) | 否 All |
last_commit | datetimeoffset | 上次提交到数据库的事务的时间。 如果在主数据库上检索,则表示主数据库上的最后提交时间。 如果在辅助数据库上检索,则表示辅助数据库上的最后提交时间。 如果在复制链接的主数据库关闭时在辅助数据库上检索,则表示辅助数据库已赶上的时间点。 |
注意
如果通过删除辅助数据库来终止复制关系,则 sys.dm_geo_replication_link_status 视图中该数据库的行会消失。
权限
需要数据库中的 VIEW DATABASE STATE
权限。
示例
此 Transact-SQL 查询显示辅助数据库的复制延迟和上次复制时间。
SELECT
link_guid
, partner_server
, last_replication
, replication_lag_sec
FROM sys.dm_geo_replication_link_status;
后续步骤
通过以下文章详细了解相关概念: