测试场景:
发布服务器: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

  1. --==================================================
  2. --发布服务器上运行
  3. USE [RepDB2]
  4. GO
  5. DECLARE @publication AS sysname
  6. SET @publication = N'RepDB2_TB1'
  7. EXEC sp_changepublication
  8. @publication = @publication,
  9. @property = N'allow_initialize_from_backup',
  10. @value = true

6>运行以下脚本创建订阅

  1. use [RepDB2]
  2. go
  3. exec sp_addsubscription
  4. @publication = N'RepDB2_TB1',
  5. @subscriber = N'SQLVM5\SQL2',
  6. @destination_db = N'RepDB2',
  7. @subscription_type = N'Push',
  8. @sync_type = N'initialize with backup',
  9. @article = N'all',
  10. @update_mode = N'read only',
  11. @subscriber_type = 0,
  12. @backupdevicetype='disk',
  13. @backupdevicename='E:\REPDB2.BAK'--最后一次备份的备份文件(发布服务器上的存放位置)
  14. GO
  15. exec sp_addpushsubscription_agent
  16. @publication = N'RepDB2_TB1',
  17. @subscriber = N'SQLVM5\SQL2',
  18. @subscriber_db = N'RepDB2',
  19. @job_login = null,
  20. @job_password = null,
  21. @subscriber_security_mode = 0,
  22. @subscriber_login = N'dba',
  23. @subscriber_password = 'dba@123',
  24. @frequency_type = 64,
  25. @frequency_interval = 0,
  26. @frequency_relative_interval = 0,
  27. @frequency_recurrence_factor = 0,
  28. @frequency_subday = 0,
  29. @frequency_subday_interval = 0,
  30. @active_start_time_of_day = 0,
  31. @active_end_time_of_day = 235959,
  32. @active_start_date = 20131028,
  33. @active_end_date = 99991231,
  34. @enabled_for_syncmgr = N'False',
  35. @dts_package_location = N'Distributor'
  36. GO

7>检查复制,一切正常

在测试过程中,特地在订阅库上增加部分无关表,复制搭建完毕后,这些无关表依然存在,表明本次操作对这些表无影响。

误区:在讨论备份初始化时,一部分人都认为需要使用备份在订阅上还原,如果订阅库上存在其他数据,则不能使用备份初始化来初始化订阅。
解释:使用备份初始化时为了避免生成快照时对发布库的影响,而在创建订阅时指定备份,只是需要利用该备份来获取一个LSN,使用该LSN来告诉订阅应该从哪个点开始同步数据。

补充:注意在备份初始化前停止发布库日志备份

相关:
http://www.cnblogs.com/TeyGao/p/3521231.html
http://www.cnblogs.com/TeyGao/p/3521234.html

Replication--备份初始化需要还原备份么?的更多相关文章

  1. Navicat mysql 数据库备份和使用,备份以后是nb3文件

    通过Navicat进行Mysql数据库自动备份与还原   Mysql数据库自动备份流程 Navicat版本为:Navicat 12.0.26 例:test为用于测试自动备份的数据库,里面有表t_per ...

  2. SQLServer 以备份初始化订阅

    原文:SQLServer 以备份初始化订阅 在创建事务复制时,如果发布数据库很大,使用快照初始化时,将等待很久,如果出现问题可能又得重新初始化.使用备份初始化会省很多时间,但是数据库在创建发布订阅期间 ...

  3. mysql 命令行还原备份数据库

    通常数据库还原备份可以通过navicat等数据库管理工具进行,只需要简单的导出导入就行了,但遇到有索引外键的数据库,数据库管理工具运行.sql文件会报错,这时候可以尝试命令行导入,亲测可以成功 MyS ...

  4. Sql Server 备份还原失败错误ERROR:3145(备份集中的数据库备份与现有的数据库不同)及解决办法

    SQL Server备份文件bak,备份后还原出现错误3145,备份集中的数据库备份与现有的 'xxx' 数据库不同. 解决办法如下: 1,新建一个与现有数据库重名的数据库. 如果您不知道数据库名称, ...

  5. mssql server 2005还原数据库bak文件与“备份集中的数据库备份与现有的xx数据库不同”解决方法

    mssql server 2005还原数据库bak文件,网站使用虚拟主机建站会经常遇到,一般情况下,主机商有在线的管理程序,但有时候没有的话,就需要本地还原备份sql数据库了.这种情况mssql se ...

  6. mssql sqlserver 快速表备份和表还原的方法

    摘要: 在sqlserver维护中,我们偶尔需要运行一些sql脚本对数据进行相关修改操作,在数据修改前我们必须对表数据进行备份来避免出现异常时,可以快速修复数据, 下文讲述sqlserver维护中,快 ...

  7. PgSql备份pg_dump与还原手记pg_restore(转)可以直接跳转至最后面的示例进行查看

    PgSql备份pg_dump与还原手记pg_restore(转) 可以直接跳转至最后面的示例进行查看 真没有想到,以前一直是PostgreSQL使用者,突然需要库移植又成了头一招了!原来它与mysql ...

  8. Thinkphp3.2 备份数据库和还原数据的方法

    其实Thinkphp框架并没有自带备份数据库的功能,但是细心的朋友可能会发现Thinkphp的一套内容管理系统oneThink是有备份数据库和还原数据的功能的. 所以今天我就来聊一聊,oneThink ...

  9. 还原对于server失败 备份集中的数据库备份与现有数据库不同

    还原对于server失败 备份集中的数据库备份与现有数据库不同         今天在SQL Server 2008 R2中还原一个数据库备份,遇到错误.还原对于server失败 备份集中的数据库备份 ...

随机推荐

  1. mysql 使用inet_aton和inet_ntoa处理ip地址数据

    mysql 使用inet_aton和inet_ntoa处理ip地址数据 mysql提供了两个方法来处理ip地址 inet_aton 把ip转为无符号整型(4-8位) inet_ntoa 把整型的ip转 ...

  2. Python3 使用requests请求,解码时出错:'utf8' codec can't decode byte 0x8b in position 1: invalid start byte

    requests请求的响应内容能够通过几个属性获得: response.text 为解码之后的内容,解码会根据响应的HTTP Header中的Content-Type选择字符集.例如 "'C ...

  3. docker field

  4. fastjson数据格式转换 SerializerFeature属性详解

    SerializerFeature属性 名称 含义 备注 QuoteFieldNames 输出key时是否使用双引号,默认为true   UseSingleQuotes 使用单引号而不是双引号,默认为 ...

  5. Cannot find class [org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer]

    解决方案:添加spring-webmvc好多人都不知道org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer这个类到底 ...

  6. Android系统自带样式(@android:style/) (转)

    1 android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen" 布局页面最上面 不会显示  and ...

  7. 介绍MVC编程架构模式

    MVC(Model/View/Controller)模式是国外用得比较多的一种框架模式,最早是在Smaltalk中出现.MVC包括三类对象. Model——是应用对象 View——是它在屏幕上的表示 ...

  8. ajax传递数组及后台接收

    ajax传递的是{"items":arr},其中arr=[]; 在后台String[] items=req.getParameterValues("items" ...

  9. Qt Pro file

    Qt keys qmake Manual Building Common Project Types #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...

  10. golang之切片

    1.切片:切片是数组的一个引用,因此切片是引用类型 2.切片的长度可以改变,因此,切片是个可变的数组. 3.切片遍历方式和数组一样,可以用len()求长度 4.cap可以求出slice最大的容量,0& ...