转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
《MS SQL Server 2000管理员手册》系列——27. 交易式复写         

《MS SQL Server 2000管理员手册》系列——27. 交易式复写

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3031 更新时间:2007/11/14 13:13:08

27. 交易式复写
交易式复写概观
交易式复写的应用
设定交易式复写系统
设定、监视与校调散发者
交易式复写校调
执行交易式复写
本章总结
 第26章 介绍 Microsoft SQL Server 2000 复写,也简单的介绍了交易式复写。本章会继续介绍交易式复写,包括如何进行复写,何时利用复写,及如何设定、监控及校调交易复写系统。
交易式复写是较常用的复写方式,它可以很快的将更新资料送至订阅者端,而又不会造成发行者端太多负担。
交易式复写概观
 
望名生义,交易式复写用于复写交易。要进行交易式复写,一开始会将快照集套用在订阅者端,然后当发行者端有数据修改时,则会捕捉个别的交易并复写至订阅者端。所有的数据库更改,如数据库更新、插入或删除都会依此复写模式。
 记录读取器代理程序 读取交易式复写的各数据库交易记录文件,在散发者端执行,并建立与发行者端之间的连结。要复写的交易从散发者端复制到散发数据库中,再由 散发代理程序 将散发数据库数据表中的交易数据移至订阅者端数据库。
每一个交易式复写的数据库都有一个属于该数据库的记录读取代理程序,这个代理程序在散发者端执行,并监控该交易库在发行者端的交易记录文件。一个数据库可能同时设定数个发行集,但一个数据库只能有一个 记录读取器代理程序 。
 记录读取器代理程序 排程设定可在建立发行集时设定。此份排程可以设定为连续地发生,或是依 订阅者 排定的间隔。 记录读取器代理程序 会依以下事件顺序执行:
1.  记录读取器代理程序 读取发行集系统内的交易记录文件,建立一份清单,并记录复写数据库内 INSERT、UPDATE 及 DELETE 等陈述式或其它标示要复写的交易,如删除数据表,更改字段定义等类的交易。
2.  记录读取器代理程序 开始处理数据记录文件内的数据,并依发行集内定义的数据表发行项(article)进行水平或垂直筛选(filtering)。
3. 这些变更会以批次交易送至散发者上的散发数据库,在散发数据库中会有数个数据表来追踪复写的更改和作业。所有在发行者端的变更都要传送至订阅者端,而这些变更会存在 MSRepl_commands 数据表中,这个数据表将复写命令压缩储存。针对每一个所定义的发行项, MSRepl_commands 数据表均包含已复写命令的数据列,如插入、更新及删除。如果修改了发行者数据库中的数据表,且该数据库被包含在数个发行项中,这项修改就会在散发者端的数据库被复写。举例来说,如果三个发行项均包含A数据表,更新A数据表就会在散发者端的数据库新增三个数据列。
4. 在每一个批次成功的传送到散发者数据库以后,每一个批次中的交易都会被认可。如果认可失败,在代理程序错误记录中就会记录此错误讯息。
5. 在散发者数据库的更改被认可后,记录读取器代理程序会标示最后一次的变更,以及最新一次的复写执行,以避免重复更改的动作。
6. 当交易记录文件读取交易并被散发者数据库认可,记录读取器代理程序会在交易记录文件中标示哪些资料列已经备妥可以截断。
在发行者数据库端的每一次修改都会在散发者数据库端登记最少一次。在有些情况下,发行者数据库端的修改会在散发者数据库端登记好几次,以下为可能造成这种状况的原因:
•  当在数据表中有插入的动作时,在散发者数据库中属于发行项成员的数据表就会有插入的动作。如果数据表存在于两个不同的发行集,就会被定义为不同的发行项。在两个发行项中都会在发行者数据库中存在储存每一个在发行集数据库中的插入、更新和删除动作的数据列。
 
•  影响多列的更新或删除的操作,会为每一个所影响到的数据列在散发者数据库中建立数据行。执行更新或删除多列的 SQL 陈述式会使记录读取器代理程序在散发者数据库中,为每一个受影响的数据列建立个别的命令。在 SQL 陈述式中的 WHERE 子句被转换成一个可以依主索引键值指定数据库中数据列的 WHERE 子句。举例来说,一个含有 10 行数据的数据表,当执行一个可以影响所有资料行的更新命令时,会在散发者数据库中建立 10 项登记,每一项都会在 WHERE 子句中指定主索引键值。
 
交易式复写的应用
 
交易式复写可以用在当订阅者需要和发行者的数据保持同步。交易式复写可以被设定使订阅者可以在发行者更新后也立即更新订阅者端数据。即使记录读取器不断的在执行中,每次读取交易记录时也有几秒中的间隔,而不是不断的读取记录,以避免对发行者交易记录执行效率的影响。
交易式复写也可以设定使订阅者可以更新数据库。由于这个因素,交易式复写有很多应用,例如:
•   传送讯息 :交易式复写可以用在传送系统间讯息,尤其是当必须确定订阅者确实有收到讯息。一旦网络故障,数据会在网络回复后继续传送。
 
•   保存两系统间同步数据 :很多公司运用交易式复写传送总公司和分店之间的数据。当数据在总公司更新,在分店也会收到更新的数据。
 
•   分散负荷 :交易式复写可以用来分散数据库的负荷,用来回复反应时间较长及需要大量使用资源的查询,以降低主系统负荷。
 
设定交易式复写系统
 
设定交易式复写的方式和设定快照式复写很像。首先要先设定发行集,然后将发行集设定已提取或发送的方式传送至订阅者端。
________________________________________
说明
在设定任何 SQL Server 复写之前,请先设定发行和散发,详细设定请参照 第26章 。
________________________________________
安装发行集
 
建立一个交易式发行集和建立一个快照式发行集的过程相仿。以下为建立一个交易式发行集的步骤:
1. 在 Enterprise Manager 中选择 工具 。下一步可点选 复写 / 建立和管理发行集 ,或点选菜单中的 执行精灵 ,选择 建立发行集精灵 开启 建立与管理发行集 的对话框,如图27-1 所示。这个对话框中可以选择想要包含在发行集内的数据库或数据表。
 
 
图27-1 「建立与管理发行集」对话框
如果发行集已存在,还可点选以下更多选项:
o  发送新的订阅 :可将现有的发行集建立为 发送订阅(push subscription) 。本章的 〈设定订阅〉 一节会有详细说明。
 
o  属性与订阅 :可让您修改发行集与订阅的属性。
 
o  指令化发行集 :可让您建立 SQL 指令,用于建立其它更多的发行集。
 
o  删除发行集 :可删除已建立的发行集。
 
2. 选择想要建立发行集的数据库(本章以 Northwind 为例),选择数据库后按下 建立发行集 开启 建立发行集精灵 ,接着看到的是欢迎画面(如图27-2 所示)。勾选左下角的 显示这个精灵中的进阶选项 。
3. 按 下一步 进入 选取散发者 画面(如图27-3 所示)。这里可以选择想要包含在发行集内的数据库或数据表。默认值会将散发者设为上个步骤所选择的数据库。
 
 
图27-2 「建立发行集精灵」的欢迎画面

 
 
图27-3 「选取散发者」画面
________________________________________
说明
如果在系统中并没有指定散发者, 选择散发者 的画面会要求您指定散发者。一个发行集只能有一个散发者,如果您已设定了作为散发者的服务器,就会看到如下的 选择发行集数据库 画面。
________________________________________
4. 按 下一步 进入 选择发行集类型 ,如图27-4 所示。
 
 
图27-4 「选择发行集类型」画面
有三种发行集类型可以选择:
o  快照式发行集 :快照式发行集会在某个时间点完全复制一份发行项(article)给订阅者。快照式发行集可在任何数据表上建立。
 
o  交易式发行集 :在交易式复写发行集中,当发行集资料发生修改时,将交易传至订阅者。发行项必须在包含主索引键的数据表中建立。
 
o  合并式发行集 :在合并式发行集中, 订阅者 与 发行者 中的变更会被追踪,而稍后这些变更会合并形成单一的数据版本。合并式发行即可在任何数据表上建立。
 
5. 选择 交易式发行集 / 下一步 示 可更新的订阅 画面,如图27-5 所示。要在这个阶段显示这个画面,在 建立发行集精灵 的欢迎画面勾选 显示这个精灵中的进阶选项 (如图27-2)。若是没有勾选,则会出现 指定订阅者类型 画面。
 
 
图27-5 「可更新的订阅」画面
在这个画面中可以指定订阅者端所发生的变更,被复写到发行者的方式,可视需要选取下列选项:
o  实时更新 :复写代理程序利用 Microsoft 分布式交易协调员进行两阶段交易认可,当订阅者端发生变更,会实时更新至发行者。(实时更新会确认没有发生冲突,这些数据变更会透过两阶段交易认可,关于两阶段交易认可的细节,可参考本书 第25章 。)默认值不会将实时更新设成预设的订阅者选项。
 
o  队列更新 :队列更新容许订阅者端的更新数据队列,待网络联机后再将数据更新至发行者。这个选项容许订阅者更新数据库及传送更新数据至发行者,且不需透过两阶段交易认可。
 
________________________________________
说明
当系统需要一份一模一样的数据时,就必须设定实时更新,但是这个选项需要经过两个阶段的认可,因此可能造成很大的系统负担。且如果两个系统不是马上依设定执行,交易就不会被认可。所以如非必要则无须设定及时更新。
________________________________________
6. 按 下一步 进入 转换发行数据 画面,如图27-6 所示。这个选项是 SQL Server 的新增功能。Microsoft 数据转换服务(Data Transformation Services,DTS)
o 转换数据值或类型
 
o 改变英文字的大小写
 
o 数据合并
 
o 数据分割
 

 
 
图27-6 「转换发行数据」画面
7. 按 下一步 进入 指定订阅者类型 画面,如图27-7 所示。这个画面允许指定是否所有的订阅者都执行 SQL Server。尽量接受预设的设定,也就是指定所有的订阅者皆使用 SQL Server 2000。如果接受此设定,就接受所有复写皆使用原 SQL Server 数据型别。如果 SQL Server 7 系统也被用在复写设定中,选择第二个复选框;如果设定中有非 SQL Server 的系统,就选取第三个复选框,使复写数据转换成文字格式。这样的转换会造成系统多余的负荷。
 
 
图27-7 「指定订阅者类型」画面
8. 按 下一步 进入 指定发行项 画面,如图27-8 所示。这里可以指定将被复写为发行项的数据表、预存程序和检视表。这些发行项会整理为发行集。在右手的方块中选择想要的数据表、预存程序和检视表,或勾选在 全部发行 数据行中想要发行的对象类型。记住,每一个对象就是一个发行项,而一个发行集是一组依逻辑组合的发行项。
 
 
图27-8 「指定发行项」画面
________________________________________
说明
如果在订阅者端有预存程序,可以设定复写预存程序的执行,而不会复写这些预存程序执行后造成的数据变更。
________________________________________
9. 按 下一步 ,在这个步骤中,SQL Server 检查发行集,如果有任何的错误,就会出现如图27-9 的画面。
 
 
图27-9 「发行项的问题」画面
10. 在发行集分析完成后,按下 确定 回到精灵,进入 发行集名称与描述 画面,如图27-10 所示。
11. 按 下一步 进入 自定发行集的属性 画面,如图27-11 所示。在这里可以指定是否定义数据筛选或其它属性,选择 是, ....。
 
 
图27-10 「发行集名称与描述」画面

 
 
图27-11 「自定发行集的属性」画面
12. 按 下一步 进入 筛选数据 画面,如图27-12 所示。在这个画面中,可以指定是否用垂直筛选以筛选资料行,还是以平行方式筛选数据列。两个都选择后按下 下一步 。
 
 
图27-12 「筛选资料」画面
13. 进入 筛选数据行 画面,如图27-13 所示。这个画面可让您选择不想复写的数据行。可从 选取数据表的数据行 清单中,清除复选框的勾选,即可将不想复写的数据行移除。这样就可以垂直筛选的方式建立发行项,使发行者端复写较少的资料行。
________________________________________
说明
含主索引键的数据行是不能被移除的,因为主索引键在交易式复写时会被使用到。本章稍早有解释过这项限制。
________________________________________
14. 按 下一步 进入 筛选数据表的数据列 画面,如图27-4 所示。在这个画面中可以筛选数据列,按下这个可进入 指定筛选 的 [...] 按钮,就可设定筛选。
 
 
图27-13 「筛选资料行」画面

 
 
图27-14 「筛选资料列」画面
15.  指定筛选 对话框出现,如图27-15 所示。这个对话框让您将 WHERE 子句加入 SQL 陈述式,以筛选数据列。当选定要复写的数据列后,按 确定 回到精灵。
 
 
图27-15 「指定筛选」对话框
16. 按 下一步 进入 允许匿名订阅 画面,如图27-16 所示。这个画面允许指定是否允许匿名订阅或具名订阅。可依您实际需要选择。
 
 
图27-16 「允许匿名订阅」画面
17. 按 下一步 进入 设定快照集代理程序的排程 ,可参照 26章中的〈设定快照式复写〉 一节的步骤十五和步骤十六的相关设定。由于在交易式复写中,快照集仅在一开始建立订阅者数据表时使用,因此可设定以手动方式建立快照集,不必设定建立快照集的排程。
18. 排程建立后,按 下一步 进入 完成建立发行精灵 画面,以及浏览此发行集所设定的选项。按 完成 确认所有的设定,对话框会出现并告知发行集已建立完成。
设定记录读取器代理程序
 
在建立了发行集后,可以修改记录读取器代理程序的组态,举例来说,以选定执行模式的方式,可指定记录读取器代理程序应如何被启用。在连续模式中(预设模式),记录读取器代理程序会在 SQL Server 代理程序开启后就可启用。记录读取器代理程序会连到在发行者端的交易记录文件,并不断的读取记录文件。而在依排程执行的模式中,记录读取器代理程序会依指定的排程启动,完成读写交易记录文件中复写的交易停止。更改模式和其它的属性可以提高执行效能,并降低发行者端的负担。以下为设定记录读取器代理程序的步骤:
1. 在 Enterprise Manager,展开想要修改的服务器,展开 复写监视器 数据夹,展开 代理程序 后选择 记录读取器代理程序 数据夹。
2. 在右手边的窗格中,选定一发行集按下鼠标右钮,叫出快捷菜单,如图27-17 所示。
 
 
图27-17 发行集的快捷菜单
3. 选择 代理程序属性 ,进入 记录读取器代理程序属性 窗口,如图27-18 所示。
 
 
图27-18 「记录读取器代理程序属性」窗口
4. 选择 步骤 页签,如图27-19 所示。在卷标页,我们可以看到记录读取器代理程序执行的步骤,这些步骤执行如下的动作:
o  记录读取器代理程序启动讯息 :将讯息记录在 记录读取器代理程序 的历史数据表中(在散发者数据库的MSLogreader_histroy数据表中)。
 
o  执行代理程序 :依指定的排程启动代理程序,当执行模式为连续时,代理程序会在系统结束时才停止执行。
 
o  侦测非记录性代理程序的结束 :将代理程序事件失败的讯息放在记录读取器代理程序的历史数据表中。
 
5. 选择 执行代理程序 步骤,并点选 编辑 按钮进入 编辑作业步骤 对话框,如图27-20 所示。在这个对话框可以设定如何启动 记录读取器代理程序 。
 
 
图27-19 「记录读取器代理程序属性」窗口的「步骤」页签

 
 
图27-20 「编辑步骤」对话框的「一般」页签
记录读取器代理程序可以设定为很多选项。预设的记录读取

[1] [2] [3]  下一页


[Access]sql随机抽取记录  [Access]ASP&SQL让select查询结果随机排序的实现方法
[聊天工具]企业邮件系统的利器----FoxMail Server  [系统软件]OPEN SERVER 5.0.5安装EXP300阵列柜
[系统软件]SQL语句性能优化--LECCO SQL Expert  [系统软件]关于Windows2000Server的灾难恢复
[常用软件][网络]下载服务革命性风暴Poco Server评测  [C语言系列]动态创建SQL Server数据库、表、存储过程等架构信…
[C语言系列]SQL Server到DB2连接服务器的实现  [C语言系列]SQL Server到SYBASE连接服务器的实现
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台