GVKun编程网logo

[转]SqlServer数据库同步方案详解

10

在本文中,我们将给您介绍关于[转]SqlServer数据库同步方案详解的详细内容,此外,我们还将为您提供关于100多台sqlserver数据库同步到ORACLE有什么工具或方法?、mysql、sqls

在本文中,我们将给您介绍关于[转]SqlServer数据库同步方案详解的详细内容,此外,我们还将为您提供关于100多台sqlserver数据库同步到ORACLE有什么工具或方法?、mysql 、sqlserver数据库,实时同步,增量同步(脚本模式)、MYSQL同步Sqlserver数据库数据、SQL Server 2000数据库同步 同步两个SQLServer数据库的内容的知识。

本文目录一览:

[转]SqlServer数据库同步方案详解

[转]SqlServer数据库同步方案详解

 [转]SqlServer数据库同步方案详解

http://www.cnblogs.com/gbmf/archive/2009/06/04/1496013.html

100多台sqlserver数据库同步到ORACLE有什么工具或方法?

100多台sqlserver数据库同步到ORACLE有什么工具或方法?

我有100多台sqlserver数据库(城域网中),想把数据同步到指定一台ORACLE数据库中有什么好的工具或方法吗?


注:总共数据大概一天同步20W条记录

mysql 、sqlserver数据库,实时同步,增量同步(脚本模式)

mysql 、sqlserver数据库,实时同步,增量同步(脚本模式)

下载网站:www.SyncNavigator.CN 
 客服QQ1793040
----------------------------------------------------------


关于HKROnline SyncNavigator 注册机价格的问题

 

 

HKROnline SyncNavigator 8.4.1 非破解版 注册机 授权激活教程
 

 

最近一直在研究数据库同步的问题,在网上查了很多资料,也请教了很多人,找到了一种通过快照复制的方法。研究了一番后发现之前就是用的这个方法,效果不是很好,果断放弃。经过了一番寻觅和他人指点,最后从一位热心网友那里得知一款很好用的软件—— SyncNavigator。

 

 

好东西就要拿出来跟大家分享,所以今天向大家介绍一下这款软件,及其一些使用方法。下面先看看它有什么强大的功能吧!

 

SyncNavigator的基本功能:

 

自动同步数据/定时同步数据
无论是实时同步/24小时不间断同步,还是根据计划任务(每小时/每日/每周/等)定时自动同步都能完全胜任。

完整支持 Microsoft SQL Server
完整支持 Microsoft SQL Server 2000 2005 2008 数据库类型。并能在不同数据库版本之间相互同步数据。

数据集成(Data Integration)产品提供数据同步服务,有向导模式和脚本模式两种方式。向导模式更简单,脚本模式更灵活。

本章介绍如何将Table Store中的增量数据通过数据集成的脚本模式同步到OpenSearch中。

途径

数据集成脚本模式

  • Reader:OTSStreamReader
  • Writer:OSSWriter

配置Table Store

无需配置。

配置OSS

无需配置。

配置数据集成

  1. 创建Table Store数据源。
     
    说明

     

    • 如果已经创建了Table Store的数据源,可以跳过这一步。
    • 如果您不希望创建数据源,也可以在后续的配置页面中配置相应的endpoint、instanceName、AccessKeyID和AccessKeySecret。

    创建数据源的具体步骤,请参见创建Table Store数据源。

  2. 创建OSS数据源。
    本操作与上一个步骤类似,只是选择OSS作为数据源。

     

     
    说明 配置OSS数据源的参数时,注意Endpoint不包括bucketName。
  3. 创建同步任务。
    1. 登录数据集成控制台。
    2. 同步任务页面,选择脚本模式。
    3. 在弹出的导入模板对话框中,来源类型选择OTS Stream,目标类型选择OSS。
    4. 单击确认,进入配置页面。
  4. 完善配置项。
    1. 在配置界面,已经提前嵌入了OTSStreamReader和OSSWriter的模板,请参考以下解释完成配置。
       
      {
      "type": "job", "version": "1.0", "configuration": { "setting": { "errorLimit": { "record": "0" # 允许出错的个数,当错误超过这个数目的时候同步任务会失败。 }, "speed": { "mbps": "1", # 每次同步任务的最大流量。 "concurrent": "1" # 每次同步任务的并发度。 } }, "reader": { "plugin": "otsstream", # Reader插件的名称。 "parameter": { "datasource": "", # Table Store的数据源名称,如果有此项则不再需要配置endpoint,accessId,accessKey和instanceName。 "dataTable": "", # TableStore中的表名。 "statusTable": "TableStoreStreamReaderStatusTable", # 存储TableStore Stream状态的表,一般不需要修改。 "startTimestampMillis": "", # 开始导出的时间点,由于是增量导出,需要循环启动此任务,则这里每次启动的时候的时间都不一样,这里需要设置一个变量,比如${start_time}。 "endTimestampMillis": "", # 结束导出的时间点。这里也需要设置一个变量,比如${end_time}。 "date": "yyyyMMdd", # 导出哪一天的数据,功能和startTimestampMillis、endTimestampMillis重复,这一项需要删除。 "mode": "single_version_and_update_only", # TableStore Stream导出数据的格式,目前需要设置成:single_version_and_update_only。如果配置模板中没有则需要增加。 "column":[ # 需要导出TableStore中的哪些列到OSS中去,如果配置模板中没有则需要增加,具体配置个数由用户自定义设置 { "name": "uid" # 列名,这个是Table Store中的主键 }, { "name": "name" # 列名,这个是Table Store中的属性列。 }, ], "isExportSequenceInfo": false, # single_version_and_update_only 模式下只能是false。 "maxRetries": 30 # 最大重试次数。 } }, "writer": { "plugin": "oss", # Writer插件的名称 "parameter": { "datasource": "", # OSS的数据源名称 "object": "", # 最后备份到OSS的文件名的前缀,建议Table Store实例名/表名/date。比如"instance/table/{date}" "writeMode": "truncate", # 支持truncate|append|nonConflict,truncate会清理已存在的同名文件;append会加到已存在的同名文件内容后面;nonConflict会报错当同名文件存在时。 "fileFormat": "csv", # 文件类型 "encoding": "UTF-8", # 编码类型 "nullFormat": "null", # 当遇到控制时,在文本中如何表示 "dateFormat": "yyyy-MM-dd HH:mm:ss", # # 时间格式 "fieldDelimiter": "," # 每一列的分隔符 } } } }
       
      说明 详细的配置项解释请参见 配置OTSStreamReader和 配置OSSWriter。
    2. 单击保存,保存任务。
  5. 运行任务。
    1. 单击页面上方的运行。
    2. 在弹出的配置框中,配置变量参数。
    3. 单击确认后开始运行任务。
    4. 运行结束后登录OSS控制台检查是否成功备份文件。
  6. 配置调度。
    1. 单击提交。
    2. 在弹出的对话框中,配置各项参数。
      增量同步(脚本模式)

       

      参数说明如下:

       
      参数 描述
      调度类型 选择周期调度。
      自动重跑 如果勾选,则当失败的时候会默认重试3次,每次间隔2分钟。
      生效日期 使用默认值。默认从1970-01-01到一百年后。
      调度周期 选择分钟。
      起始时间 选择00:00至23:59,表示全天24小时都需要调度。
      时间间隔 选择5分钟。
      start_time 输入$[yyyymmddhh24miss-10/24/60],表示调度时间减去10分钟。
      end_time 输入$[yyyymmddhh24miss-5/24/60],表示调度时间减去5分钟。
      date 输入${bdp.system.bizdate},表示调度日期。
      依赖属性 如果有依赖则填写,没有则不用填。
      跨周期依赖 选择自依赖,等待上一调度周期结束,才能继续运行。
    3. 单击确认。

      周期性的同步任务配置完成,当前配置文件显示为只读状态。

  7. 查看任务。
    1. 单击页面上方的运维中心。
    2. 在左侧导航栏,选择任务列表 > 周期任务,可以查看新创建的同步任务。
    3. 新建的任务会从第二天00点开始执行。
      • 在左侧导航栏中,选择任务运维 > 周期实例,查看每一个预创建的当天同步任务,每个任务相隔5分钟,每个任务处理过去10~5分钟的数据。
      • 单击实例名称,可以查看详情。

    4. 单个任务在运行中或运行结束后,可以查看日志。
  8. 检查导出到OSS中的数据。

    登录OSS控制台,查看是否生成了新的文件,文件内容是否正确。

至此,Table Store数据可以在延迟5~10分钟的基础上自动同步到OSS中了。

MYSQL同步Sqlserver数据库数据

MYSQL同步Sqlserver数据库数据

mysql同步sqlserver数据库数据的方法。

1.下载安装SQLyog v10.51,确保本机安装了Mysql和Sql server 2008 r2。


2.使用SQLyog连上本地mysql数据库


3.点数据库>导入>导入外部数据 进入SQLyog外部数据导入向导,选择“开始新的工作”,点“下一步”

1.png


4.在数据源类型中只有access、excel、csv、任何odbc数据源。使用前面三个中间数据格式转换方式都可以导入不过就麻烦了。这里我们选择任何ODBC数据源

2.png


5.再点击“建立新的DSN”,弹出窗口“创建新数据源”,我们选择“系统数据源”并进入下一步

3.png


6.选择数据源驱动“SQL Server”,进入下一步点“完成”

4.png


7.设置一个数据源名称,并填写你的SQL服务器IP,如果是本地服务器可以直接下拉框选择

5.png


8.输入登录账号密码(看你的SQL服务器是哪种登录验证方式),填写好了就下一步、下一步、完成。

6.png


9.弹出配置信息窗口后就可以点“测试数据源”,看是否连接到服务器

7.png


10.再回到导入向导,选下一步。


11.设置要导入的本地目标数据库之后下一步,再选择“拷贝数据到本地”下一步,勾选你要导入的数据表,后面还可以相应设置每个表要拷贝到本地那个数据表名称,然后下一步就开始拷贝数据至本地MYSQL。

8.png




以上就是MYSQL同步Sqlserver数据库数据的详细内容,更多请关注php中文网其它相关文章!

SQL Server 2000数据库同步 同步两个SQLServer数据库的内容

SQL Server 2000数据库同步 同步两个SQLServer数据库的内容

感兴趣的小伙伴,下面一起跟随小编 jb51.cc的小编两巴掌来看看吧!

复制前要做好的准备工作:

  1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户
  我的电脑
  控制面板
  管理工具
  计算机管理
  用户和组
  右键用户
  新建用户
  建立一个隶属于administrator组的登陆windows的用户

  2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:

  我的电脑
  D:\ 新建一个目录,名为: PUB
  右键这个新建的目录
  属性  共享
  选择共享该文件夹
  通过权限按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限
  确定


  3.设置sql代理(sqlSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)

  开始  程序  管理工具  服务
  右键sqlSERVERAGENT
  属性  登陆  选择此账户
  输入或者选择第一步中创建的windows登录用户名
  密码中输入该用户的密码

  4.设置sql Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)

  企业管理器
  右键sql实例  属性
  安全性  身份验证
  选择sql Server 和 Windows
  确定

  5.在发布服务器和订阅服务器上互相注册
  企业管理器
  右键sql Server组
  新建sql Server注册...
  下一步  可用的服务器中,输入你要注册的远程服务器名  添加
  下一步  连接使用,选择第二个sql Server身份验证
  下一步  输入用户名和密码
  下一步  选择sql Server组,也可以创建一个新组
  下一步  完成

  6.对于只能用IP,不能用计算机名的,为其注册服务器别名
  (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)
  开始  程序  Microsoft sql Server  客户端网络实用工具
  别名  添加
  网络库选择TCP/IP  服务器别名输入sql服务器名
  连接参数  服务器名称中输入sql服务器ip地址
  如果你修改了sql的端口,取消选择动态决定端口,并输入对应的端口号


  sql数据库同步复制

  一、建立发布和分发服务器

[欢迎使用配置发布和分发向导]->[选择分发服务器]

->[使@servername成为它自己的分发服务器,sql Server将创建分发数据库和日志]

->[制定快照文件夹]-> [自定义配置] -> [否,使用下列的默认配置] -> [完成]

上述步骤完成后,会在当前@servername sql Server数据库里建立了一个distribion库和

一个distributor_admin管理员级别的用户(我们可以任意修改密码)

服务器上新增加了四个作业:
[ 代理程序历史记录清除: distribution ]
[ 分发清除: distribution ]
[ 复制代理程序检查 ]
[ 重新初始化存在数据验证失败的订阅 ]

sql Server企业管理器里多了一个复制监视器,当前的这台机器就可以发布、分发、订阅了。

我们再次在sql Server企业管理器里[复制]-> 右键选择
->[配置发布、订阅服务器和分发],可以看到类似下图:



我们可以在 [发布服务器和分发服务器的属性] 窗口
-> [发布服务器] -> [新增] -> [确定]
-> [发布数据库] -> [事务]/[合并] -> [确定]
-> [订阅服务器] -> [新增] -> [确定]
把网络上的其它sql Server服务器添加成为发布或者订阅服务器.
新增一台发布服务器的选项:

我这里新建立的JIN001发布服务器是用管理员级别的数据库用户test连接的,
到发布服务器的管理链接要输入密码的可选框,默认的是选中的,
在新建的JIN001发布服务器上建立和分发服务器FENGYU/FENGYU的链接的时需要输入distributor_admin用户的密码
到发布服务器的管理链接要输入密码的可选框,也可以不选,
也就是不需要密码来建立发布到分发服务器的链接(这当然欠缺安全,在测试环境下可以使用)

二、新建立的网络上另一台发布服务器(例如JIN001)选择分发服务器

[欢迎使用配置发布和分发向导]->[选择分发服务器]

-> 使用下列服务器(选定的服务器必须已配置为分发服务器) -> [选定服务器](例如FENGYU/FENGYU)

-> [下一步] -> [输入分发服务器(例如FENGYU/FENGYU)的distributor_admin用户的密码两次]

-> [下一步] -> [自定义配置] -> [否,使用下列的默认配置]

-> [下一步] -> [完成] -> [确定]

建立一个数据库复制发布的过程:

[复制] -> [发布内容] -> 右键选择 -> [新建发布]

-> [下一步] -> [选择发布数据库] -> [选中一个待发布的数据库]

-> [下一步] -> [选择发布类型] -> [事务发布]/[合并发布]
-> [下一步] -> [指定订阅服务器的类型] -> [运行sql Server 2000的服务器]

-> [下一步] -> [指定项目] -> [在事务发布中只可以发布带主键的表] -> [选中一个有主键的待发布的表]

->[在合并发布中会给表增加唯一性索引和 ROWGUIDCOL 属性的唯一标识符字段[rowguid],默认值是newid()]

(添加新列将: 导致不带列列表的 INSERT 语句失败,增加表的大小,增加生成第一个快照所要求的时间)

->[选中一个待发布的表]

-> [下一步] -> [选择发布名称和描述] ->

-> [下一步] -> [自定义发布的属性] -> [否,根据指定方式创建发布]

-> [下一步] -> [完成] -> [关闭]

发布属性里有很多有用的选项:设定订阅到期(例如24小时)

设定发布表的项目属性:

常规窗口可以指定发布目的表的名称,可以跟原来的表名称不一样。

下图是命令和快照窗口的栏目

( sql Server 数据库复制技术实际上是用insert,update,delete操作在订阅服务器上重做发布服务器上的事务操作

看文档资料需要把发布数据库设成完全恢复模式,事务才不会丢失

但我自己在测试中发现发布数据库是简单恢复模式下,每10秒生成一些大事务,10分钟后再收缩数据库日志,
这期间发布和订阅服务器上的作业都暂停,暂停恢复后并没有丢失任何事务更改 )

发布表可以做数据筛选,例如只选择表里面的部分列:

例如只选择表里某些符合条件的记录,我们可以手工编写筛选的sql语句:

发布表的订阅选项,并可以建立强制订阅:


成功建立了发布以后,发布服务器上新增加了一个作业: [ 失效订阅清除 ]

分发服务器上新增加了两个作业:
[ JIN001-dack-dack-5 ] 类型[ REPL快照 ]
[ JIN001-dack-3 ] 类型[ REPL日志读取器 ]

上面蓝色字的名称会根据发布服务器名,发布名及第几次发布而使用不同的编号

REPL快照作业是sql Server复制的前提条件,它会先把发布的表结构,数据,索引,约束等生成到发布服务器的OS目录下文件
(当有订阅的时候才会生成,当订阅请求初始化或者按照某个时间表调度生成)

REPL日志读取器在事务复制的时候是一直处于运行状态。(在合并复制的时候可以根据调度的时间表来运行)

建立一个数据库复制订阅的过程:

[复制] -> [订阅] -> 右键选择 -> [新建请求订阅]

-> [下一步] -> [查找发布] -> [查看已注册服务器所做的发布]

-> [下一步] -> [选择发布] -> [选中已经建立发布服务器上的数据库发布名]

-> [下一步] -> [指定同步代理程序登录] -> [当代理程序连接到代理服务器时:使用sql Server身份验证]
(输入发布服务器上distributor_admin用户名和密码)

-> [下一步] -> [选择目的数据库] -> [选择在其中创建订阅的数据库名]/[也可以新建一个库名]

-> [下一步] -> [允许匿名订阅] -> [是,生成匿名订阅]

-> [下一步] -> [初始化订阅] -> [是,初始化架构和数据]

-> [下一步] -> [快照传送] -> [使用该发布的默认快照文件夹中的快照文件]
(订阅服务器要能访问发布服务器的REPLDATA文件夹,如果有问题,可以手工设置网络共享及共享权限)

-> [下一步] -> [快照传送] -> [使用该发布的默认快照文件夹中的快照文件]

-> [下一步] -> [设置分发代理程序调度] -> [使用下列调度] -> [更改] -> [例如每五分钟调度一次]

-> [下一步] -> [启动要求的服务] -> [该订阅要求在发布服务器上运行sqlServerAgent服务]

-> [下一步] -> [完成] -> [确定]

成功建立了订阅后,订阅服务器上新增加了一个类别是[REPL-分发]作业(合并复制的时候类别是[REPL-合并])
它会按照我们给的时间调度表运行数据库同步复制的作业

三、sql Server复制配置好后,可能出现异常情况的实验日志:

1.发布服务器断网,sql server服务关闭,重启动,关机的时候,对已经设置好的复制没有多大影响

中断期间,分发和订阅都接收到没有复制的事务信息

2.分发服务器断网,对已经设置好的复制有一些影响

中断期间,发布服务器的事务排队堆积起来
(如果设置了较长时间才删除过期订阅的选项,繁忙发布数据库的事务日志可能会较快速膨胀),

订阅服务器会因为访问不到发布服务器,反复重试
我们可以设置重试次数和重试的时间间隔(最大的重试次数是9999,如果每分钟重试一次,可以支持约6.9天不出错)

分发服务器sql server服务启动,网络接通以后,发布服务器上的堆积作业将按时间顺序作用到订阅机器上:

会需要一个比较长的时间(实际上是生成所有事务的insert,delete语句,在订阅服务器上去执行)
我们在普通的PC机上实验的58个事务100228个命令执行花了7分28秒.

3.订阅服务器断网,对已经设置好的复制影响比较大,可能需要重新初试化

我们实验环境(订阅服务器)从18:46分意外停机以,第二天8:40分重启动后,
已经设好的复制在8:40分以后又开始正常运行了,发布服务器上的堆积作业将按时间顺序作用到订阅机器上
但复制管理器里出现快照的错误提示,快照可能需要重新初试化,复制可能需要重新启动.
(我们实验环境的机器并没有进行快照初试化,复制仍然是成功运行的)

四、删除已经建好的发布和定阅可以直接用delete删除按钮

我们最好总是按先删定阅,再删发布,最后禁用发布的顺序来操作。

如果要彻底删去sql Server上面的复制设置,可以这样操作:

[复制] -> 右键选择 [禁用发布] -> [欢迎使用禁用发布和分发向导]

-> [下一步] -> [禁用发布] -> [要在@servername上禁用发布]

-> [下一步] -> [完成禁用发布和分发向导] -> [完成]

我们也可以用T-sql命令来完成复制中发布及订阅的创建和删除,选中已经设好的发布和订阅,按属标右键
可以[生成sql脚本]。(这里就不详细讲了,后面推荐的网站内有比较详细的内容)

当你试图删除或者变更一个table时,出现以下错误
Server: Msg 3724,Level 16,State 2,Line 1
Cannot drop the table object_name because it is being used for replication.

比较典型的情况是该table曾经用于复制,但是后来又删除了复制

处理办法:

代码如下:

 
select * from sysobjects where replinfo >0 
sp_configure allow updates,1 
go 
reconfigure with override 
go 
begin transaction 
update sysobjects set replinfo = 0 where replinfo >0 
commit transaction 
go 
rollback transaction 
go 
sp_configure allow updates,0 
go 
reconfigure with override 
go 




疑问:
在合并复制配置完全后,如果同步代理停止了。我要在程序中去重新启动合并复制的同步代理。请问使用什么命令或存储过程呢?
解决办法:
sp_start_job
指示 sql Server 代理程序立即执行作业。

示例
下例启动名为 Nightly Backup 的作业。

USE msdb
EXEC sp_start_job @job_name = Nightly Backup


2、日志还原功能、、、
 

代码如下:

 
说明: 
下面的代码演示了如何利用日志还原功能,将主数据库中的数据变化及时反馈到备用数据库中 
备用数据库的数据可以随时用于查询,但不能被更新(备用数据库只读)。 

首先,创建一个演示用的数据库(主数据库) 
CREATE DATABASE Db_test 
ON 
( NAME = Db_test_DATA,FILENAME = c:\Db_test.mdf ) 
LOG ON 
( NAME = Db_test_LOG,FILENAME = c:\Db_test.ldf) 
GO 

对数据库进行备份 
BACKUP DATABASE Db_test TO disK=c:\test_data.bak WITH FORMAT 
GO 

把数据库还原成备用数据库(演示主数据库与这个备用数据库之间的同步) 
RESTORE DATABASE Db_test_bak FROM disK=c:\test_data.bak 
WITH REPLACE,STANDBY=c:\db_test_bak.ldf,MOVE Db_test_DATA TO c:\Db_test_data.mdf,MOVE Db_test_LOG TO c:\Db_test_log.ldf 
GO 

启动 sql Agent 服务 
EXEC master..xp_cmdshell net start sqlserveragent,no_output 
GO 

创建主服务器数据训与备用服务器数据库之间同步的作业 
DECLARE @jogid uniqueidentifier 
EXEC msdb..sp_add_job 
@job_id = @jogid OUTPUT,@job_name = N数据同步处理 

创建同步处理步骤 
EXEC msdb..sp_add_jobstep 
@job_id = @jogid,@step_name = N数据同步,@subsystem = Tsql,@command = N 
主数据库中进行日志备份 
BACKUP LOG Db_test TO disK=c:\test_log.bak WITH FORMAT 

备用数据库中还原主数据库的日志备份(应用主数据库中的最新变化 
实际应该时主数据库备份与备用数据库的还原作业应该分别在主服务器和备用服务器上建立,并且备份文件应该放在主服务器和备用都能访问的共享目录中 
RESTORE LOG Db_test_bak FROM disK=c:\test_log.bak WITH STANDBY=c:\test_log.ldf,@retry_attempts = 5,@retry_interval = 5 

创建调度(每分钟执行一次) 
EXEC msdb..sp_add_jobschedule 
@job_id = @jogid,@name = N时间安排,@freq_type=4,@freq_interval=1,@freq_subday_type=0x4,@freq_subday_interval=1,@freq_recurrence_factor=1 

添加目标服务器 
EXEC msdb.dbo.sp_add_jobserver 
@job_id = @jogid,@server_name = N(local) 
GO 

通过上述处理,主数据库与备用数据库之间的同步关系已经设置完成 
下面开始测试是否能实现同步 

在主数据库中创建一个测试用的表 
CREATE TABLE Db_test.dbo.TB_test(ID int) 
GO 

等待1分钟30秒(由于同步的时间间隔设置为1分钟,所以要延时才能看到效果) 
WAITFOR DELAY 00:01:30 
GO 

查询一下备用数据库,看看同步是否成功 
SELECT * FROM Db_test_bak.dbo.TB_test 

结果: 
ID 
- 

(所影响的行数为 0 行) 


测试成功 
GO 

最后删除所有的测试 
DROP DATABASE Db_test,Db_test_bak 
EXEC msdb..sp_delete_job @job_name=N数据同步处理 
GO 


=========================================================== 

服务器档机处理说明 
使用这种方式建立的数据库同步,当主数据库不可用时(例如,主数据库损坏或者停机检修) 
可以使用以下两种方法使备用数据库可用。 



1. 如果主数据库损坏,无法备份出最新的日志,可以直接使用下面的语句使备用数据库可读写(丢失最近一次日志还原后的所有数据)。
RESTORE LOG Db_test_bak WITH RECOVERY


2. 如果主数据库可以备份出最新日志,则可以使用下面的语句。
先备份主数据库的最新的事务日志
BACKUP LOG Db_test TO disK=c:\test_log.bak WITH FORMAT
再在备用数据库中恢复最新的事务日志,并且使备用数据库可读写(升级为主数据库)
RESTORE LOG Db_test_bak FROM disK=c:\test_log.bak

简单地说:
1. 你的sql服务要使用指定的windows用户登陆,而不能使用本地系统帐户
2. 用于登陆sql服务的用户要求对共享目录具有所有权限
3. 如果你的电脑没有加入到域,还必须保证源和目标服务器的sql服务设置的登陆用户是一样的(用户名和密码都一样)

网络备份主要是权限设置问题,参考下面的备份文件共享目录权限设置方法去解决目录的共享权限就可以了

下面假设是假设A服务器上的数据库备份到B服务器上的共享目录权限设置(两台服务器应该在局域网内,允许目录共享访问)::

1.机器A,B创建一个同名的windows用户,用户组设置为administrators,做为备份文件夹文件夹的有效访问用户,操作:
我的电脑
控制面板
管理工具
计算机管理
用户和组
右键用户
新建用户
建立一个隶属于administrator组的登陆windows的用户

2.在B机器器上,做为备份文件的存放目录,操作:
我的电脑D:\ 新建一个目录,名为: BAK
右键这个新建的目录
属性共享
选择共享该文件夹
通过权限按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限
确定


3.设置 MSsqlSERVER 及 sqlSERVERAGENT 服务的启动用户
开始程序管理工具服务
右键 MSsqlSERVER
属性登陆选择此账户
输入或者选择第一步中创建的windows登录用户名
密码中输入该用户的密码
确定
同样的方法设置 sqlSERVERAGENT

4.在A机器上完成对B机器BAK目录的映射

5.查询分析器中执行下面的语句,检验是否成功:
exec master..xp_cmdshell dir 映射的盘符

6.A服务器上做备份计划

备注:创建一个新的用户只是为了让MSsqlSERVER服务的启动帐户与共享目录的有效访问同名且密码相同,这样才能通过验证(所以你也可以用其他有效的用户来代替,只需要满足用户名和密码相同,并且拥有足够的权限)

我们今天的关于[转]SqlServer数据库同步方案详解的分享就到这里,谢谢您的阅读,如果想了解更多关于100多台sqlserver数据库同步到ORACLE有什么工具或方法?、mysql 、sqlserver数据库,实时同步,增量同步(脚本模式)、MYSQL同步Sqlserver数据库数据、SQL Server 2000数据库同步 同步两个SQLServer数据库的内容的相关信息,可以在本站进行搜索。

本文标签: