参考:
前提:
    准备一台电脑,主机名和以前的分发数据库一致。并且安装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
 
 

distribution 分发数据库 灾难恢复 备份恢复的更多相关文章

  1. 通过expdp/impdp进行oracle数据库的备份恢复详细指导

    假定导出oracle数据库home目录为/opt/oracle,数据库用户为exp_user/test,导入用户为imp_user/test,给出如下样例,具体使用时根据实际情况修改路径及用户名/密码 ...

  2. sqlserver2012 数据库差异备份恢复 记录

    sqlserver2012恢复过程: 先恢复全备份,再恢复差异,注意:勾选NoRecovery选项. 恢复完成后,出现: Sqlserver数据库 一直显示“正在还原…” 的状态. 引用:http:/ ...

  3. mongodb数据库备份恢复-windows系统

    备份语法: mongodump命令脚本语法如下: >mongodump -h dbhost -d dbname -o dbdirectory -h: MongDB所在服务器地址,例如:127.0 ...

  4. postgresql 和 mysql 数据库备份恢复以及时区问题

    概要 postgesql 12 备份/恢复脚本 时区设置 mysql 5.6 备份/恢复脚本 时区设置 概要 postgresql 和 mysql 是最常用的 2 种开源关系数据库, 很多项目也会优先 ...

  5. mysqldump备份恢复

    数据库的备份恢复是DBA的必修课,本文首先讲解mysqldump完整备份恢复的操作方法,演示数据库完整备份的基本过程.然后再模拟数据库遭遇灾难性破坏,配合bin-log日志实验数据库灾难性恢复的步骤. ...

  6. mysql导出csv/sql/newTable/txt的方法,mysql的导入txt/sql方法...mysql备份恢复mysqlhotcopy、二进制日志binlog、直接备份文件、备份策略、灾难恢复.....................................................

    mysql备份表结构和数据 方法一. Create table new_table_nam备份到新表:MYSQL不支持: Select * Into new_table_name from old_t ...

  7. Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复

    Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...

  8. Oracle 【IT实验室】数据库备份与恢复之:如何对Oracle数据库文件进行恢复与备份

    任何数据库在长期使用过程中,都会存在一定的安全隐患.对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制.当数据库发生故障后,希望能重新建立一个完整的数据 ...

  9. 中小型数据库 RMAN CATALOG 备份恢复方案(二)

    中小型数据库呈现的是数据库并发少,数据库容量小,版本功能受限以及N多单实例等特点.尽管如此,数据库的损失程度也会存在零丢失的情形.企业不愿意花太多的钱又要保证数据库的可靠稳定,可是苦煞了我这些搞DB的 ...

随机推荐

  1. Session提要

    Session即会话,批一种持续性的.双向的链接.Sesstion和Cookie本质上没有什么区别,都是针对HTTP协议的局限性而提出的一种保持客户端和服务器间保持会话连接状态的机制.       S ...

  2. 第8章 CentOS包管理详解

    8.1 Linux上构建C程序的过程 在说明包相关的内容之前,我觉得有必要说一下在Linux上构建一个C程序的过程.我个人并没有学习过C,内容总结自网上,所以可能显得很小白,而且也并非一定正确,只希望 ...

  3. SHELL脚本--数学运算和bc命令

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 使用let.(()).$(())或$[]进行基本的整数运算,使 ...

  4. Runtime详解(下)

    Runtime应用 1.Runtime 交换方法 应用场景:当第三方框架或者系统原生方法功能不能满足我们的时候,我们可以在保持系统原有功能的基础上,添加额外的功能. 需求:加载一张图片直接用系统的[U ...

  5. [转]USDT与omniCore钱包

    本文转自:http://www.cnblogs.com/red-evil/p/10039740.html USDTUSDT,又称为泰达币,是由Tether公司在 2015年推出的一种与美元锚定的加密货 ...

  6. 第一册:lesson forty three。

    原文: Hurry up! A:Can you make the tea,Sam? B:Yes,of course I can ,Penny. Is there any water in this k ...

  7. 结构型---享元模式(Flyweight Pattern)

    引言 在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严 ...

  8. Owin Middleware如何在IIS集成管道中执行

    Owin Middleware Components(OMCs) 通过安装Install-Package Microsoft.Owin.Host.SystemWeb 可以让OMCs在IIS集成管道下工 ...

  9. T-SQL:SQL语句处理顺序的坑(四)

    首先看下面一条比较完成语句,都是比较常见的关键字. USE Temp; SELECT empid, YEAR(orderdate) AS orderyear, COUNT(*) AS numorder ...

  10. VS2015 项目中 添加windows服务

    1. 在项目中添加winows服务 今天刚刚为自己的项目添加了windows服务,以服务的形式运行后台系统,为前端提供接口服务,下面说一下具体怎么为vs项目添加windows服务 2. 添加Windo ...