海海日记-冯海滨博客

您现在的位置是:首页 > 系统 > 正文

系统

SQL Server 2005数据库复制简单图解-数据库高可用性

happyfhb2011-02-27系统1055

 本鸟给大家浅谈一下SQL 2005数据库的复制过程,那么为什么要进行复制呢?数据库复制是指:将表格或数据库的数据复制到另一个表格中或数据库中,利用数据库复制技术可以把数据库全部内容完整的复制到公司的各个系统中去(也可以选择部分数据),当使用SQL Server复制技术时,数据的复制时自动完成的。需要提的是,数据库复制不是什么新技术,早在SQL Server6.0中就有了。利用复制,即使服务器位于不同的地理区域,也可以将数据移动到不同的服务器上。

   数据库复制将涉及发布服务器,分发服务器和订阅服务器,这三种服务器可以再不同的服务器上,也可部署在同一服务器。SQL数据复制包括有快照复制,事务复制,合并复制。今天我给大家说说快照复制,快照复制为订阅者提供了自主权最大,但是却付出了数据时间延长的代价,快照复制取文章的完整副本,通过对其他SQL Server使用BCP文件(就是我们说的存储由大容量复制实用工具或同步创建的大容量复制数据的文件。)具体可见:http://baike.baidu.com/view/684693.html?tp=8_01和对类似Oracle的其他数据源使用的txt文件方式,将此副本复制给订阅者。快照复制使用两个代理实现数据的移动;快照代理(Snapshot Agent)取给定时间点的数据,为发送做准备,分发代理(Distribution Agent)将快照和事物从发布者移动到订阅者(Subscriber)。理论先到这里,简单介绍一下环境;Server1为发布服务器,Server2为订阅服务器,它们之间要传输的数据是Server1的db1数据库中的员工表(yg表)实验拓扑如下所示:

 

 一:前期查看

查看两个服务器的计算机名和数据库名,不一样那就得统一计算机名,具体命令下面会有

查看Server1的计算机名
 

查看服务器名称

统一与计算机名称,具体命令:

if  serverproperty('servername')  <>  @@servername 
begin 
           declare  @server  sysname 
           set  @server  =  @@servername 
           exec  sp_dropserver  @server  =  @server 
           set  @server  =  cast(serverproperty('servername')  as  sysname)             
           exec  sp_addserver  @server  =  @server  ,  @local  =  'LOCAL' 
end 

与Server1一样,Server2也查看服务器名称,并且统一计算机名

改完之后重启一下数据库服务

我们再来重新看一下计算机名和库名统一了没

 

启动SQL代理

 

在数据库db1中建立一个员工表(yg表)并且插入一条员工的记录

21 1

二:建立发布服务器

在库中的——复制——本地发布(右键)

15 1

发布向导

16 1

将Server1 dufei作为数据库发布服务器,指定本机作为发布服务器(默认设置)

17 1 

启动计算机是启动SQL代理(这样是不是很方便啊)

18 1

指定存放快照的目录

19 1

选择要发布的数据库(我们指定的是db1为发布库)

23 1

选择发布的类型——快照发布

24 1

选择想要发布的表。我们创建的是yg表

25 1

添加筛选器,实验环境我就省了,直接skip

26 1

出现指定何时创建快照以及何时运行快照。我更改为3分钟一次运行(我是实验环境下可以快点)

 

27 1

28 1

设置运行快照的服务器账户

29

创建发布~~

30 1

给这个发布起个名,便于记忆

31 1

创建成功,需要检查一下一些服务是否启动

33 1

发布服务器已经搞定,下面我们要进行订阅服务器的设置

 

三:设定订阅服务器

同发布服务器一样,到要发布的服务器我们这里是Server2,复制——本地订阅——新建订阅

34 1

出现了向导,点击下一步进行

35 1

指定订阅服务器

36 1

选择要订阅的数据库

37 1

选择分发代理的位置

38 1

选择订阅库

39 1

设置分发代理安全性。

47 1

指定代理运行计划

43 1

44 1

马上就要成功了,在耐心等等

45 1

完成订阅~~~~

46 1

48 1 

 

四:进行Server1和 Server2的测试

在Server1上插入两条李四和王五的记录

49 1

过上一会儿我们进行查看Server2的db1数据库

50 1

实验很成功,是不是很实用?现在数据库作为安全的第一要任还是值得我们这样去利用的,这也是数据库高可用性的又一表现。。。

平淡中储蓄成长

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~