SQL Server复制用备份文件初始化订阅
创始人
2024-07-16 08:01:39
0

下面为您介绍一个SQL Server复制用备份文件初始化订阅的方法,该方法供您参考,如果您遇到过类似方面的问题,不妨一看。

这是一个让我觉得头疼的blog记录,弄了半天我还是很晕,其实也许结果就是我折腾的那个样子,但我折腾出来的结果感觉实在是觉得有点麻烦。默认创建的订阅都是用快照初始化的,但是也可以不使用快照来初始化订阅,而使用数据库备份来初始化。至于原因msdn有如下描述对使用这种初使化的方式:

在某些方案中,例如涉及大型初始数据集的方案中,***用其他方法初始化订阅。初始化订阅服务器的其他方法包括:

指定备份。还原订阅服务器上的备份,然后分发代理将SQL Server复制任何所需的复制元数据和系统过程。使用备份进行初始化是向订阅服务器传递数据最快的方法,而且也很方便,因为如果在启用发布以使用备份进行初始化之后取得备份,则可以使用任何最近的备份。

我的理解就是当在SQL Server复制中,有需要初始化大型的订阅数据库的时候,就不要使用快照模式让发布数据库来自动初始化订阅数据库的数据和架构,用备份还原的方法,先将发布数据库还原到订阅服务器上,然后再进行事务复制这样就只复制增量,而不用快照进行初始化SQL Server复制了。但是使用这种复制让人觉得有个麻烦的地方,就是当发布数据库的架构发生了改变的时候,比如多添了表或者存储过程视图等的时候,如果又想在发布中包含这些添加的新项,就都得在订阅服务器上再恢复一遍***的备份,还得在发布服务器上执一遍初始化脚本,反正觉得挺麻烦的,如果是用快照的话,对数据架构的如上的改变,只需要生成***的快照(初始化一下订阅)即可。也许是我弄的不对吧,我自己目前也不太清楚,反正我试了半天,如果想用备份初始化订阅就得主要步骤就得按如下的执行:

  1. exec sp_addsubscription   
  2.     @publication = N'publicationname',  
  3.     @subscriber ='computername\sqlserverinstancename',  
  4.     @destination_db = N'subscription_database_name',  
  5.     @subscription_type = N'Push',  
  6.     @sync_type = N'initialize with backup',  
  7.     @article = N'all',  
  8.     @update_mode = N'read only',  
  9.     @subscriber_type = 0,  
  10.     @backupdevicetype='disk',  
  11.     @backupdevicename='g:\reptest\t.bak(backupfilepath)',  
  12.     @frequency_type = 1 
  13.  

1,先在发布属性中的订阅选项中,更改允许从备份文件初始化,默认的是不允许。(创建好发布修改即可,以后不用执行)
2,对发布数据库备份,然后在订阅服务器上恢复这个备份
3,在发布数据库中执行如下的脚本,具体参数参见联机文档关于存储过程sp_addsubscription的说明(每执行一次第2步,也就是每次新备份了一次发布数据库并在订阅服务器上恢复了它,就要执行一次这个脚本,依我的测试如果不执行如下的脚本,只进行了备份恢复,再运行订阅的时候就会出错,当然这也可能跟具体的情况有关),用备份文件进行初始化的订阅只能使用如下脚本来创建跟初始化:

如果是***次运行这个脚本,执行完之后创建的订阅是运行在sqlserver agent的启动账户下的,如果有必要需要修改成相应的代理运行账户来执行订阅同步。

另外整个初始化过程可参见sqlserver联机丛书
How to: Initialize a Transactional Subscriber from a Backup (Replication Transact-SQL Programming)
初始化事务订阅(不使用快照)

 

 

【编辑推荐】

SQL Server数据复制的三种方法

sql server全文索引的使用方法

获得sql server自增字段的值

重置sql server标识列

T-SQL语句创建SQL Server索引

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...