Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9904029
  • 博文数量: 299
  • 博客积分: 9955
  • 博客等级: 中将
  • 技术积分: 4177
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-27 20:59
文章分类
文章存档

2015年(1)

2012年(2)

2011年(9)

2010年(47)

2009年(108)

2008年(132)

我的朋友

分类: Mysql/postgreSQL

2009-10-02 11:45:00

第14学时复制策略
现在,你应该对SQL Server复制的主要组成有了大体的了解。在本学时中,我将深入讲解
复制的不同业务操作。本学时不会教给你怎样解决你的业务问题。我将讲解复制时可能采取
的不同策略以及它们是怎样实现的。
本学时的要点包括:
• 复制策略
• 向因特网发布数据库
• 不同环境下的复制
• 复制的安全性
14.1 复制策略的种类
当你准备创建复制时,有多种方法可以获得现成的答案。不同的复制策略,换句话说,就是每
台服务器将放在哪里,每台服务器将充当什么角色。你可以从以下几种不同的复制策略中选择:
• 中心出版服务器
• 带远程分发服务器的中心出版服务器
• 能出版的订阅服务器
• 中心订阅服务器
• 多出版服务器或多订阅服务器
14.1.1 中心出版服务器
中心出版服务器策略是最普通的和最容易创建的,如图1 4 - 1所示。这种策略提供单一的服
务器,它能完成出版服务器和分发服务器功能。这个服务器产生和管理订阅服务器能订阅的所
有出版物。这台服务器能为任意数目的订阅服务器进行服务。这是SQL Sever 缺省的复制策略。
该策略可以解决几种业务问题:
• 报表—这大概是你在工作中遇到的最频繁的业务问题之一。在大型联机事务数据库中
(例如那些大型分类订货中心)性能是非常重要的。当运行这些数据库的报表查询时,性
能就会大大降低。解决方法就是把这些数据从主成品服务器复制到一个报表服务器上。
它允许你的用户查询数据,而不影响正在定货的用户。
• 数据本地化—可用该复制策略解决的另一个业务问题是数据本地化。例如,多数零售
商都有几个不同的地区。为了保证这些地区能得到最新的价格变动,数据需要复制并本
地化。如果没有数据复制,你可以设想一下会遇到的问题。一种解决方案可能是发送所
有更改的数据,让经理们手工输入所有的新价格,就好像他们闲得无事可做。另一种解
决方案可能是把每一个事务送回中心服务器以得到最新的价格。虽然它比第一种方案好
些,但是仍然存在一些缺点。首先是开销大——你可能需要极大的带宽来连接每个站点。
如果有人切断连接线,你将无法再进行销售。这种复制策略允许你把数据送到每个本地
的“仓库”中,这样他们就有了重要数据的本地拷贝。
• 冗余—可用该复制策略解决的另一个业务问题是数据库的可用性问题。尽管这不是最
好的解决方案,但是可以使用复制来为数据库里的所有数据做一个副本。如果服务器崩
溃了,你所有的用户只需使用备份服务器就能继续工作了。
14.1.2 带远程分发服务器的中心出版服务器
带远程分发服务器的中心出版服务器,如图1 4 - 2所示,与中心出版服务器非常相似。主
第1 4学时复制策略1 2 3
图14-1 中心出版服务器复
制策略
图14-2 带远程分发服务器
的中心出版服务器
复制策略
出版服务器出版服务器
出版服务器出版服务器
订阅服务器
出版服务器
订阅服务器订阅服务器订阅服务器
分发服务器
下载
要的改变是分发服务器功能从出版服务器中移到了一个单独的服务器中。这样就避免了出版
服务器承担分发数据更改的负担。
这种策略可以解决以下业务问题:
• 报表—与中心出版服务器策略一样,该策略能用来使查询数据库的开销由另一台服务
器来负担。这种策略还可以把分发过程交给另一台服务器负担。尽管全过程不会带来很
大的开销,但这对于一些小型的且功能相对弱一些的服务器还是有帮助的。
• 单一分发服务器—正如我在上一学时所讲的,一台分发服务器可以为多个出版服务器
处理分发过程。这样你就能够设置一台单独的分发服务器,让所有的订阅服务器与其连
接,以便访问企业的全部订阅。
14.1.3 能出版的订阅服务器
可进行出版的订阅服务器复制策略,如图1 4 - 3所示,允许一个订阅服务器既充当初始出版
服务器的订阅服务器又可以成为把本地拷贝发送给其他订阅服务器的出版服务器。尽管这听
起来有些奇怪,但是有充分理由让你考虑采用这种复制策略。在你不得不通过缓慢的或昂贵
的广域网链复制数据时,这种策略最适合。不用把所有的订阅服务器连接到主出版服务器上,
取而代之的是把单个订阅服务器连接到主出版服务器上,然后依次把数据复制给其他服务器。
这种策略能解决以下一些不同的业务问题:
• 慢速广域网链—象我前面所讨论过的,使用此类复制策略的最好理由是慢速广域网链。
例如A B C的总部在San Diego,而有许多分部在日本。A B C公司选择向在东京的一台服
务器发送所有更新的数据来代替向日本的每一个分部复制更改。东京的这台服务器然后
再把更新的数据复制给日本的其他订阅服务器。这样可以减少网络阻塞和通信费用。
• 拨号远程办公室—这种策略很像前面的业务问题。这种类型的复制通过使用调制解调
1 2 4 SQL Server 7 24学时教程
下载
图14-3 可进行出版的订阅
服务器复制策略
出版服务器
订阅服务器订阅服务器订阅服务器
慢速链
订阅服务器/出版服务器
器拨号操作来实现,而不是通过广域网连接的操作。这种复制过程只有在拨号连接激活
时才能运行。这样就允许单个订阅服务器获得已发生的任何更改,然后将它们复制给其
他订阅服务器。
14.1.4 中心订阅服务器
中心订阅服务器策略(如图1 4 - 4所示)创建一个能从多个出版服务器接收数据的单个中心订
阅服务器。当你需要提供一个能接收远程数据的本地中心时,这种策略是最好的。
当执行这种策略时,你需要采取一些预防措施来保证所有的数据保持同步而且不被覆盖。
这些步骤包括:
1) 为将从每个站点复制来的数据创建一个含有唯一标识符的列,数据类型为U N I Q U E I D -
E N T I F I E R。你将使用该标识符来区分这些行。
2) 增加一个包含唯一标识符的列作为主关键字。
3) 对该表执行手工同步。
这种策略能解决以下一些业务问题:
• 累积报表—累积报表是一个从远程地区将数据传递到中心服务器生成报表的过程。使
用本策略来解决的这个业务问题与我们在零售商问题中所见到的有些相似。这看起来可
能不算什么,但设想一下如果所有这些数据都保存在远程服务器中,那将会发生什么。
你对生成报表几乎无可选择。一种选择是让经理们做那些报表并发送到中心办公室,那
将是缓慢而且可能是不准确的。另一种选择是试图在网上运行报表,但是当有大量服务
器位于很远的地区时,这几乎不现实。使用累积报表,销售数据能发送或者累积到中心
服务器,在那里生成报表。
• 存货重新订购—与累积报表过程相似,存货重新订购是另外一个能通过使用中心订阅
服务器复制策略解决的业务问题。当产品被卖出后,数据被传送到订货部门,在那里产
品存货重新订购并送回仓库。
14.1.5 多出版服务器或多订阅服务器
在多出版服务器或多订阅服务器策略中,如图1 4 - 5所示,在每个参与此策略的服务器中
第1 4学时复制策略1 2 5
下载
图14-4 中心订阅服务器复
制策略
出版服务器/分发服务器
订阅服务器订阅服务器订阅服务器
都有一张横向分区(horizontally partitioned)表。每个服务器出版从属于它的一部分行,并订阅
所有其他服务器出版的行。使用这种策略时,你必须小心保证所有的站点是同步的。当建立
这个系统时你必须保证只有一个本地用户能修改本地数据。这个检查应该通过使用存储过程、
限制性视图或检查约束来完成。
这种策略能解决如下一些业务问题:
• 区域订单处理—在很多情况下,当你给大型连锁分类订货中心打电话时,将被转接到
不太忙的一个中心。这意味着你可能每次都在与不同区域的人交谈。作为一名消费者,
如果你打进电话,转接到其中一个定货中心,而他们对你先前所谈的一无所知,这会多
令人扫兴。例如,设想你打电话填了一份订单,第二天又想改一下。如果没有使用这种
类型的复制,你也许可以找到那个能访问你的订单或更改你的订单的人,也许根本找不
到。
• 预定系统—与前面的例子相像,在预定诸如机票那样的东西时,通常有几个不同的地
方可以预定。这种情况下,如果在不同的地方卖了相同座号的票,将会令你的客户很扫
兴。这种类型的复制允许所有用户在所有地点查看售票情况。
14.2 向因特网发布数据库
SQL Server 7.0复制技术的一项最新改进是能够通过因特网出版数据。你要做的第一件事
是配置服务器,使它允许匿名订阅。
14.2.1 匿名订阅
在SQL Server 7.0中,增加匿名订阅是可能的。匿名订阅是一种特殊的拉式订阅,它通常在
你向因特网出版数据库时使用。通常,关于所有订阅服务器的信息包括性能数据都存储在分发
服务器上的。当你有大量的订阅服务器或者不想跟踪订阅服务器的详细情况时,你可能会允
许对出版物的匿名订阅。
匿名订阅通常由订阅服务器创建。订阅服务器要负责确保订阅是同步的。可以使用与创
建拉式订阅同样的步骤来创建匿名订阅。
1 2 6 SQL Server 7 24学时教程
下载
图14-5 多出版服务器或多
订阅服务复制策略服务器1
服务器2 服务器3
数据数据
1. 出版物
2. 订阅
3. 订阅
1. 订阅
2. 出版物
3. 订阅
1. 订阅
2. 订阅
3. 出版物
数据
14.2.2 配置因特网复制
虽然我不会深入讲解配置用于因特网的复制,但我还是要讲到以下的执行要点:
1) 配置出版服务器或分发服务器以便在T C P / I P上进行监听。
2) 配置出版物以使用F T P。
3) 配置订阅以使用F T P。
14.2.3 配置出版服务器或分发服务器以便在TCP/IP上进行监听
在能向因特网订阅服务器建立复制之前,你必须先配置SQL Sever以便能在T C P / I P或多协
议网络库上通信。你可以使用SQL Sever Network Utility进行这方面的设置。你还必须把因特
网信息服务器建立在分发服务器上,因为因特网复制依赖于F T P服务来将快照从分发服务器传
送给订阅服务器。你必须把F T P的主目录设置到快照文件夹上,并把配置F T P的主目录为一个
F T P的站点。
14.2.4 配置出版物以使用FTP
在你配置服务器以使用F T P之后,下一步是设置能从因特网进行复制的出版物。可以使用
SQL Enterprise Manager来完成这项工作。在它配置好后,分发或合并代理便可使用F T P来下
载快照文件到订阅服务器。当快照文件复制到订阅服务器时,代理便把文件应用到订阅服务
器的表中。
14.2.5 配置订阅物以使用FTP
在为使用F T P配置出版物之后,你必须给该数据库创建一个拉式订阅或匿名订阅。创建这
些订阅与创建其他订阅使用同样的方法。区别是需要设置F T P选项。
14.3 不同环境下的复制
SQL Server 7.0允许从非SQL Sever环境进行数据的事务复制和快照复制。建立这种复制
的最简便的方法是使用O D B C并为订阅服务器创建一个推式订阅。SQL Server能出版到以下的
数据库类型:
• Microsoft Access
• Oracle
• Sybase
• IBM DB2/AS400
• IBM DB2/MVS
SQL Sever能复制数据到提供O D B C驱动程序并支持以下条件的任何其他类型的数据库:
• 驱动程序必须是ODBC Level-1兼容的。
• 驱动程序必须是3 2位、线程安全的并且是为运行分布式进程的处理器结构而设计的。
• 驱动程序必须支持事务处理。
• 驱动程序和下层数据库必须支持数据定义语言( D D L )。
• 下层数据库不能是只读的。
第1 4学时复制策略1 2 7
下载
14.4 复制的安全性
当建立SQL Sever复制时,你应该留心如何保证复制的数据的安全。这种安全性应该确保
不该访问的用户不能看到它,并且保证数据不会被意外地删除或更改。有几种方法可以任意
组合使用,以增加服务器的安全性。这些方法是:
• 角色要求—如果能保证所有的用户都能映射到正确的用户角色上,你就能大大提高服
务器的安全性。你需要看管的最重要的角色是: s y s a d m i n固定服务器角色、d b o w n e r数
据库角色、当前用户登录的角色和公共角色。其中每一个角色都有许可使得他们可以在
创建复制时执行某些功能。
• 分发服务器的安全性—SQL Sever提供的一种内置安全性措施是在出版服务器与分发
服务器之间建立安全的链接。出版服务器可被看成可信的或不可信的。可信的出版服务
器不必在分发服务器上登录,而不可信的出版服务器则必须在分发服务器上登录。
• 注册的订阅服务器—连同分发服务器安全性,你可以限制出版服务器知道的订阅服务器
以及匿名的或者在出版物访问清单( PA L )中登录的订阅服务器。
• 出版物访问清单—出版物访问清单( PA L )是记录所有允许访问出版物的登录的清单。
SQL Sever自动创建了一个包含缺省登录I D的PA L,而别的登录可以通过SQL Enterprise
M a n a g e r来增加或删除。
• 快照的安全性—Windows NT将自动限制访问服务器硬盘上的文件。另一种限制访问
的方法是设置许可,这样只有特定的用户才能访问那些文件。
• SQL Sever Agent登录的安全性—通过使用SQL Sever Agent登录的安全性,SQL Sever
强制所有代理在与SQL Sever连接时,都要提供有效的登录帐号。所有复制代理为了与
服务器连接,必须向服务器提供有效的用户登录和口令。
• 立即更新订阅服务器的安全性—立即更新订阅服务器通过存储过程把更改的内容应用
回出版物数据库。你可以向那些存储过程实施安全性,以便只让特定的用户和代理能使
用它们。
14.5 课时小结
在本学时中,我们讨论了一些业务问题以及可以用来解决这些问题的方案。我们还看到
了通过因特网出版出版物所需要的一些过程。最后,我们介绍了有关出版物安全性的一些措施,
这样那些没有访问权的用户就不能得到数据了。
14.6 专家答疑
问题:是不是每一个依赖于分布式数据的业务问题都能通过复制来解决?
解答:可能不是。复制通常是一种准实时的数据。这意味着不能要求数据任何时候都1 0 0%
最新的。如果你的数据要求总是最新的,应该使用分布式事务处理。
问题:什么是复制安全性的最好形式?
解答:复制安全性的最好形式是将本学时所讲的不同形式的安全性结合起来。
14.7 课外作业
这些思考题和练习题是供你加深理解用的。答案可以在附录“答案”中找到。
1 2 8 SQL Server 7 24学时教程
下载
14.7.1 思考题
1) 缺省的复制策略是什么?
2) 在慢速广域网链上建立复制时,最好的复制策略是什么?
3) 对于累积报表来说,最好的复制策略是什么?
4) 当设置在因特网上的复制时,必须使用什么协议?
5) 哪一种复制策略涉及到多个对于特定数据既充当出版服务器又作为订阅服务器的服务
器?
6) 什么复制安全性方法涉及到一个用来允许访问特定出版物的登录I D和口令的清单?
7) 因特网出版物是怎样传输的?
14.7.2 练习题
检查你当前的业务需求,如果可能,决定哪种SQL Sever复制策略能在你的业务中发挥最
好的作用。务必把你的网络速度和能允许的安全性程度考虑进去。
阅读(480) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~