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失败 备份集中的数据库备份 ...
随机推荐
- MMO技能系统的同步机制分析
转自:http://www.gameres.com/729629.html 此篇文章基于之前文章介绍的技能系统,主要介绍了如何实现MMO中的技能系统的同步.阅读此文章之前,推荐首先阅读前一篇文章:一个 ...
- bootstrap的引入和使用
Bootstrap的下载 一. 使用Bootstrap第一步,先将生成环境的Bootstrap下载下来.然后将下载,然后引入到自己建好的当前目录中 二.点到起步中的基本模板 将看到的整段代码复制粘贴到 ...
- AngularJS学习笔记(3)——通过Ajax获取JSON数据
通过Ajax获取JSON数据 以我之前写的与用户交互的动态清单列表为例,使用JSON前todo.html代码如下: <!DOCTYPE html> <html ng-app=&quo ...
- DOCKER windows 7 详细安装教程
DOCKER windows安装 编者: xiaym 日期:2015年1月20日 排版工具: 马克飞象 QQ: 252536711 DOCKER windows安装 1.下载程序包 2. 设置环境变量 ...
- springmvc 数据验证 hibernate-validator --->对象验证
数据验证步骤: 1.测试环境的搭建: 2.验证器的注册 在springmvc.xml配置文件中加以下代码: 3.验证注解添加到对应实体类上 4.修改处理器 5.将验证失败信息写入到表单 index.j ...
- 简单API练手:(1)复制自身程序到windows目录和系统目录下;(2)获得系统的相关信息。
1.复制自身程序到windows目录和系统目录下: #include <windows.h> #include <stdio.h> #include <string.h& ...
- ArcGIS GP服务的发布及调用
参考https://www.jianshu.com/p/5331fa708fe5
- golang之map数据类型
先上代码…… package main import "fmt" func testMap() { //两种声明map方式,切记,必须初始化才能用,否则panic //var a ...
- [Training Video - 1] [Introduction to Web services]
What is a web service? http://webservicex.net/ws/default.aspx WebService是一种跨编程语言和跨操作系统平台的远程调用技术. 跨编程 ...
- ssh scp命令详解
--查看版本 $ ssh -V OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003 --用SSH登录到远程主机 localhost$ ssh -l jsmith(用户名 ...