[分享] 数据库安全部署:Sql Server 2008 R2数据库同步数据

[复制链接]

该用户从未签到

18

主题

78

回帖

536

积分

[INTOHARD]连长

Rank: 4

积分
536
发表于 2014-12-22 09:10:31 | 显示全部楼层 |阅读模式
本帖最后由 datahdd 于 2014-12-22 09:31 编辑

  对于数据库的复制功能一直也没有用过,正好这次需要做数据库之间的数据同步,就把数据库复制同步整理了一下。数据库同步可以是同一个服务器之间不同数据库之间数据同步,也可以是局域网内不同服务器间数据库的同步。因为这次做的就是局域网内两台服务器上数据库间数据的同步,对于不是在同一局域网内的两台或多台服务器数据库同步是否可以实现,暂时没有做测试,也没有深入的了解,所以也不知道是否可以实现了。有不到之处望多多指教。

  下面具体说一下步骤,首先我们说一下发布服务器上的准备工作和条件,先把Sql Server代理设置为自启动;对事务发布,确保数据库表要有主键;新建一个文件夹,设置为共享。

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

   001.jpg
       002.jpg

  接着,一直下一步即可,在快照文件夹出注意一下

003.jpg
004.jpg

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

   005.jpg

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

   006.jpg

  下一步,默认填写

    007.jpg
   008.jpg  

  下一步,勾选配置分发

    009.jpg
   010.jpg  

  点完成,可以看到:

   011.jpg
   012.jpg

  至此配置分发已经好了,接着就是创建本地发布了,

   013.jpg

  下一步选择要同步的数据库
         
  
   014.jpg



  这个地方选择事务发布,具体的每个发布可以看说明,后面也会讲到

   015.jpg

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

   016.jpg

  下一步,添加筛选项,如果需要就添加,不需要直接下一步,添加的界面右图

   017.jpg  
   018.jpg

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

   019.jpg

  下一步,点安全设置,如下设置:
020.jpg 021.jpg
    

  确定后如下:

   022.jpg

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

   023.jpg
   024.jpg

  点完成

   025.jpg
   026.jpg

  至此本地发布就创建好了,这时再展开复制-本地发布可以看到刚刚创建好的本地发布test

   027.jpg

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

   028.jpg
   029.jpg

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

   030.jpg
   031.jpg

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

    032.jpg
033.jpg

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

   034.jpg
   035.jpg

  下一步,设置安全性

   036.jpg
   037.jpg

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

   038.jpg
   039.jpg

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

      040.jpg
   041.jpg

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

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

   042.jpg

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

  还有一个就是分发数据库distribution,他是可以找到的,他存在系统数据库中。

   045.jpg

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

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

  快照发布:发布服务器按照预定的时间间隔向订阅服务器发送已发布数据的快照。他的工作机制是:发布服务器,将要发布的数据库整个做一个快照;订阅服务器的快照代理程序把发布服务器的快照读取过来,放在本地的快照文件夹内;订阅服务器的发布代理程序把快照文件夹中的快照发布到订阅服务器上。历史记录和快照记录在分发服务器中。

  事物发布:在订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。他的基本原理:初始数据和架构(通过快照复制来完成),从这里可以体现出来快照复制,是所有复制的基础 。快照复制在订阅服务器上建立了订阅数据库;发布服务器的数据修改后,写事务日志;分发服务器的日志读取代理读取发生改变的数据的事务日志,把这些事务日志保存在发布服务器的发布数据库中;分发服务器的分发代理程序 将分发数据库中的事务日志分发到各个订阅服务器上,然后把历史记录和错误记录在分发数据库中。

  具有可更新订阅的事务发布: SQL Server 订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。来自订阅服务器的事务被应用于发布服务器。

  合并发布:在订阅服务器收到已发布数据的初始快照后,发布服务器和订阅服务器可以独立更新已发布数据。更改会定期合并。Microsoft SQL Server Compact Edition 只能订阅合并发布。

  这几个发布的区别是:

  1、快照发布和事务发布是单向的,即A->B;合并发布是双向的,A->B,B->A。

  2、快照复制是复制所有的数据,而事务复制和合并复制是复制数据的更改。

  以上就是复制的整个流程了,不过这个只是简单是数据同步,实际的项目中可以根据需求来选择发布类型以及配置。以上有不到之处望多多指教。
  • TA的每日心情
    奋斗
    2023-12-5 18:48
  • 签到天数: 3744 天

    [LV.Master]三朝元老

    214

    主题

    5655

    回帖

    2万

    积分

    [INTOHARD]旅长

    Rank: 9Rank: 9Rank: 9

    积分
    25278
    QQ
    发表于 2014-12-23 00:34:58 | 显示全部楼层
    帮楼主顶起来
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-2-23 13:49
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    7

    主题

    159

    回帖

    1560

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    1560
    发表于 2018-1-13 10:13:07 | 显示全部楼层
    路过,帮顶的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    3

    回帖

    5

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    5
    发表于 2020-2-15 14:02:34 | 显示全部楼层
    顶起楼主,超详细
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表