SQL Server复制用备份文件初始化订阅

数据库 SQL Server
SQL Server数据库复制用备份文件的初始化订阅对很多刚刚接触SQL Server的新人来说都是个难题,下面就教您SQL Server复制用备份文件初始化订阅的方法和步骤,供您参考。

下面为您介绍一个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索引

责任编辑:段燃 来源: 互联网
相关推荐

2010-07-02 11:00:59

SQL Server备

2010-11-08 11:12:08

SQL Server管

2009-02-27 14:20:00

MOSS服务器SQL备份服务器迁移

2023-11-12 23:08:17

C++初始化

2010-02-05 09:31:23

Ubuntu 配置文件

2011-04-11 16:07:13

系统备份

2010-02-07 14:50:46

Ubuntu配置文件

2019-11-04 13:50:36

Java数组编程语言

2009-09-08 09:48:34

LINQ初始化数组

2009-11-11 15:29:15

ADO初始化

2011-06-17 15:29:44

C#对象初始化器集合初始化器

2010-07-28 10:22:33

FlexApplica

2022-07-06 10:37:45

SpringServlet初始化

2020-12-03 09:50:52

容器IoC流程

2021-03-12 10:30:11

SpringMVC流程初始化

2024-01-15 06:34:09

Gin镜像容器

2019-11-01 14:50:18

Windows 10删除备份文件

2021-12-26 00:08:35

C++初始化列表

2009-09-18 11:15:52

C#数组初始化

2009-12-16 14:04:04

Ruby对象初始化
点赞
收藏

51CTO技术栈公众号