SQL Server数据库同步配置

目录

1.概述

2.同步配置


1.概述

存货又来了。

SQL Server 2008数据库同步配置

2.同步配置

数据库同步可以是同一个服务器不同数据库之间数据同步,也可以是局域网内不同服务器间数据库的同步。

先把SQL Server代理设置为自启动;对事务发布,确保数据库表要有主键;新建一个文件夹,设置为共享。

首先我们设置一下配置分发,如果之前做过配置分发设置,就是下图的效果,可以直接创建本地发布。

如果之前没做过配置分发设置,则在“复制”上右键选择配置分发,如下图所示。

然后,一直下一步,在快照文件夹注意一下


        

下一步,如果一开始没有设置SQL Server代理为自启动,会提示这个。

下一步,这个地方填写一开始创建好的共享文件夹地址,如D:\ShareFolder。

下一步,默认填写

下一步,勾选配置分发

点完成,然后如下图。

到这里配置分发已经好了,接着就是创建本地发布了在本地发布点右键,选择新建发布。

下一步选择要同步的数据库

选择事务发布

下一步,如果数据库中有视图等,会显示出来,勾选要同步的对象

下一步,添加筛选项,如果需要就添加,不需要直接下一步,如下

不做添加,下一步,勾选第一项

下一步,点安全设置,设置

确定后如下图。

下一步,勾选创建发布,下一步,填写发布名称

点击完成

到这一步本地发布就创建好了,开复制->本地发布,可以看到创建好的本地发布test

创建好了本地发布就要创建订阅了,为了方便就在本机做订阅,如果在其他服务器上做订阅流程是一样的只是在选择发布服务器时有点区别,下面会讲。

下一步,如果这地方是在本机订阅,直接选择数据库和发布test,如果是订阅其他服务器上的发布,可以展开发布服务器,选择“查找SQL Server 发布服务器”。

这时会弹出数据库登录界面,需要注意一下,服务器登录要用计算机名称,不能用IP地址或别名,还要注意,要链接发布服务器,因为确保发布服务器上数据库允许远程链接。链接上之后会在刚才的界面展示这个服务器上的发布,选择好发布,下一步,勾选第一项。

下一步,勾选订阅服务器,选择订阅数据库,只要选择新建数据库就可以了。这时会弹出创建数据库对话框,创建一个数据库

下一步,设置安全性

确定,下一步,同步计划选连续运行,初始化时间选择立即。

下一步,选择立即创建订阅,一直下一步知道完成。这个时候展开复制下的本地发布和本地订阅,可以看到发布和订阅都存在了。而且刚才创建的订阅数据库TestDataDY在数据库中也存在了。

所有的工作都已经做好了,下面就是测试了。因为我们是把TestData作为发布的数据库,TestDataDY是订阅的数据库,因此我们在TestData数据库的表中添加或修改数据库,看TestDataDY数据库中的数据是否也跟着响应的改变。测试的过程可以自己手动的做一下。

接下来我们说一下其他的,第一个就是一开始我们创建的共享文件夹,他叫快照文件夹,顾名思义就是用来存放快照的。我们可以找到这个文件夹并打开看一下,一开始是空的文件夹,当我创建了发布和订阅以后,在此打开可以看到,有四个以发布的数据库命名的文件。这些就是数据库TestData中的表的初始架构和数据。

上面创建订阅的时候创建的订阅数据库,我们只是创建了数据库,而数据库中的表、字段等我们没有创建,当我们创建好订阅以后,这些表和字段都自动的创建好了,就是通过快照文件夹中的初始架构和数据来完成的。

分发数据库distribution,是可以找到的,存在系统数据库中。

这个数据就一张表和一个字段,主要的作用是用来存储历史记录、错误和新事务。

下来就是发布类型,发布类型有快照发布,事务发布,具有可更新订阅的事务发布和合并发布。

  • 快照发布:发布服务器按照预定的时间间隔向订阅服务器发送已发布数据的快照。他的工作机制是:发布服务器,将要发布的数据库整个做一个快照;订阅服务器的快照代理程序把发布服务器的快照读取过来,放在本地的快照文件夹内;订阅服务器的发布代理程序把快照文件夹中的快照发布到订阅服务器上。历史记录和快照记录在分发服务器中。
  • 事务发布:在订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。他的基本原理:初始数据和架构(通过快照复制来完成),从这里可以体现出来快照复制,是所有复制的基础 。快照复制在订阅服务器上建立了订阅数据库;发布服务器的数据修改后,写事务日志;分发服务器的日志读取代理读取发生改变的数据的事务日志,把这些事务日志保存在发布服务器的发布数据库中;分发服务器的分发代理程序 将分发数据库中的事务日志分发到各个订阅服务器上,然后把历史记录和错误记录在分发数据库中。
  • 具有可更新订阅的事务发布: SQL Server 订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。来自订阅服务器的事务被应用于发布服务器。
  • 合并发布:在订阅服务器收到已发布数据的初始快照后,发布服务器和订阅服务器可以独立更新已发布数据。更改会定期合并。Microsoft SQL Server Compact Edition 只能订阅合并发布。

这几个发布的区别是:

  • 快照发布和事务发布是单向的,即A->B合并发布是双向的,A->B,B->A。
  • 快照复制是复制所有的数据,而事务复制和合并复制是复制数据的更改。
  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是sqlserver数据同步的步骤: 1. 在源数据库和目标数据库中创建一个用于同步的用户,并授予该用户在源数据库和目标数据库中的读取和写入权限。 2. 在源数据库中创建一个用于同步的存储过程,该存储过程将源数据库中的数据插入到目标数据库中。存储过程的代码如下所示: ```sql CREATE PROCEDURE DataSynchronization AS BEGIN SET NOCOUNT ON; INSERT INTO [目标数据库].[dbo].[目标表] ([列1], [列2], [列3]) SELECT [列1], [列2], [列3] FROM [源数据库].[dbo].[源表] END ``` 3. 在目标数据库中创建一个链接服务器,链接到源数据库。链接服务器的代码如下所示: ```sql EXEC sp_addlinkedserver @server = '源数据库服务器名称', @srvproduct = 'SQL Server'; ``` 4. 在目标数据库中创建一个代理作业,该作业将定期运行存储过程以同步数据。代理作业的代码如下所示: ```sql USE [msdb] GO EXEC msdb.dbo.sp_add_job @job_name=N'DataSynchronization', @enabled=1, @notify_level_eventlog=0, @notify_level_email=0, @notify_level_netsend=0, @notify_level_page=0, @delete_level=0, @description=N'No description available.', @category_name=N'[Uncategorized (Local)]', @owner_login_name=N'sa', @job_id = @jobId OUTPUT GO EXEC msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'DataSynchronization', @step_id=1, @cmdexec_success_code=0, @on_success_action=1, @on_success_step_id=0, @on_fail_action=2, @on_fail_step_id=0, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'TSQL', @command=N'EXEC [目标数据库].[dbo].[DataSynchronization]', @database_name=N'master', @flags=0 GO EXEC msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)' GO ``` 5. 启动代理作业以开始同步数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ak2111

你的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值