适用于:Azure SQL 数据库
Azure SQL 托管实例
在异地复制合作关系中,主数据库和辅助数据库之间的每个复制链接都要包含一行。 这包括主数据库和辅助数据库。 如果给定主数据库有多个连续复制链接,此表将对每种关系包含一行。 将在所有数据库(包括 master
数据库)中创建该视图。 但是,在数据库中查询此视图 master
将返回一个空集。
列名称 | 数据类型 | 描述 |
---|---|---|
link_guid |
uniqueidentifier | 复制链接的唯一 ID。 |
partner_server |
sysname | 包含链接数据库的 Azure SQL 数据库逻辑服务器的名称。 |
partner_database |
sysname | 链接 SQL 数据库逻辑服务器上的链接数据库的名称。 |
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) | 初级 二 次 |
secondary_allow_connections |
tinyint | 辅助类型,其中之一:0 = 不允许与辅助数据库建立直接连接,数据库不可用于读取访问。2 = 允许在辅助复制中与数据库建立所有连接,以便进行只读访问。 |
secondary_allow_connections_desc |
nvarchar(256) | 否 全部 |
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;