1、第第13章章 数据库的导入导出与复制数据库的导入导出与复制本章内容本章内容13.1 数据库的导入导出数据库的导入导出13.2 数据库复制技术数据库复制技术13.1 数据库的导入导出数据库的导入导出13.1.1 导入导出概述导入导出概述13.1.2 导入数据导入数据13.1.3 导出数据导出数据13.1.1 导入导出概述导入导出概述n数据导入导出操作(为数据导入导出操作(为SQL的的数据转换服数据转换服务务)主要解决异构数据源之间相互转换。)主要解决异构数据源之间相互转换。n目的是提高数据库管理系统的适应性,是目的是提高数据库管理系统的适应性,是数据库管理系统的一个核心技术和组件。数据库管理系统
2、的一个核心技术和组件。13.1 13.1 数据库的导入导出数据库的导入导出数据导入导出实现不同格式的数据数据导入导出实现不同格式的数据在应用程序之间交换在应用程序之间交换dBaseMicrosoft AccessMicrosoft Data LinkMicrosoft ExcelMicrosoft Visual FoxPro其他其他ODBC数据源数据源其他其他OLE DB数据源数据源Paradox文本文件文本文件13.1.1 13.1.1 导入导出概述导入导出概述方法和工具描述DTS import Wizard 和DTS Export Wizard允许导入、导出和转换数据以及交互式地创建DTS
3、包DTS Package Designer允许有经验的数据库系统管理员导入、导出、转换数据和定义复杂的工作流程。DTS Transfer Manager从一个Microsoft SQL Server到另一个Microsoft SQL Server来移动结构、对象和数据。这个工具一般用于在不同的平台上迁移数据。BCP命令行实用程序,在Microsoft SQL Server和ASCII文件之间导入、导出数据。Transact-SQLSELECT INTO、INSERT SELECT、BULK INSERT语句备份与恢复允许完整地恢复和转移数据库。sp_attach_db把指定的数据库附加在服务器
4、上。Web Assistant发布数据库中的数据到Internet上。复制把数据分布到地理位置不同的服务器用户。表表13-1 数据导入导出方法和工具数据导入导出方法和工具13.1.1 13.1.1 导入导出概述导入导出概述13.1.2 导入数据导入数据导入数据的操作步骤导入数据的操作步骤:步骤步骤1:n在企业管理器中,从在企业管理器中,从“工具工具”菜单中选择菜单中选择“向导向导”13.1 13.1 数据库的导入导出数据库的导入导出n在在“向导向导”对话框中选择数据转换服务中对话框中选择数据转换服务中的的DTS导入向导导入向导13.1.2 13.1.2 导入数据导入数据步骤步骤2n打开打开“数
5、据转换服务导入数据转换服务导入/导出向导导出向导”界面,单击界面,单击“下一步下一步”按钮按钮13.1.2 13.1.2 导入数据导入数据步骤步骤3n选择导入数据源。选择导入数据源。选择文本文件为数据选择文本文件为数据源,在源,在“文件名文件名”编编辑框中输入辑框中输入C:SUPPLIER.TXT文本文件,将其导入文本文件,将其导入Sales数据库的数据库的Supplier表表 13.1.2 13.1.2 导入数据导入数据步骤步骤4n单击单击“下一步下一步”按钮,显示按钮,显示“选选择文件格式择文件格式”对对话框话框确定文件类型,确定文件类型,行分隔符,行分隔符,文本限定符文本限定符13.1.
6、2 13.1.2 导入数据导入数据步骤步骤5n单击单击“下一步下一步”按钮,按钮,显示显示“指定列分隔符指定列分隔符”对话框。对话框。“预览预览”列列表框显示数据文件的表框显示数据文件的数据。数据。13.1.2 13.1.2 导入数据导入数据步骤步骤6n单击单击“下一步下一步”按钮,显示按钮,显示“选择目的选择目的”对话框。对话框。确定目的确定目的数据库数据库13.1.2 13.1.2 导入数据导入数据步骤步骤7n单击单击“下一步下一步”按钮,按钮,显示选择源表和视图显示选择源表和视图对话框。选择导入数对话框。选择导入数据的据的supplier表表单击单击“预预览览”按钮按钮查看数据查看数据实
7、现映射实现映射和转换和转换13.1.2 13.1.2 导入数据导入数据步骤步骤8n单击单击“下一步下一步”按钮,按钮,显示显示“保存、调度和保存、调度和复制包复制包”对话框。对话框。13.1.2 13.1.2 导入数据导入数据步骤步骤9n单击单击“下一步下一步”按钮,按钮,在在“正在完成正在完成DTS导导入入/导出向导导出向导”界面中界面中单击单击“完成完成”按钮,按钮,运行数据导入工作。运行数据导入工作。最后显示用户操作成最后显示用户操作成功。功。13.1.2 13.1.2 导入数据导入数据13.1.3 导出数据导出数据导出数据的操作步骤导出数据的操作步骤:步骤步骤1:n在企业管理器中,从在
8、企业管理器中,从“工具工具”菜单中选择菜单中选择“向导向导”n在在“向导向导”对话框中选对话框中选择数据转换服务中的择数据转换服务中的DTS导出向导导出向导n打开打开“数据转换服务导数据转换服务导入入/导出向导导出向导”界面,单界面,单击击“下一步下一步”按钮按钮13.1 13.1 数据库的导入导出数据库的导入导出步骤步骤2n选择导出数据源。选择导出数据源。13.1.3 13.1.3 导出数据导出数据步骤步骤3n单击单击“下一步下一步”按钮,按钮,显示显示“选择目的选择目的”页页面,文件名为面,文件名为“d:data.txt”输入导出输入导出文件名文件名13.1.3 13.1.3 导出数据导出
9、数据步骤步骤4n单击单击“下一步下一步”按钮,按钮,显示显示“指定表复制或指定表复制或查询查询”对话框,选择对话框,选择从源数据库复制表和从源数据库复制表和视图。视图。指定导出指定导出方式方式13.1.3 13.1.3 导出数据导出数据步骤步骤5n单击单击“下一步下一步”按钮,按钮,显示显示“选择目的的文选择目的的文件格式件格式”对话框,设对话框,设置导出文件的属性。置导出文件的属性。13.1.3 13.1.3 导出数据导出数据指定要导出指定要导出的数据表的数据表指定导出的指定导出的文件格式文件格式步骤步骤6n单击单击“下一步下一步”按钮,按钮,显示显示“保存、调度和保存、调度和复制包复制包”
10、对话框对话框 n单击单击“下一步下一步”按钮,按钮,显示显示“正在完成正在完成DTS导导入导出向导入导出向导”对话框,对话框,完成操作完成操作13.1.3 13.1.3 导出数据导出数据13.2 数据库的复制技术数据库的复制技术13.2.1 数据库复制概述数据库复制概述13.2.2 复制代理与复制类型复制代理与复制类型13.2.3 数据库复制的方法数据库复制的方法13.2.4 监视和维护复制监视和维护复制13.2.1 数据库复制概述数据库复制概述n数据复制就是把一个数据库服务器上的数数据复制就是把一个数据库服务器上的数据传输到地理位置不同的数据库服务器中据传输到地理位置不同的数据库服务器中的过
11、程。的过程。n使用数据复制技术,可以使数据的分布过使用数据复制技术,可以使数据的分布过程自动化,以适应可伸缩组织的需要,减程自动化,以适应可伸缩组织的需要,减轻主服务器的工作负荷,提高数据的利用轻主服务器的工作负荷,提高数据的利用效率。效率。13.2 13.2 数据库的复制技术数据库的复制技术13.2.1 数据库复制概述数据库复制概述n数据复制过程被比喻成报纸或杂志的出版数据复制过程被比喻成报纸或杂志的出版过程,就是把信息从信息源迅速传送到信过程,就是把信息从信息源迅速传送到信息接收处。息接收处。从内容方面看,这两种过程都是传送信息:出从内容方面看,这两种过程都是传送信息:出版主要传送新闻、数
12、据、图像、知识等信息,版主要传送新闻、数据、图像、知识等信息,复制主要传送数据信息。复制主要传送数据信息。从实现形式方面看,在这两种过程中,都有信从实现形式方面看,在这两种过程中,都有信息源和信息接收处。息源和信息接收处。13.2.1 13.2.1 数据库复制概述数据库复制概述复制过程中的组件复制过程中的组件n发布服务器、分发服务器、订阅服务器以及发布、项目发布服务器、分发服务器、订阅服务器以及发布、项目和订阅和订阅13.2.1 13.2.1 数据库复制概述数据库复制概述发布服务器、项目和订阅发布服务器、项目和订阅发布服务器相当于是一家出版社,它提供用于发布服务器相当于是一家出版社,它提供用于
13、复制到其他服务器的数据库,负责制作将要出复制到其他服务器的数据库,负责制作将要出版的数据,并检测这些数据的更新情况,然后版的数据,并检测这些数据的更新情况,然后将这些数据的所有变化发送到分发服务器中。将这些数据的所有变化发送到分发服务器中。项目是指定要复制的数据表、数据分区或数据项目是指定要复制的数据表、数据分区或数据库对象。库对象。出版是一个数据库中的一个或多个项目的集合。出版是一个数据库中的一个或多个项目的集合。13.2.1 13.2.1 数据库复制概述数据库复制概述分发服务器分发服务器分发服务器类似于出版社与读者之间的中介,分发服务器类似于出版社与读者之间的中介,例如分发站、书店、报刊亭
14、等。例如分发站、书店、报刊亭等。分发服务器负责从发布服务器中接收数据,将分发服务器负责从发布服务器中接收数据,将数据保存在它建立的多个分发数据库中,最后数据保存在它建立的多个分发数据库中,最后按照指定的时间间隔推向相应的订阅服务器中。按照指定的时间间隔推向相应的订阅服务器中。分发服务器分为远程分发服务器和本地分发服分发服务器分为远程分发服务器和本地分发服务器。务器。13.2.1 13.2.1 数据库复制概述数据库复制概述订阅、订阅服务器订阅、订阅服务器订阅是对数据或数据库对象复本的请求。订阅订阅是对数据或数据库对象复本的请求。订阅定义将接收的发布和接收的时间、地点。定义将接收的发布和接收的时间
15、、地点。订阅服务器可以认为是出版物的读者,它是接订阅服务器可以认为是出版物的读者,它是接收数据的服务器。订阅服务器是数据复制的目收数据的服务器。订阅服务器是数据复制的目的地,负责接收复制的数据,并且负责接收从的地,负责接收复制的数据,并且负责接收从发布服务器上传送过来的全部变化。发布服务器上传送过来的全部变化。13.2.1 13.2.1 数据库复制概述数据库复制概述13.2.2 复制代理与复制类型复制代理与复制类型nSQL Server 2000提供了提供了4种复制代理来实现种复制代理来实现3种复制类型。种复制类型。在复制过程中的复制进程就是复制代理。在复制过程中的复制进程就是复制代理。复制代
16、理可以把出版物从发布服务器中传送到复制代理可以把出版物从发布服务器中传送到分发服务器中,然后由分发服务器把这些出版分发服务器中,然后由分发服务器把这些出版物传送到订阅服务器中。物传送到订阅服务器中。13.2 13.2 数据库的复制技术数据库的复制技术复制代理复制代理n复制代理包括:复制代理包括:快照代理快照代理分发代理分发代理日志阅读代理日志阅读代理合并代理合并代理13.2.2 13.2.2 复制代理与复制类型复制代理与复制类型复制类型复制类型n在在SQL Server 中,根据事务一致性、各个站点的中,根据事务一致性、各个站点的自主性和分区数据避免冲突的能力,可以把复制自主性和分区数据避免冲
17、突的能力,可以把复制分成分成3种类型。种类型。快照复制:就是把在发布服务器上出版物中的当前数快照复制:就是把在发布服务器上出版物中的当前数据进行复制和分发,建立发布快照,然后周期地替代据进行复制和分发,建立发布快照,然后周期地替代订阅服务器上的出版物。类似于快速拍照的过程。订阅服务器上的出版物。类似于快速拍照的过程。事务复制:就是把发布服务器上的事务作为增量的变事务复制:就是把发布服务器上的事务作为增量的变化分发到订阅服务器中。化分发到订阅服务器中。合并复制:允许站点自主改变复制过的数据,经过一合并复制:允许站点自主改变复制过的数据,经过一段时间之后,或者是周期性的调度时间,或者是根据段时间之
18、后,或者是周期性的调度时间,或者是根据需要而预定的时间,把有关站点对复制数据的改变合需要而预定的时间,把有关站点对复制数据的改变合并起来,并且反应到全部站点。并起来,并且反应到全部站点。13.2.2 13.2.2 复制代理与复制类型复制代理与复制类型13.2.3 数据库复制的方法数据库复制的方法n创建一个复制方案所需的步骤有:创建一个复制方案所需的步骤有:指定分发服务器指定分发服务器设置分发数据库选项设置分发数据库选项创建和管理发布创建和管理发布创建和管理订阅创建和管理订阅13.2 13.2 数据库的复制技术数据库的复制技术1创建分发服务器和发布创建分发服务器和发布(1)打开企业管理器,选打开
19、企业管理器,选择用来作为发布者的择用来作为发布者的服务器。服务器。(2)选择选择“工具工具复制复制创建和管理发布创建和管理发布”菜菜单项,显示单项,显示“创建和创建和管理发布管理发布”对话框对话框13.2.3 13.2.3 数据库复制的方法数据库复制的方法(3)从允许被复制的数据库中选择一个数据库从允许被复制的数据库中选择一个数据库Sales13.2.3 13.2.3 数据库复制的方法数据库复制的方法单击单击“创建发布创建发布”按钮,出现创建发布向导按钮,出现创建发布向导对话框对话框13.2.3 13.2.3 数据库复制的方法数据库复制的方法(4)单击单击“下一步下一步”按钮,出现按钮,出现“
20、选择分发服选择分发服务器务器”对话框。对话框。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(5)单击单击“下一步下一步”按钮,出现按钮,出现“指定快照文指定快照文件夹件夹”对话框,在快照文件夹中,输入快照对话框,在快照文件夹中,输入快照文件夹路径,该路径必须是网络路径。文件夹路径,该路径必须是网络路径。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(6)单击单击“下一步下一步”出现出现“选择发布数据库选择发布数据库”对话框对话框,选择要发布的数据库,选择要发布的数据库Sales数据库数据库。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(7)单击单击
21、“下一步下一步”按钮出现按钮出现“选择发布类型选择发布类型”对话框,选择对话框,选择“快照发布快照发布”。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(8)单击单击“下一步下一步”按钮出现按钮出现“订阅服务器类订阅服务器类型型”对话框。设置订阅服务器的类型。对话框。设置订阅服务器的类型。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(9)在在“指定项目指定项目”对话框中,选择作为项目对话框中,选择作为项目发布的数据库对象。发布的数据库对象。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(10)单击单击“下一步下一步”按钮,出现按钮,出现“选择发布名选
22、择发布名称和描述称和描述”对话框。对话框。n在在“发布名称发布名称”文文本框中输入发布的本框中输入发布的名字。名字。n在在“发布描述发布描述”一一栏中,输入对于发栏中,输入对于发布的简单描述。布的简单描述。n单击单击“下一步下一步”按按钮。钮。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(11)在在“自定义发布的属性自定义发布的属性”对话框中选择是对话框中选择是否要过滤数据,即对刚才选择的表限定哪些否要过滤数据,即对刚才选择的表限定哪些行和列要发布。行和列要发布。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(12)单击单击“下一步下一步”按钮出现按钮出现“筛选数
23、据筛选数据”对对话框,选择筛选数据的方式。话框,选择筛选数据的方式。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(13)单击单击“下一步下一步”按钮出现相应的设置窗口按钮出现相应的设置窗口n因为在上一操作步骤因为在上一操作步骤中选择的是垂直筛选,中选择的是垂直筛选,在这个窗口中,可以在这个窗口中,可以选择发布的列。选择发布的列。n也可以提供一个限制也可以提供一个限制性从句来选择表中特性从句来选择表中特定的行定的行(如果选择水如果选择水平分分割平分分割)。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(14)单击单击“下一步下一步”按钮显示按钮显示“是否允许匿名是否
24、允许匿名订阅订阅”对话框。对话框。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(15)“设置快照代理程序调度设置快照代理程序调度”对话框。对话框。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(16)单击单击“下一步下一步”按钮进入按钮进入“完成创建发完成创建发布向导布向导”对话框。对话框。n单击单击“完成完成”按钮按钮开始正式创建发布,开始正式创建发布,完成后,系统将发完成后,系统将发布项目添加到企业布项目添加到企业管理器的发布内容管理器的发布内容中。中。13.2.3 13.2.3 数据库复制的方法数据库复制的方法2设置分发数据库设置分发数据库n在企业管理器的菜
25、单中在企业管理器的菜单中依次选择依次选择“工具工具复制复制配置发布、订阅服务配置发布、订阅服务器和分发器和分发”菜单项,查菜单项,查看已创建的分发服务器看已创建的分发服务器和默认创建的分发数据和默认创建的分发数据库库。13.2.3 13.2.3 数据库复制的方法数据库复制的方法3配置发布配置发布n在在“发布服务器和分发发布服务器和分发服务器属性服务器属性”对话框中对话框中,选择选择“发布服务器发布服务器”选选项卡,在项卡,在“发布服务器发布服务器”选项卡中指定哪个服务选项卡中指定哪个服务器是发布服务器。器是发布服务器。13.2.3 13.2.3 数据库复制的方法数据库复制的方法在在“发布数据库
26、发布数据库”选项卡中可以选择哪些用选项卡中可以选择哪些用户数据库可以被发布户数据库可以被发布13.2.3 13.2.3 数据库复制的方法数据库复制的方法4设置订阅服务器设置订阅服务器n创建发布。通过创建发布。通过“强强制订阅制订阅”或者或者“请求请求订阅订阅”实现。实现。(1)打开企业管理器,连打开企业管理器,连接到订阅服务器上。接到订阅服务器上。(2)选择选择“工具工具复制复制请求订阅请求订阅”菜单项,菜单项,在弹出的对话框中单在弹出的对话框中单击击“请求新订阅请求新订阅”按按钮。钮。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(3)在在“请求订阅向导请求订阅向导”对话框,单
27、击对话框,单击“下一下一步步”按钮按钮。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(4)在在“查找发布查找发布”对话框,选择对话框,选择“查看已注查看已注册服务器所作的发布册服务器所作的发布”单选框,单击单选框,单击“下一下一步步”按钮按钮13.2.3 13.2.3 数据库复制的方法数据库复制的方法在在“选择发布选择发布”对话框选择想要订阅的发布。对话框选择想要订阅的发布。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(5)在在“指定同步代理程序登录指定同步代理程序登录”对话框中输对话框中输入代理程序连接发布服务器时的账户和密码,入代理程序连接发布服务器时的账户
28、和密码,单击单击“下一步下一步”按钮。按钮。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(6)在在“选择目的数据库选择目的数据库”对话框的对话框的“选择在其中创选择在其中创建订阅数据库建订阅数据库”的区域中,选择将订阅的数据存放的区域中,选择将订阅的数据存放到的数据库中。可以是一个预先存在的数据库或者到的数据库中。可以是一个预先存在的数据库或者创建一个新的数据库。创建一个新的数据库。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(7)在在“初始订阅初始订阅”对话框中,将发布服务器发布的对话框中,将发布服务器发布的内容通过快照代理复制到分发服务器的分发工作目内容通过
29、快照代理复制到分发服务器的分发工作目录,然后通过发布代理程序复制到订阅服务器。录,然后通过发布代理程序复制到订阅服务器。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(8)在在“设置分发代理程序的调度设置分发代理程序的调度”对话框,选择分对话框,选择分发代理更新订阅的频率。发代理更新订阅的频率。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(9)在在“启动要求的服务启动要求的服务”对话框,启动对话框,启动SQL Server Agent服务。服务。13.2.3 13.2.3 数据库复制的方法数据库复制的方法(10)在在“完成请求订阅完成请求订阅”对话框,单击对话框,
30、单击“完成完成”按钮,完成创建订阅。按钮,完成创建订阅。13.2.3 13.2.3 数据库复制的方法数据库复制的方法13.2.4 监视和维护复制监视和维护复制n复制监视器为复制监视器工具,可以查看许多复制的信息,复制监视器为复制监视器工具,可以查看许多复制的信息,例如可以查看发布服务器、出版物和订阅物的清单,查看例如可以查看发布服务器、出版物和订阅物的清单,查看已经调度的复制代理,查看复制代理和作业的工作历史,已经调度的复制代理,查看复制代理和作业的工作历史,还可以监测数据库的空间等。还可以监测数据库的空间等。n在解决故障时,应该首先查看各种错误日志,以便了解错在解决故障时,应该首先查看各种错
31、误日志,以便了解错误情况,然后使用查询分析器测试各种服务器之间的连接误情况,然后使用查询分析器测试各种服务器之间的连接性,最后,还要确认各种服务是否正在运行,以及为这些性,最后,还要确认各种服务是否正在运行,以及为这些服务提供的账号和口令是否正确等。服务提供的账号和口令是否正确等。n复制完成之后,可以把复制的创建过程生成脚本文件。复制完成之后,可以把复制的创建过程生成脚本文件。13.2 13.2 数据库的复制技术数据库的复制技术本章小结(1)数据导入导出是把数据库中的数据引出到数据库之外的数数据导入导出是把数据库中的数据引出到数据库之外的数据源或把数据库之外的数据源中的数据引入到数据库中。也是
32、据源或把数据库之外的数据源中的数据引入到数据库中。也是把数据从一个地方转移到另外一个地方,把一种类型的数据转把数据从一个地方转移到另外一个地方,把一种类型的数据转换成另外一种类型的数据的技术。在换成另外一种类型的数据的技术。在SQL Server企业管理器中企业管理器中使用输入向导和输出向导可以实现数据的导入导出。使用输入向导和输出向导可以实现数据的导入导出。(2)数据复制就是把一个数据库服务器上的数据传输到地理位数据复制就是把一个数据库服务器上的数据传输到地理位置不同的数据库服务器中的过程。使用数据复制技术,可以使置不同的数据库服务器中的过程。使用数据复制技术,可以使数据的分布过程自动化,提
33、高数据的利用效率。数据的分布过程自动化,提高数据的利用效率。SQL Server 2000提供了提供了4种复制代理来实现种复制代理来实现3种复制类型。复制代理包括快种复制类型。复制代理包括快照代理、分发代理、日志阅读代理和合并代理。复制类型包括照代理、分发代理、日志阅读代理和合并代理。复制类型包括快照复制、事务复制和合并复制。快照复制、事务复制和合并复制。(3)创建一个复制方案所需的步骤有:指定分发服务器、设置创建一个复制方案所需的步骤有:指定分发服务器、设置分发数据库选项、创建和管理发布、创建和管理订阅、设置订分发数据库选项、创建和管理发布、创建和管理订阅、设置订阅服务器选项。具体可以通过使用企业管理器来实现。阅服务器选项。具体可以通过使用企业管理器来实现。