SQL Server复制用备份文件初始化订阅 |
本文标签:SQL Server复制 下面为您介绍一个SQL Server复制用备份文件初始化订阅的方法,该方法供您参考,如果您遇到过类似方面的问题,不妨一看 。 这是一个让我觉得头疼的blog记录,弄了半天我还是很晕,其实也许结果就是我折腾的那个样子,但我折腾出来的结果感觉实在是觉得有点麻烦 。默认创建的订阅都是用快照初始化的,但是也可以不使用快照来初始化订阅,而使用数据库备份来初始化 。至于原因msdn有如下描述对使用这种初使化的方式: 在某些方案中,例如涉及大型初始数据集的方案中,最好用其他方法初始化订阅 。初始化订阅服务器的其他方法包括: 指定备份 。还原订阅服务器上的备份,然后分发代理将SQL Server复制任何所需的复制元数据和系统过程 。使用备份进行初始化是向订阅服务器传递数据最快的方法,而且也很方便,因为如果在启用发布以使用备份进行初始化之后取得备份,则可以使用任何最近的备份 。 我的理解就是当在SQL Server复制中,有需要初始化大型的订阅数据库的时候,就不要使用快照模式让发布数据库来自动初始化订阅数据库的数据和架构,用备份还原的方法,先将发布数据库还原到订阅服务器上,然后再进行事务复制这样就只复制增量,而不用快照进行初始化SQL Server复制了 。但是使用这种复制让人觉得有个麻烦的地方,就是当发布数据库的架构发生了改变的时候,比如多添了表或者存储过程视图等的时候,如果又想在发布中包含这些添加的新项,就都得在订阅服务器上再恢复一遍最新的备份,还得在发布服务器上执一遍初始化脚本,反正觉得挺麻烦的,如果是用快照的话,对数据架构的如上的改变,只需要生成最新的快照(初始化一下订阅)即可 。也许是我弄的不对吧,我自己目前也不太清楚,反正我试了半天,如果想用备份初始化订阅就得主要步骤就得按如下的执行:
1,先在发布属性中的订阅选项中,更改允许从备份文件初始化,默认的是不允许 。(创建好发布修改即可,以后不用执行) 如果是第一次运行这个脚本,执行完之后创建的订阅是运行在sqlserver agent的启动账户下的,如果有必要需要修改成相应的代理运行账户来执行订阅同步 。 另外整个初始化过程可参见sqlserver联机丛书
|