sys.dm_geo_replication_link_status (Azure SQL Database and Azure SQL Managed Instance)

Applies to: Azure SQL Database Azure SQL Managed Instance

Contains a row for each replication link between primary and secondary databases in a geo-replication partnership. This includes both primary and secondary databases. If more than one continuous replication link exists for a given primary database, this table contains a row for each of the relationships. The view is created in all databases, including the master database. However, querying this view in the master database returns an empty set.

Column name Data type Description
link_guid uniqueidentifier Unique ID of the replication link.
partner_server sysname Name of the SQL Database server containing the linked database.
partner_database sysname Name of the linked database on the linked SQL Database server.
last_replication datetimeoffset The time when the primary received the acknowledgment that the last log block has been hardened by the secondary, based on the primary database clock. Log blocks are sent to the geo-secondary continuously, without waiting for transactions to commit on the primary. This value is available on the primary database only.
replication_lag_sec int Time difference in seconds between the last_replication value and the timestamp of that transaction's commit on the primary based on the primary database clock. This value is available on the primary database only.
replication_state tinyint The state of geo-replication for this database, one of:

1 = Seeding. The geo-replication target is being seeded but the two databases are not yet synchronized. Until seeding completes, you cannot connect to the secondary database. Removing secondary database from the primary will cancel the seeding operation.

2 = Catch-up. The secondary database is in a transactionally consistent state and is being constantly synchronized with the primary database.

4 = Suspended. This is not an active continuous-copy relationship. This state usually indicates that the bandwidth available for the interlink is insufficient for the level of transaction activity on the primary database. However, the continuous-copy relationship is still intact.
replication_state_desc nvarchar(256) PENDING

SEEDING

CATCH_UP

SUSPENDED
role tinyint Geo-replication role, one of:

0 = Primary. The database_id refers to the primary database in the geo-replication partnership.

1 = Secondary. The database_id refers to the primary database in the geo-replication partnership.
role_desc nvarchar(256) PRIMARY

SECONDARY
secondary_allow_connections tinyint The secondary type, one of:

0 = No direct connections are allowed to the secondary database and the database is not available for read access.

2 = All connections are allowed to the database in the secondary replication for read-only access.
secondary_allow_connections_desc nvarchar(256) No

All
last_commit datetimeoffset The time of last transaction committed to the database. If retrieved on the primary database, it indicates the last commit time on the primary database. If retrieved on the secondary database, it indicates the last commit time on the secondary database. If retrieved on the secondary database when the primary of the replication link is down, it indicates until what point the secondary has caught up.

Note

If the replication relationship is terminated by removing the secondary database, the row for that database in the sys.dm_geo_replication_link_status view disappears.

Permissions

Requires the VIEW DATABASE STATE permission in the database.

Examples

This Transact-SQL query shows replication lags and last replication time of secondary databases.

SELECT   
     link_guid  
   , partner_server  
   , last_replication  
   , replication_lag_sec   
FROM sys.dm_geo_replication_link_status;  

Next steps

Learn more about related concepts in the following articles: