參考:
前提:
準備一臺電腦,主機名和之前的分發數據庫一致。而且安裝sql server
恢復步驟:
在新的distribution服務器上
1.配置distribution,增長以前的publisher
2.使用備份還原distribution數據庫
3.建立job,主要是快照agent和logreadagent,能夠從老的distribution直接複製
3.修改發佈服務器屬性
EXEC sp_changedistpublisher 'TESTSYNCDBSERV', 'active', 'true'
4.修改[MSpublisher_databases]中的publisher_id爲publisher服務器在sys.servers中的server_id
UPDATE t set t. publisher_id = 2 from dbo.[MSpublisher_databases] t WHERE id=2
5.修改[MSpublications]中的publisher_id爲publisher服務器在sys.servers中的server_id
UPDATE t set t. publisher_id = 2 from dbo.MSpublications t WHERE publication_id=2
6.修改[MSdistribution_agents]中的publisher_id爲publisher服務器在sys.servers中的server_id,subscriber_id爲訂閱服務器在sys.servers中的server_id,若是沒有訂閱的能夠直接建立。
EXEC master.dbo.sp_addlinkedserver @server = N'TESTSYNCRPTSERV', @srvproduct=N'SQL Server'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TESTSYNCRPTSERV',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
update dbo.MSdistribution_agents SET publisher_id=2,subscriber_id=3 WHERE id = 4
7.修改[MSsubscriptions]中的publisher_id爲publisher服務器在sys.servers中的server_id,subscriber_id爲訂閱服務器在sys.servers中的server_id,若是沒有訂閱的能夠直接建立。
update dbo.MSsubscriptions SET publisher_id =2,subscriber_id=3 WHERE publication_id=2
8.修改logreadagent,snapshotagent的publish_id和對應的job信息
update [MSlogreader_agents] SET publisher_id =2 WHERE id = 2
update [MSsnapshot_agents] SET publisher_id =2 WHERE id = 2
update t
set t.job_id = sj.job_id, t.job_step_uid = sjs.step_uid
from dbo.MSlogreader_agents t
left join dbo.MSreplication_monitordata sm on sm.agent_name = t.name
left join msdb.dbo.sysjobs sj on sj.name = t.name
left join msdb.dbo.sysjobsteps sjs on sj.job_id = sjs.job_id and sjs.step_id = 2
update t
set t.job_id = sj.job_id, t.job_step_uid = sjs.step_uid
from dbo.[MSsnapshot_agents] t
left join dbo.MSreplication_monitordata sm on sm.agent_name = t.name
left join msdb.dbo.sysjobs sj on sj.name = t.name
left join msdb.dbo.sysjobsteps sjs on sj.job_id = sjs.job_id and sjs.step_id = 2
在發佈上運行
修改發佈數據庫中的syspublications,syssubscriptions中job的id
update [dbo].[syspublications] set snapshot_jobid=0xD2E257AFD287304CA2FC14F3D7C1AECF
update [dbo].[syssubscriptions] set distribution_jobid=0x0E79D3A2A36F73409DB3F4261723F37A