Sql Server 2012 合并复制报告

Sql Server 2012 合并复制报告

我们有大约 30 位本地安装了 SQL Server 的用户,他们必须每月将他们的本地数据与中央 SQL Server 2012 存储库复制合并一次。

是否有 SQL Server 第一方或第三方工具可以让我们查看各个用户上次复制的时间(甚至是所有复制的历史记录)?最好采用报告格式(但 SQL 查询也可以),以便应用程序管理员可以确保其用户每月至少同步一次?

复制监视器是否包含历史报告,以便我们可以看到其他数据库上次同步的时间(回溯到 2-3 个月前)?

答案1

你有没有尝试过复制监视器

答案2

对于这样的事情而不是使用复制监视器 我有一个脚本(这个用于合并复制)

--====================================================================================
-- merge replication- check the history
-- to be run either in one of the subscriptions or the main publication
-- marcello miorelli 
-- 15-Dec-2016
--====================================================================================

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT

smp.publisher
,smp.publisher_db
,smp.name
,smp.distributor
,sma.Name
,sma.destination_object
,sma.destination_owner
,sms.subscriber_server
,sms.db_name
,subscriber_type= CASE sms.subscriber_type 
                       WHEN 1 THEN 'Global'
                       WHEN 2 THEN 'Local'
                       WHEN 3 THEN 'Anonymous'
                       ELSE 'Unknown'
                  END

,subscription_type = CASE sms.subscription_type 
                       WHEN 0 THEN 'Push'
                       WHEN 1 THEN 'Pull'
                       WHEN 2 THEN 'Anonymous'
                       ELSE 'Unknown'
                  END

,sync_type         = CASE sms.sync_type
                       WHEN 1 THEN 'Automatic'
                       WHEN 2 THEN 'No synchronization'
                       ELSE 'Unknown'
                  END
,last_sync_date = REPLACE(LEFT(CONVERT(VARCHAR(30),sms.last_sync_date,113),20),' ','-')
,last_sync_status= CASE sms.sync_type
                       WHEN 0 THEN 'All jobs are waiting to start'
                       WHEN 1 THEN 'One or more jobs are starting'
                       WHEN 2 THEN 'All jobs have executed successfully'
                       WHEN 3 THEN 'At least one job is executingy'
                       WHEN 4 THEN 'All jobs are scheduled and idle'
                       WHEN 5 THEN 'At least one job is attempting to execute after a previous failure'
                       WHEN 6 THEN 'At least one job has failed to execute successfully'
                       ELSE 'Unknown'
                  END

FROM

sysmergearticles sma
inner join sysmergepublications smp
        on sma.pubid=smp.pubid

inner join sysmergesubscriptions sms
        on sms.pubid=smp.pubid

会产生如下结果:

在此处输入图片描述

相关内容