Replication--备份初始化需要还原备份么?
测试场景:
发布服务器:SQLVM6\SQL2
订阅服务器:SQLVM5\SQL2
分发服务器:SQLVM3\SQL2
发布数据库:RepDB2
订阅数据库:RepDB2
发布:RepDB2_TB1
测试步骤:
1>停止发布库上的日志备份
2>备份发布服务器上数据库"RepDB2" 至"E:\REPDB2.BAK"
3>将备份复制到订阅服务器,还原出数据库RepDB2_Temp
4>在订阅服务器上将 RepDB2_Temp 订阅相关的数据导入到 RepDB2(INSERT SELECT)
5>将发布RepDB2_TB1的属性"允许从备份文件初始化"设置为True
--==================================================
--发布服务器上运行
USE [RepDB2]
GO
DECLARE @publication AS sysname
SET @publication = N'RepDB2_TB1'
EXEC sp_changepublication
@publication = @publication,
@property = N'allow_initialize_from_backup',
@value = true
6>运行以下脚本创建订阅
use [RepDB2]
go
exec sp_addsubscription
@publication = N'RepDB2_TB1',
@subscriber = N'SQLVM5\SQL2',
@destination_db = N'RepDB2',
@subscription_type = N'Push',
@sync_type = N'initialize with backup',
@article = N'all',
@update_mode = N'read only',
@subscriber_type = 0,
@backupdevicetype='disk',
@backupdevicename='E:\REPDB2.BAK'--最后一次备份的备份文件(发布服务器上的存放位置)
GO
exec sp_addpushsubscription_agent
@publication = N'RepDB2_TB1',
@subscriber = N'SQLVM5\SQL2',
@subscriber_db = N'RepDB2',
@job_login = null,
@job_password = null,
@subscriber_security_mode = 0,
@subscriber_login = N'dba',
@subscriber_password = 'dba@123',
@frequency_type = 64,
@frequency_interval = 0,
@frequency_relative_interval = 0,
@frequency_recurrence_factor = 0,
@frequency_subday = 0,
@frequency_subday_interval = 0,
@active_start_time_of_day = 0,
@active_end_time_of_day = 235959,
@active_start_date = 20131028,
@active_end_date = 99991231,
@enabled_for_syncmgr = N'False',
@dts_package_location = N'Distributor'
GO
7>检查复制,一切正常
在测试过程中,特地在订阅库上增加部分无关表,复制搭建完毕后,这些无关表依然存在,表明本次操作对这些表无影响。
误区:在讨论备份初始化时,一部分人都认为需要使用备份在订阅上还原,如果订阅库上存在其他数据,则不能使用备份初始化来初始化订阅。
解释:使用备份初始化时为了避免生成快照时对发布库的影响,而在创建订阅时指定备份,只是需要利用该备份来获取一个LSN,使用该LSN来告诉订阅应该从哪个点开始同步数据。
补充:注意在备份初始化前停止发布库日志备份
相关:
http://www.cnblogs.com/TeyGao/p/3521231.html
http://www.cnblogs.com/TeyGao/p/3521234.html
Replication--备份初始化需要还原备份么?的更多相关文章
- Navicat mysql 数据库备份和使用,备份以后是nb3文件
通过Navicat进行Mysql数据库自动备份与还原 Mysql数据库自动备份流程 Navicat版本为:Navicat 12.0.26 例:test为用于测试自动备份的数据库,里面有表t_per ...
- SQLServer 以备份初始化订阅
原文:SQLServer 以备份初始化订阅 在创建事务复制时,如果发布数据库很大,使用快照初始化时,将等待很久,如果出现问题可能又得重新初始化.使用备份初始化会省很多时间,但是数据库在创建发布订阅期间 ...
- mysql 命令行还原备份数据库
通常数据库还原备份可以通过navicat等数据库管理工具进行,只需要简单的导出导入就行了,但遇到有索引外键的数据库,数据库管理工具运行.sql文件会报错,这时候可以尝试命令行导入,亲测可以成功 MyS ...
- Sql Server 备份还原失败错误ERROR:3145(备份集中的数据库备份与现有的数据库不同)及解决办法
SQL Server备份文件bak,备份后还原出现错误3145,备份集中的数据库备份与现有的 'xxx' 数据库不同. 解决办法如下: 1,新建一个与现有数据库重名的数据库. 如果您不知道数据库名称, ...
- mssql server 2005还原数据库bak文件与“备份集中的数据库备份与现有的xx数据库不同”解决方法
mssql server 2005还原数据库bak文件,网站使用虚拟主机建站会经常遇到,一般情况下,主机商有在线的管理程序,但有时候没有的话,就需要本地还原备份sql数据库了.这种情况mssql se ...
- mssql sqlserver 快速表备份和表还原的方法
摘要: 在sqlserver维护中,我们偶尔需要运行一些sql脚本对数据进行相关修改操作,在数据修改前我们必须对表数据进行备份来避免出现异常时,可以快速修复数据, 下文讲述sqlserver维护中,快 ...
- PgSql备份pg_dump与还原手记pg_restore(转)可以直接跳转至最后面的示例进行查看
PgSql备份pg_dump与还原手记pg_restore(转) 可以直接跳转至最后面的示例进行查看 真没有想到,以前一直是PostgreSQL使用者,突然需要库移植又成了头一招了!原来它与mysql ...
- Thinkphp3.2 备份数据库和还原数据的方法
其实Thinkphp框架并没有自带备份数据库的功能,但是细心的朋友可能会发现Thinkphp的一套内容管理系统oneThink是有备份数据库和还原数据的功能的. 所以今天我就来聊一聊,oneThink ...
- 还原对于server失败 备份集中的数据库备份与现有数据库不同
还原对于server失败 备份集中的数据库备份与现有数据库不同 今天在SQL Server 2008 R2中还原一个数据库备份,遇到错误.还原对于server失败 备份集中的数据库备份 ...
随机推荐
- 深入浅出 Java Concurrency (6): 锁机制 part 1 Lock与ReentrantLock
前面的章节主要谈谈原子操作,至于与原子操作一些相关的问题或者说陷阱就放到最后的总结篇来整体说明.从这一章开始花少量的篇幅谈谈锁机制. 上一个章节中谈到了锁机制,并且针对于原子操作谈了一些相关的概念 ...
- ubantu的下载和在虚拟机VM中的安装
一.下载Ubuntu镜像文件 下载地址:http://www.ubuntu.com 打开上面的连接,我们来到如下页面,点击download: 下一步,到如下页面,点击Ubuntu Desktop: 然 ...
- urllib2异常处理(七)
urllib2 的异常错误处理 在我们用urlopen或opener.open方法发出一个请求时,如果urlopen或opener.open不能处理这个response,就产生错误. 这里主要说的是U ...
- 剖析tcp与udp及应用场景协议方案选择
什么是TCP和UDP TCP和UDP是TCP/IP协议中的两个传输层协议,它们使用IP路由功能把数据包发送到目的地,从而为应用程序及应用层协议(包 括:HTTP.SMTP.SNMP.FTP和Telne ...
- 如何优化Java垃圾回收-zz
为什么需要优化GC 或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但前提是所运行的基于Java的系统,包含了如下参数或 ...
- Richview 首页 奇偶页 不同页眉页脚
首页 奇偶页 不同页眉页脚 ScaleRichView v6.0 Different headers and footers for the first page, for odd and even ...
- Ubuntu下用devstack单节点部署Openstack
一.实验环境 本实验是在Vmware Workstation下创建的单台Ubuntu服务器版系统中,利用devstack部署的Openstack Pike版. 宿主机:win10 1803 8G内存 ...
- C++ 基类指针,子类指针,多态
基类指针和子类指针之间相互赋值(1)将子类指针赋值给基类指针时,不需要进行强制类型转换,C++编译器将自动进行类型转换.因为子类对象也是一个基类对象. (2)将基类指针赋值给子类指针时,需要进行强制类 ...
- python selenium 测试环境的搭建及python mysql的连接
又来一篇傻瓜教程啦,防止在学习的小伙伴们走弯路. 1.python 环境搭建 python官网:https://www.python.org/downloads/ 选择最新版本python下载(如果 ...
- Server.Transfer和Response.Redirect的区别
(1)Server.Transfer方法: Server.Transfer("m2.aspx");//页面转向(服务器上执行). 服务器停止解析本页,保存此页转向前的数据后,再使页 ...