SQLServer数据传输.ppt

上传人:牧羊曲112 文档编号:5449392 上传时间:2023-07-08 格式:PPT 页数:66 大小:540KB
返回 下载 相关 举报
SQLServer数据传输.ppt_第1页
第1页 / 共66页
SQLServer数据传输.ppt_第2页
第2页 / 共66页
SQLServer数据传输.ppt_第3页
第3页 / 共66页
SQLServer数据传输.ppt_第4页
第4页 / 共66页
SQLServer数据传输.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《SQLServer数据传输.ppt》由会员分享,可在线阅读,更多相关《SQLServer数据传输.ppt(66页珍藏版)》请在三一办公上搜索。

1、第十八章 SQL Server数据传输,18.1 概述,作为数据库管理员,在数据库之间导入、导出数据是一项经常执行的基本任务。例如,将测试服务器上的数据库迁移到生产工作服务器上,或者是移动表中的部分数据,也可能是将数据库中的数据转换为另一个产品的格式来保存,这些工作都是导入、导出数据的简单形式。本章总结了SQL Server数据传输的常用工具,如DTS、T-SQL、BCP、复制等,满足用户在数据传输过程中的不同要求。,18.1.1 数据传输的原因,管理员必须理解如何在应用程序和环境之间传输数据。几乎所有的环境都要执行求一定程度的数据转移工作。数据迁移将数据从外部数据源导入 SQL Server

2、 实例很可能是建立数据库后要执行的第一个工作。数据导入SQL Server数据库后,即可开始使用该数据库。例如,将Excel工作表中的数据导入SQL Server实例,迁移完成后,该SQL Server数据库将直接用于所有与数据相关的任务,而不再使用原来的系统。改变数据格式转换数据可能是简单的数据类型间的映射转换,还可能是包含了数据逻辑的复杂操作。例如,源数据库中的IS_Payment字段存放“ture”或“false”值,而目的数据库的值是1或0。在执行数据传输时,可把格式为“ture”或“false”的数据转换为1或0,使得数据的表达方式一致。重构数据在重构数据中,可能需要把来自多个数据源

3、、表和列的数据在目的数据库组合成一个单一的表。例如,在一个企业应用中,把多个下级部门的数据通过聚集和汇总储存在上级主管部门的数据库中。转换异构数据异构数据是以多种格式存储的数据,例如存储在SQL Server数据库、文本文件和 Excel 电子表中的数据。转换异构数据就是将这些使用不同格式存储的数据转换到统一存储模式中。调度作业SQL Server代理程序会自动的调度数据传输的过程。例如,通过定义自动化任务保存数据的导入、导入规则,在指定的时间由系统调度任务执行,以减少每次数据传输时的手工调度过程和重复的步骤。,18.1.2 数据传输工具一览,数据传输的基本过程包括:确定数据源和目的地,明确在

4、数据源和目的地之间传输或转换数据,定义数据传输或转换的规则。SQL Server提供了几个数据传输工具,用户根据特定需要选择适当的工具完成工作。DTS导入/导出向导DTS(Data Transformation Service)导入/导出向导以交互式的方式指导用户完成数据传输的工作。用户可以轻易的完成在不同的数据源之间传输或转换数据。在连接源和目的数据库之后,便可以选择要导入或导出的数据,并可对数据的格式进行转换。DTS工具提供了在数据源之间传输数据的最简单的方法。bcp实用程序bcp(bulk copy)是一个在命令提示符下的实用工具。BCP命令能够在本地SQL Server和ASCII码文

5、本文件之间导入/导出的数据。T-SQL语句SELECT INTO语句能够将结果集创建为一张新表,并且实现拷贝表结构的功能。INSERT SELECT 语句可用于将一个或多个其它的表或视图的记录添加到目的表中。使用BULK INSERT语句能够把一个数据文件拷贝到一张表中。复制复制是一组解决方案,用于在企业范围内发布、分发数据。使用复制可以将数据分发到不同位置,通过局域网、拨号连接、Internet分发给远程或移动用户,拉近用户与数据的距离,增强数据的独立性。数据库备份与恢复数据库备份与恢复不仅能够保证数据的安全而且作为数据传输的方法之一,能够把一个完整的SQL Server数据库,包括所有的数

6、据和对象,移动到另一个SQL Server实例,并且能够通过日志传送的方法不断向目的数据库追加数据(参见第十四章 数据库备份与恢复与自动化管理)。分离和附加数据SQL Server允许分离数据库的数据和事务日志文件,然后将其重新附加到另一台服务器,甚至同一台服务器上。分离数据库将从SQL Server删除数据库,但是保持在组成该数据库的数据和事务日志文件完好无损。这些数据和事务日志文件可以用来将数据库附加到任何SQL Server实例上,这时数据库的使用状态与它分离时的状态完全相同。例如,直接将数据库从一台计算机迁移到另一台计算机,而不必使用重新创建数据库,然后手动还原数据库备份的办法。(参见

7、第十四章 数据库备份与恢复与自动化管理)。,18.2 使用DTS进行数据搬运,数据转换服务(DTS)导入/导出向导提供生成 DTS 包的最简单方法,可以交互式地指导您完成整个复制和转换数据的过程。DTS 导入/导出向导为在OLE DB数据源之间复制数据提供了最简单的方法。,18.2.1 启动DTS向导,打开SQL Server企业管理器单击运行向导按钮,在【选择向导】对话框中展开【数据转换服务】节点可以启动【DTS导出向导】或者【DTS导入向导】。如果从【开始】菜单【SQL Server程序组】中启动【DTS 导入/导出向导】,则不需要指定是导入数据还是导出数据。,18.2.2 连接数据源和目

8、的地,数据转换服务(DTS)能够对兼容ODBC和OLE DB提供程序的数据建立连接。要成功执行复制和转换数据的任务,则必须与源数据和目的数据建立有效的连接。使用 DTS 导入/导出向导,可以连接到下列数据源:大多数的 OLE DB 和 ODBC 数据源以及用户指定的 OLE DB 数据源。文本文件。到一个或多个Microsoft SQL Server实例的其它连接。Oracle和Informix数据库。必须已经安装Oracle或Informix客户端软件。Microsoft Excel电子表格。Microsoft Access和 Microsoft FoxPro数据库。dBase或Parado

9、x数据库。连接数据源时须指定任何要求的登录、安全性或文件位置信息。如果正在从文本文件导入数据,则必须指定文本文件的格式和分隔符。如图18.1所示,18.2.2 连接数据源和目的地,18.2.3 设定转换模式,在【指定表复制或查询】对话框列出了以下选项,如图18.2所示:从源数据库复制表和视图用一条查询指定要传输的数据在SQL Server数据库之间复制对象和数据,18.2.3 设定转换模式,从源数据库复制表和视图在【指定表复制或查询】对话框中选择【从源数据库中复制表和视图】选项,单击【下一步】,显示【选择源表和视图】对话框。使用此对话框指定要向目的复制的表和视图,如图18.3所示。可以将整个表

10、或者表中部分字段的数据以及视图复制到指定的目的,在这个过程中将不筛选或排列记录。如果选择了源而不执行其它操作,将从源不加更改地复制架构和数据。,18.2.3 设定转换模式,单击【转换】网格中按钮显示【列映射和转换】对话框,如图18.4所示。在其中可指定源数据列对的目列的映射、编辑目的列的属性,以及指定记录添加到目的表中的方式。如果目的表不存在,则在目的数据库中创建表,如果目的表存在,那么可以使用【删除目的表中的行】让源表中的行替换目的表中的行,或者选择【在目的表中添加】将源表中的行追加到目的表中。在【选择源表和视图】对话框中,单击【预览】按钮,在运行数据转换服务前,预览源数据以对其进行验证。单

11、击【上一步】返回【指定表复制或查询】对话框。,18.2.3 设定转换模式,用一条查询指定要传输的数据在【指定表复制或查询】对话框中选择【用一条查询指定要传输的数据】选项,单击【下一步】,显示【键入 SQL 语句】对话框,在其中可生成用于在表或视图中检索特定行的SQL语句,只有符合选择条件的行才可用于复制,如图18.5所示。单击【上一步】返回【指定表复制或查询】对话框。,18.2.3 设定转换模式,在SQL Server数据库之间复制对象和数据在【指定表复制或查询】对话框中选择【在SQL Server数据库之间复制对象和数据】选项,单击【下一步】,显示【选择要传输的对象】对话框。如果数据的源和目

12、的都是SQL Server数据库,则在此对话框中可以指定要复制的对象和数据。可传输的对象包括表、视图、存储过程、默认值、规则、约束、用户定义的数据类型、登录、用户、角色和索引,如图18.6所示。对象只能在多个SQL Server 7.0实例间传输,或从SQL Server 7.0实例传输到SQL Server 2000实例,以及在多个SQL Server 2000实例间传输。,18.2.3 设定转换模式,创建目的对象选项此选项为所有要传输的对象创建目的对象(包括表、视图、存储过程、默认值、规则、约束、用户定义的数据类型、登录、用户、角色和索引),启用下列选项:【首先丢弃目的对象】创建新目的对象

13、之前,丢弃所有相应的目的对象。【包括所有相关对象】在数据传输中包括所有相关对象,例如在传输视图的同时传输视图引用的表。【包括所有扩展属性】包括所有扩展属性,这些属性是用户在数据库中的不同对象上提供的定义。复制数据此选项用于设置从源向目的复制SQL Server数据以及下列复制选项:【替换现有数据】用指定的源中的新数据改写目的对象中现有数据。【追加数据】保留目的对象的现有数据,并从追加新数据到目的对象中。,18.2.3 设定转换模式,使用排序规则使得能够在不同的排序规则间复制数据。复制所有对象传输所有与指定的数据源关联的对象。使用默认选项将各高级传输选项设置为默认值。选择对象清除【传输所有对象】

14、复选框,则【选择对象】按钮的状态为“可用”,可以在其中可选择要传输的个别对象。如图18.7所示,18.2.3 设定转换模式,选项清除【使用默认选项】复选框,则【选项】按钮的状态为可用,可以在其中进一步指定数据库用户和角色、SQL Server登录、对象的权限、以及表的传输选项,如图18.8所示。脚本文件目录指定脚本文件和日志文件写入的目录。每个选定对象的SQL和数据文件都将脚本文件写入某个目录,该目录必须位于任务所在的同一台计算机上。该目录中的脚本和日志文件一直可被访问,直到下次执行时文件由新信息重写。,18.2.4 保存和调度DTS包,保存DTS包数据源源、目的和转换的规则可以保存为数据转换

15、服务(DTS)包,并调度该文件按预定义的时间间隔运行,如图18.9所示。DTS包可以保存到msdb 数据库、SQL Server 2000 Meta Data Services、COM 结构化存储文件或 Microsoft Visual Basic文件。,18.2.4 保存和调度DTS包,Microsoft SQL Server默认使用该选项保存DTS包,在【保存DTS包】对话框中填写所需字段。DTS包存储在 SQL Server msdb 数据库中,在SQL Server企业管理器保留DTS包的清单,供以后调度。SQL Server 2000 Meta Data Services。使用该保存

16、选项,对于包操作的数据,可以维护有关这些数据的历史信息。但是,必须要在您的服务器上安装 Meta Data Services,及知识库数据库,而且它们还必须是可操作的。可以跟踪某些列和表,包将这些列和表用作源或目的。也可以使用数据沿袭功能以进行跟踪,查明是包的哪个版本创建了某个特殊的行。可以将这几种类型的信息用于决策支持应用程序。结构化存储文件。使用该保存选项,可以通过网络复制、移动及发送包,而不必将文件存储在SQL Server数据库中。结构化存储格式允许您在单个文件中维护多个包及多个包版本。Microsoft Visual Basic文件。使用该保存选项,可以通过应用程序开发工具修改DTS

17、包的定义。该选项将包写成 Visual Basic 代码脚本,并且日后可以在自己的开发环境中打开Visual Basic文件及修改包定义。,18.2.4 保存和调度DTS包,调度DTS包数据转换服务(DTS)包保存所有的 DTS 连接、DTS 任务、DTS 转换以及工作流步骤,并在 DTS 设计器的设计表中保留这些对象的图形布局。保存DTS包后,单击浏览按钮显示【编辑反复出现的作业调度】对话框,在其中可调度包的执行。如果没有修改调度,默认为每天午夜 12:00 运行包。如果选择【用复制方法发布目的数据】选项时,DTS 导入/导出向导结束运行后将启动创建发布向导。DTS任务设置完毕后,将进行数据

18、传输工作,如图18.10所示,如果在任务执行过程中出现错误,双击出现错误的子任务,查询错误信息。,18.3 bcp实用程序,bcp是一个在命令提示符下的实用工具,能够将 SQL Server数据复制到某个数据文件或从某个数据文件复制数据到SQL Server实例。该实用工具作为解决异构数据问题的方法之一,最常用于将大量数据从其它程序(通常是另一种数据库管理系统)传输到SQL Server表中。数据首先从数据源导出到数据文件,然后使用 bcp 将数据从该数据文件导入到SQL Server表。另外,bcp 还可以将数据从SQL Server实例复制到某个数据文件,其它程序可以从该数据文件中导入数据

19、。例如,若要将所有作者的姓名从 pubs 数据库的 publishers表复制到 c:Publishers.txt 文件,并按出版物名称排序,可在命令提示符下执行以下命令:bcp“SELECT pub_id,pub_name,city,state,country FROM ORDER BY pub_name”queryout c:Publishers.txt-c-Sservername-Usa Ppassword数据还可以从视图向外大容量复制。例如,将数据从 pubs 数据库的视图 titleview 复制到 Titleview.txt 数据文件,在命令提示符下执行以下命令:bcp out t

20、itleview.txt-c-Sservername-Usa-Ppassword若要将数据从 Publishers.txt 数据文件大容量复制到 pubs 数据库的 publishers 表中,在命令提示符下执行以下命令:bcp in publishers.txt-c-t,-Sservername-Usa-Ppassword-k,18.4 T-SQL语句,能够实现数据传输功能的Transact-SQL语句有BULK INSERT、SELECTINTO以及INSERTSELECT语句,这些语句在SQL Server查询分析器或者应用程序中执行。BULK INSERT能够实现将数据文件中的数据复制

21、到SQL Server数据库。使用SELECTINTO和INSERTSELECT能够实现将几个表和视图中数据插入到另外一张表。,18.4.1 使用BULK INSERT 语句,BULK INSERT语句以Transact-SQL语句而不是命令提示符来实现bcp实用工具的功能。使用BULK INSERT语句,可以将数据从数据文件传送到SQL Server表但不支持将数据从SQL Server实例复制到数据文件。在SQL Server查询分析器中使用BULK INSERT语句实现大容量复制数据:例程18.1:将c:publishers.txt文件中的数据复制到pubs数据库的Publishers表

22、中BULK INSERT pubs.publishers FROM c:publishers.txtWITH(DATAFILETYPE=char,FIELDTERMINATOR=,KEEPNULLS),18.4.2 使用SELECTINTO语句,SELECT INTO 语句创建一个新表,并用 SELECT 的结果集填充该表,新表的结构由选择列表中表达式的特性定义。例程18.2:查询Norhtwind数据库中Products表中的数据,然后将结果保存在Pubs数据库的NewProducts表。SELECT ProductName,CompanyName AS Suppliers,UnitPric

23、e AS Price,UnitsInStock AS Stock,UnitsOnOrder INTO FROM AS PINNER JOIN Suppliers AS S ON S.SupplierID=P.SupplierID由于SELECT INTO语句能够创建一张新表,因此常用来产生临时表或拷贝表结构。例程18.3,拷贝Employees表的结构到Employees_history表:SELECT*INTO Employees_historyFROM EmployeesWHERE EmployeeID IS NULLSELECTINTO可将几个表或视图中的数据组合成一个表,也可用于创建一

24、个包含选自链接服务器的数据的新表。例程18.4:在本地SQL Server(Server1)上建立与远程SQL Server(Server2)的链接服务器后,使用INSERTSELECT语句将SERVER2的Nortnwind数据库中Employees表的部分数据插入到本地Nortnwind数据库中Employees表。INSERT INTO(Lastname,Firstname)SELECT Lastname,FirstnameWHERE City=London,18.4.3 使用INSERT SELECT语句,INSERT语句中的SELECT子查询可用于将一个或多个其它的表或视图的值添加到

25、表中,使用SELECT子查询可同时插入多行。SELECT子查询的选择列表必须与INSERT语句列的列表和数据类型相匹配。例程18.5:使用的INSERT语句将 titles表中数据插入到一个单独的表(MyBooks)中:USE pubsINSERT INTO MyBooks(title_id,title,type)SELECT title_id,title,typeFROM titlesWHERE type=mod_cookINSERT.SELECT语句的另一个作用是从SQL Server的外部数据源插入数据。例程18.6:配置链接服务器连接到远程SQL Server(Server3),执行下

26、面的语句:INSERT INTO MyBooks(title_id,title,type)SELECT title_id,title,typeWHERE type=mod_cook,18.5 复制,在企业应用中,随着分布式数据环境建立和变化,不同的部门通常具有自己独立的服务器,其中还可能运行着不同的数据库管理系统。用户需要提高数据的可管理性,增强各个站点之间的数据的连通性、可访问性。复制作为在分布式数据环境分发数据的解决方案,通过将数据分发到整个网络中,可以使更多的用户对其进行访问,降低用户请求时的冲突。,18.5.1 复制的基本概念,SQL Server复制是在数据库之间对数据和数据库对象进

27、行复制和分发并且对于数据的修改进行同步,以确保其一致性的一组技术。使用复制可以将数据分发到不同位置,通过局域网、使用拨号连接、通过 Internet 分发给远程或移动用户。SQL Server还支持与异类数据源之间的相互复制。OLE DB或ODBC数据源可以订阅SQL Server发布的数据。SQL Server还可以接收从很多数据源复制的数据,这些数据源包括Microsoft Exchange、Microsoft Access、Oracle 和DB2。,18.5.2 复制的功能,SQL Server复制是一项功能强大的技术,可以把一个SQL Server实例上的表、视图和存储过程传输到本地或

28、者远程SQL Server实例以及其他数据源上。使用复制实现在多个实例上创建数据的副本,并且能够自动维护这些数据源与副本中的数据一致性。当多个站点需要为报表应用程序读取相同的数据或需要使用独立的服务器存储数据时,这一点十分有用。复制拉尽了数据与用户的距离,因为数据可以通过网络进行分发,所以可以根据不同商业单位或用户的需求对数据进行分区,还有助于减少因多个用户进行数据修改和查询而引起的冲突。,18.6 复制的模型,SQL Server复制的模型由下列对象组成:发布服务器、分发服务器、订阅服务器、发布、项目和订阅。还有几个负责在发布服务器和订阅服务器之间复制和移动数据的复制进程。它们是快照代理程序

29、、分发代理程序、日志读取器代理程序、队列读取器代理程序和合并代理程序。,18.6.1 服务器角色,复制使用发布-订阅模式分发数据,参与复制的服务器根据任务不同可划分为以下角色:发布服务器发布服务器是要复制的数据源所在的服务器。发布服务器把与复制的相关的表或其它数据库对象被组织到“发布”中,“发布”也称为“出版物”。分发服务器分发服务器包含分发数据库,并且存储出版物、历史数据和事务。在复制过程中由分发服务器完成将出版物从发布服务器移动到订阅服务器的过程。订阅服务器订阅服务器接收出版物,保持数据的副本,将发布项目映射到订阅服务器中的表和其它数据库对象,并接收对所有已发布数据的更改,与发布服务器保持

30、同步。一个订阅服务器可以向不同发布的服务器请求的多个订阅。,18.6.2 复制的类型,快照复制快照复制可精确地复制数据或数据库对象在任意时刻的状态。快照复制通常被定义为按调度发生。订阅服务器存储发布的数据在上次快照复制时的复本。当数据变化不频繁,或者订阅服务器中的数据已过期,以及要复制的数据量很少时,使用快照复制。使用快照复制时,订阅服务器中的数据修改将被下一次快照复制的数据所改写。事务复制事务复制是将发布服务器上进行的所有修改复制到订阅服务器,实现在发布服务器和订阅服务器间维护事务完整性。在事务复制中,首先通过快照复制使订阅服务器与发布服务器同步,然后当已发布数据被修改时,捕获事务并将其发送

31、到订阅服务器。当必须在数据被修改时对其进行复制,以及发布服务器和订阅服务器通过网络可靠或经常地连接在一起时,使用事务复制。使用事务发布时,如果发布服务器和订阅服务器都对数据进行了更新,那么将以发布服务器的事务为准,改写订阅服务器对数据更改。合并复制合并复制能够对订阅服务器和发布服务器上的数据更改进行跟踪,将更改一起合并到发布服务器,然后通过快照复制使订阅服务器与发布服务器同步。在合并过程中,如果多个订阅服务器修改相同的数据,可能会发生冲突。用户可以设定以发布服务器中的数据为准或者根据优先级高的订阅服务器中的数据为准,来解决合并过程中的冲突。也可以编写自定义冲突解决程序脚本,以处理正确解决复杂冲

32、突情形所需的任何逻辑。当订阅服务器计算机需要独立于发布服务器运行时(例如移动的脱机用户),或者当多个订阅服务器必须更新相同的数据时,使用合并复制。,18.6.3 复制代理程序,复制代理程序执行许多与复制有关的任务,包括创建数据对象的架构和数据的副本、检查发布服务器或订阅服务器的更新,并传播服务器之间的更改。每个复制代理程序都有一个与它相关的代理配置文件、一些可以设置的代理属性以及代理调度及代理历史记录。快照代理程序快照代理程序将与所有的复制类型一起使用。它准备出版服务器中数据库的表和存储过程的架构,初始化数据文件,把他们存储为出版物,并将出版物插入分发数据库中。分发代理程序分发代理程序将与快照

33、复制和事务复制一起使用。它将快照文件和保存在分发数据库中的增量更改移动到订阅服务器上。对于强制订阅分发代理程序通常在分发服务器运行,请求订阅分发代理程序在订阅服务器运行。合并代理程序合并代理程序与合并复制一起使用。合并代理程序在订阅服务器上应用初始快照,并移动和调节创建初始快照之后发生的增量数据更改。合并代理同时连接发布服务器和订阅服务器并对它们进行更新。日志读取器代理程序日志读取器代理程序将与事务复制一起使用。它将标记为复制的事务从发布服务器的事务日志移动到分发数据库中。每个标记为事务复制的数据库都有一个运行在分发服务器上且连接到发布服务器的日志读取器代理程序。队列读取器代理程序队列读取器代

34、理程序用于快照复制或事务复制(使用排队更新选项),队列读取器代理程序从每个订阅服务器上的SQL Server队列中读取信息,并将这些事务应用于发布。,18.7 配置复制,使用SQL Server 企业管理器标识复制模型中的发布服务器、分发服务器和订阅服务器。配置复制是标识企业内的发布服务器、分发服务器和订阅服务器的过程,使用用配置发布和分发向导配置发布服务器、分发服务器和订阅服务器以用于复制,并且将来在必要时修改或禁用复制。配置复制的步骤如下:标识分发服务器,在分发服务器上创建分发数据库。配置发布服务器,准备发布的数据。创建订阅,启用接收发布数据的订阅服务器。,18.7.1 复制前的考虑,为了

35、提高执行效率,可以限制订阅服务器获得的所有数据,或仅发布订阅者真正需要的数据或订阅者有权得到的数据。在实现快照复制之前,为快照复制留出充足的磁盘空间。在实现事务复制前,分配足够的日志空间,为分发数据库留有足够的磁盘空间。为每一个表创建主键实现合并复制前移去timestamp列,由于订阅服务器的数据也会传递到出版服务器,应确保数据的完整性在各个订阅服务器上都能够得到保证,维护表之间的关联参照;在所有IDENTITY属性字段上加上NOT FOR REPLICATION设置,以保证SQL Server 2000 在复制代理程序所添加的行上保留起始标识值,但是继续在其他用户所添加的行上增加标识值。当用

36、户将某个新行添加到表时,标识值以通常的方式增加。当复制代理程序将该新行复制到订阅服务器时,在将该行插入到订阅服务器表中时不更改标识值。,18.7.2 配置分发服务器,一般说来,复制包括以下几个阶段:配置发布,生成和应用初始快照,修改复制数据以及同步和传播数据。打开SQL Server企业管理器,单击运行向导按钮,展开控制台树的【复制】节点启动【配置发布和分发向导】。分发服务器是快照复制和事务复制的首要组件。分发服务器用于代理程序历史记录和监视。分发服务器可以是与发布服务器不同的独立的服务器,也可以是同一台服务器,如图18.11所示,18.7.2 配置分发服务器,复制过程中各代理程序的调度由SQ

37、L Server Agent服务管理,应配置SQL Server Agent服务能够在系统启动的时候自动启动,并且在意外停止时能够自动重新启动,由于复制操作跨越多个服务器传输数据,所以SQL Server Agent服务的启动帐号应使用域用户帐号。出版物被复制到分发服务器的“快照文件夹”中。缺省路径为:ServerNameC$Program FilesMicrosoft SQL ServerMSSQLReplData。如图18.12所示,18.7.2 配置分发服务器,当出版服务器和发行服务器为不同的独立服务器时,管理员必须为快照文件夹指定存取权限,否则发布服务器将不能拷贝出版物到发行服务器,而

38、且订阅服务器将不能读取快照文件夹。如果选择使用SQL Server提供的缺省设置,复制配置向导将完成配置,单击完成按钮,会出现系统正在进行配置的提示画面,等所有设置完成后,分发服务器的配置即结束。配置工作完成后,系统在分发服务器上的创建distribution系统数据库、复制文件夹和复制监视器管理复制。如图18.13所示,18.7.3 配置发布服务器和创建出版物,在发布服务器和分发服务器配置完毕后创建出版物,出版物是准备发布的表、表中数据的子集或者其他数据库对象的集合,出版物是订阅的单元。打开SQL Server企业管理器,选择发布服务器,然后单击运行向导按钮,展开控制台树的【复制】节点启动【

39、创建发布向导】,选定准备发布的数据库,单击【创建发布】按钮,如图18.14所示。,18.7.3 配置发布服务器和创建出版物,在【选择发布类型】对话框中,列出了准备实施的复制类型:快照复制、事务复制与合并复制,如图18.15所示。确定要使用的复制类型,单击【下一步】。,18.7.3 配置发布服务器和创建出版物,在【订阅服务器的类型】对话框选择订阅服务器类型,如图18.16所示。订阅服务器可以是运行SQL Server 2000、SQL Server早期版本或其他数据源的服务器。,18.7.3 配置发布服务器和创建出版物,单击【下一步】,显示【指定项目】对话框,选择要发布对象。发布的项目可以是表中

40、的全部数据或者部分数据,也可以是数据库对象,如存储过程、视图,如图18.17所示。在事务发布中,只允许发布有主键的表。,18.7.3 配置发布服务器和创建出版物,单击【下一步】,设定发布的名称和对该发布的描述,如图18.18所示。,18.7.3 配置发布服务器和创建出版物,定义发布属性时可以选择接受发布的默认属性,也可以选择定义属性,如筛选数据、启用匿名订阅和设置快照代理程序的调度,如图18.19所示。选择【是,我将定义数据筛选,启用匿名订阅或自定义其它属性】,继续设定发布表中的某些行或列,指定是否允许名订阅,指定使快照是否立即同步到订阅服务器。单击【下一步】显示【筛选数据】对话框。,18.7

41、.3 配置发布服务器和创建出版物,在【筛选数据】对话框中,选择是否需要“垂直筛选发布”或“水平筛选发布”,如图18.20所示。垂直筛选发布是指挑选表中的特定的列发布,水平筛选发布是指使用Where语句限制发布表中的行。,18.7.3 配置发布服务器和创建出版物,通过筛选发布数据,如图18.21所示,可以将网络上发送的数据量减到最少,或者根据个别订阅服务器的要求,定制发布项目。由于不同的发布项目可以发送到不同的订阅服务器(不同的订阅服务器不会同时更新同一个数据值),因此可避免或减少冲突。,18.7.3 配置发布服务器和创建出版物,设定是否允许订阅服务器匿名订阅发布,如图18.22所示。匿名订阅是

42、请求订阅的一种类型,由订阅服务器负责进行同步处理,有关匿名订阅的订阅和订阅服务器的详细信息不保存在发布服务器。,18.7.3 配置发布服务器和创建出版物,设定快照代理程序调度,指定快照代理程序的何时创建新的出版物,并指定是否立即创建第一个快照,如图18.23所示。,18.7.3 配置发布服务器和创建出版物,单击【下一步】,进入完成发布向导画面,如图18.24所示。用户单击【完成】按钮后,系统开始按照用户在向导中的设定建立出版物,当所有步骤完成后,出版物的配置即结束。,18.7.4 订阅,订阅是对发布到指定订阅服务器的数据或数据库对象的请求。一个订阅服务器可以向不同发布请求的多个订阅。订阅可以创

43、建于发布服务器(强制订阅)或订阅服务器(请求订阅)。,18.7.4 订阅,强制订阅强制订阅在发布服务器上创建,复制代理程序不经订阅服务器请求即将数据及更新传播给订阅服务器,并且数据更新能够近似实时的移动到订阅服务器。数据更改通常按需或按照反复出现的度强制发布给订阅服务器。强制订阅可以简化和集中订阅管理,不必逐个管理每个订阅服务器。当同步强制订阅时,分发代理程序或合并代理程序运行于分发服务器。打开SQL Server企业管理器,单击运行向导按钮,展开控制台树的【复制】节点启动【创建强制订阅向导】。选择发行服务器上的出版物,单击【强制订阅】,如图18.25所示。,18.7.4 订阅,创建强制订阅时

44、,有关订阅和订户的信息存储在发布服务器上,首先在发布服务器的企业管理器中注册的订阅服务器,然后才能创建强制订阅。在【选择订阅服务器】对话框选择已经注册过的服务器名称,单击【下一步】,如图18.26所示。,18.7.4 订阅,在【选择目的数据库】对话框,指定接受发布的数据库名称,也可以新建数据保存发布,如图18.27所示。,18.7.4 订阅,指定分发代理程序程序是连续运行,根据调度运行,还是只按需运行。如图18.28所示,如果选择【连续的】,则分发代理在最短的时间内,把出版物的变化更新到目的数据库。如果选择【使用下列调度】,则用户可以设定分发代理在特定的时刻或按照某一时间间隔更新目的服务器。,

45、18.7.4 订阅,配置快照代理程序是否应在订阅服务器上执行初始化工作,以及分发代理程序或合并代理程序是否应自动把初始化数据复制到订阅服务器。如果选择是,那么发布服务器上的发布将立即被复制到订阅服务器,如图18.29所示。如果初始化数据量非常大,网络速度不是很快时,这个过程可能非常慢,而且占用大量网络资源,这时可以不必立即启动快照代理执行初始化过程,而通过调度或手动来完成。,18.7.4 订阅,当订阅者建立后,出版服务器上需要自动启动SQL Server Agent服务,如图18.30所示。,18.7.4 订阅,进入订阅设置完成画面,单击【完成】按钮,系统开始按用户的设定完成订阅。当所有步骤完

46、成后,强制订阅工作结束,如图18.31所示。,18.7.4 订阅,请求订阅请求订阅创建于订阅服务器,订阅服务器可以请求发布服务器上的数据和所做的更新。请求订阅使订阅服务器上的用户得以确定何时对数据更改进行同步处理,该处理可以根据需要或根据调度进行。当发布拥有大量的订阅服务器(例如使用 Internet 的订阅服务器),并且在分发服务器上运行一个或全部站点上的所有代理程序消耗过多资源时,可采用请求订阅。订阅的管理将发生在订阅服务器上,订户可以是独立或移动的,订阅服务器将确定何时连接到分发服务器和对更改进行同步处理。,18.7.4 订阅,在订阅服务器打开SQL Server 企业管理器,单击运行向

47、导按钮,展开控制台树的【复制】节点可以启动【创建请求订阅向导】。首先查找发布服务器和想要订阅的出版物,如图18.32所示。,18.7.4 订阅,在指定同步代理程序登录画面设定同步代理程序以何种用户的身份登录到分发服务器,如图18.33所示。如果选择【模拟SQL Server代理帐户】则使用订阅服务器上的SQL Server代理程序所使用的Windows 身份验证帐户登录到分发服务器。如果选择【使用SQL Server身份验证】,则使用指定SQL Server 身份验证登录到分发服务器。,18.7.4 订阅,在创建请求订阅时应指定订阅数据库的名称,指定快照代理程序是否应创建初始快照,以及分发代理

48、程序或合并代理程序是否应将此快照应用于订阅服务器。初始化订阅时要应用的快照文件的位置,快照文件在缺省情况下位于发行服务器的ServerNameC$Program FilesMicrosoft SQL ServerMSSQLReplData文件夹。如果在配置分发服务器时没有调整快照文件夹的位置,那么在快照传送画面中选择【使用该发布的默认快照文件夹中的快照文件】,如图18.34所示。,18.7.4 订阅,图18.34 设置快照传送配置分发代理程序或合并代理程序是连续运行,还是根据调度运行或者按照订户特定需要运行,如图18.35所示。如果选择【连续地】,则保证数据修改将在发布服务器和订阅服务器之间即

49、时传播。如果选择【使用下列调度】,则用户可以设定在特定的时刻或按照某一时间隔运行分发代理程序,进行请求订阅。如果选择【仅按需】,以便只在需要的时候手工运行分发代理程序或调整代理的调度后再自动执行。,18.7.4 订阅,当请求订阅建立后,订阅服务器上需要自动启动SQL Server Agent服务,单击【下一步】进入订阅设置完成画面,单击【完成】按钮,系统按照用户的设定完成订阅,如图18.36所示。当所有步骤完成后,请求订阅工作结束。,18.7.5 复制监控,配置发布和分发服务器之后,复制监视器将在分发服务器上SQL Server企业管理器中作为一个节点出现。复制监视器能够可以查看和管理复制代理

50、程序的活动,把它们用图表表示出来,查看分发服务器支持的所有的快照代理程序、日志读取器代理程序、分发代理程序、队列读取器代理程序或合并代理程序的列表。单击复制监视器显示这些代理程序的列表。单击某个代理程序的文件夹后,可以查看该程序的详细活动。如图18.37所示,18.7.5 复制监控,复制监视器提供了设置复制事件警报的一种方法。当事件发生时,复制监视器可以自动响应,触发警报,执行管理员定义的任务或向某人发送电子邮件或传呼信息。,18.7.5 复制监控,SQL Server 代理用来管理和调度复制中使用的代理程序。SQL Server 代理同时还控制并监视除复制以外的一些其它操作,包括监视 SQL

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号