1、第5章 数据库日常维护,课程描述本章将介绍一组SQL Server 2000的数据库日常维护方法。作为SQL Server数据库的管理员,本章介绍的内容将在日常工作中经常用到。,本章知识点,导入、导出数据 备份、还原数据库 分离和附加数据库,5.1 导入/导出数据,数据转换服务概述 DTS导出向导 DTS导入向导,5.1.1 数据转换服务概述,1DTS连接 2DTS任务 3DTS 转换 4DTS 包工作流,1DTS连接,要成功地执行复制和转换数据,DTS包必须与源数据和目的数据建立有效的连接。DTS允许下列各种连接。数据源连接:包括连接到标准数据库(如SQL Server、Access、Ora
2、cle、dBase和Paradox等)、与ODBC数据源的OLE DB连接、Excel电子表格数据、HTML源以及其他OLE DB提供程序。 文件连接:DTS 对文本文件提供额外的支持。指定文本文件连接时,需要指定文件的格式。例如,文本文件是分隔字段格式还是固定字段格式、文本文件是Unicode格式还是ANSI格式、行分隔符和列分隔符、文本限定符以及第一行是否包含列名等。数据链接连接:在这些连接中,SQL Server 外部的中间文件存储连接字符串。,2DTS任务,DTS任务是一组独立的功能,在包中作为单个步骤执行。每个任务都定义了要执行的工作项,它可以作为数据移动和数据转换过程的一部分,或者
3、作为一个要执行的作业。 主要的DTS任务包括:(1)导入和导出数据 (2)转换数据 (3)复制数据库对象 (4)将消息发送到其他用户和包以及从其他用户和包接收消息 (5)对数据源执行一组Transact-SQL语句或ActiveX脚本。,3DTS 转换,DTS转换是在数据到达目的之前应用于一块数据的函数或操作。经过转换后,源数据并未发生改变。,4DTS 包工作流,DTS包工作流指包在执行过程中的步骤顺序。,5.1.2 DTS导出向导,【例5.1】使用DTS导出向导,将表DepInfo中的数据导出到一个文本文件中。具体步骤如下: (1)在企业管理器中,选择菜单“工具”,然后选择“数据转换服务”菜
4、单项下的“DTS导出”,打开“数据转换服务”向导的欢迎窗口。,【例5.1】,(2)在欢迎窗口中单击“下一步”按钮,打开“选择数据源”窗口。数据源选择默认的“用于SQL Server的Microsoft OLE DB提供程序”,数据库选择HrSystem。 (3)单击“下一步”按钮,打开“选择目的”对话框。“目的”选择“文本文件”,“文件名”设置为C:学生.txt。,【例5.1】,(4)单击“下一步”按钮,打开“指定表复制或查询”窗口。在此窗口中,用户要指定是从数据源复制一个或多个表/视图,还是复制查询结果。这里选择第一项。,【例5.1】,(5)单击“下一步”按钮,打开“选择目的文件格式”对话框
5、,源选择HrSystem.dbo.DepInfo。可以使用分隔符来区别各列的数据,也可以设置固定字段,使信息以等宽方式按列对齐。您可以根据需要设置文件类型、行分隔符、列分隔符、以及文本限定符。如果没有特殊的需要,建议不要改变其他选项。,【例5.1】,(6)单击“下一步”按钮,打开“保存、调度和复制包”对话框。,【例5.1】,(7)单击“下一步”按钮,打开“完成导入/导出向导”对话框,如图5.7所示。在“摘要”框中列出了当前导出数据的基本情况,单击“完成”按钮结束向导。 (8)因为选择了“立即运行”选项,向导将立即运行DTS包,并显示运行进程和结果,如图5.8所示。,【例5.1】,(9)单击“完
6、成”按钮。打开C:部门.txt,其内容如下:1,“人事部“ 2,“办公室“ 3,“财务部“ 4,“技术部“ 5,“服务部“,【例5.2】,使用DTS导出向导,将表DepInfo中的数据导出到Access数据库中。具体步骤如下: (1)参照【例5.1】的步骤(1)和步骤(2)进行操作,过程完全相同。 (2)在选择目的对话框中,在“目的”组合框中选择Microsoft Access。输入Access数据库文件名,例如“C:部门信息”。如果存在用户名和密码,也一并输入。注意,选择的Access数据库必须已经存在。 (3)参照【例5.1】的步骤(4)导入数据的方式。,【例5.2】,(4)单击“下一步”
7、按钮,打开“选择源表和视图”对话框,源数据选中HrSystem.dbo.DepInfo,向导会自动生成同名的目的表名DepInfo,【例5.2】,(5)下面的步骤与例【例5.1】相似,请参照理解。打开Access数据库,查看表DepInfo,如图5.11所示。其中的数据与SQL Server数据库的内容相同。,5.1.3 DTS导入向导,【例5.3】使用DTS导出向导,将C:部门.txt到数据库HrManager中,具体步骤如下: (1)在企业管理器中,选择菜单“工具”,然后选择“数据转换服务”菜单项下的“DTS导入”,打开“数据转换服务”向导的欢迎窗口。,【例5.3】,(2)“文件名”设置为
8、C:部门.txt。 (3)单击“下一步”按钮,打开“选择文件格式”对话框,这里需要根据导出数据时的格式设置。如果导出数据时采用的是默认设置,则导入数据时也不需要做特殊设置。,【例5.3】,(4)单击“下一步”按钮,打开“指定列分隔符”窗口。在此窗口中,用户可以根据指定的分隔符查看预览效果。 (5)单击“下一步”按钮,打开“选择目的”对话框。“目的”选择默认的“用于SQL Server的Microsoft OLE DB提供程序”,数据库选择学生管理。,【例5.3】,(6)单击“下一步”按钮,打开“选择源表和视图”对话框。默认的目的表为与文本文件同名的“HrSystem.dbo.部门” 。单击表名
9、后面的“转换”按钮,打开“列映射和转换”窗口。可以在此窗口中设置目的表的列名、列属性以及数据源和目的列的对应关系。,【例5.3】,(7)单击“下一步”按钮,打开“保存、调度和复制包”对话框。 (8)单击“下一步”按钮,打开“完成导入/导出向导”对话框。在“摘要”框中列出了当前导出数据的基本情况,单击“完成”按钮结束向导。,【例5.3】,(9)因为选择了“立即运行”选项,向导将立即运行DTS包,并显示运行进程和结果。 在企业管理器中查看表“部门”中的数据。,【例5.4】,使用DTS导入向导,将Access数据库表DepInfo中的数据导入到SQL Server。具体步骤如下: (1)参照例【例5
10、.3】的步骤(1)进行操作,过程完全相同。 (2)在选择数据源对话框中,在“数据源”组合框中选择Microsoft Access。输入Access数据库文件名,例如C:部门信息。如果存在用户名和密码,也一并输入。,【例5.4】,(3)单击“下一步”按钮,打开“选择目的”对话框。选择SQL Server数据库服务器,然后选择数据库HrSystem。,【例5.4】,(4)单击“下一步”按钮,打开“指定表复制或查询”窗口。在此窗口中,用户要指定是从数据源复制一个或多个表/视图,还是复制查询结果。这里选择第一项。,【例5.4】,(5)单击“下一步”按钮,打开“选择源表和视图”对话框,目的数据修改为Hr
11、System.dbo.Departments。,【例5.4】,(5)下面的步骤与【例5.3】相似。打开SQL Server数据库,查看表students,5.2 备份/还原数据库,创建数据库备份。还原数据库备份。,5.2.1 创建数据库备份,(1)在企业管理器中,展开要备份的数据库所在的服务器组,然后展开服务器。 (2)展开“数据库”文件夹,右击要备份的数据库,例如HrSystem。在弹出菜单中选择“所有任务”/“备份数据库”,打开“SQL Server备份”窗口。在“名称”框内,输入备份集名称,默认值为HrSystem备份。也可以选择在“描述”框中输入对备份集的描述。,创建数据库备份,(3)
12、在“备份”选项下单击“数据库 - 完全”,此选项支持数据库的完整备份,而其他选项只能备份数据库的一部分。 (4)在“目的”选项下,单击“磁带”或“磁盘”。因为笔者的计算机上没有安装磁带设备,所以此选项不可用,只能选择“磁盘”。 (5)单击“添加”按钮,打开“选择备份目的”对话框。选择“文件名”文本框,默认的保存备份文件的目录为C:Program FilesMicrosoft SQL ServerMSSQLBACKUP。注意,这只是一个目录,读者还需要自己输入一个文件名。这里将数据库备份为“C:数据库备份文件.bak”。如果要备份到指定的目录,请单击“”按钮。,创建数据库备份,(6)单击“确定”
13、按钮,返回“SQL Server备份”对话框。 (7)如果需要设置定期执行备份操作,则选择“调度”复选框,然后单击后面的“”按钮,打开“编辑调度”对话框。 (8)在“编辑调度”对话框中设置完成后,请单击“确定”按钮,返回“SQL Server备份”对话框。 (9)如果一切都设置完成,则在“SQL Server备份”对话框中,单击“确定”按钮,开始备份。,5.2.2 还原数据库备份,(1)在企业管理器中,展开要还原的数据库所在的服务器组,然后展开服务器。 (2)右击“数据库”,在弹出菜单中选择“所有任务”/“还原数据库”,打开“还原数据库”窗口。将“还原为数据库”框设置为HrSystem。默认情
14、况下,“还原”选项中设置为“数据库”,下面的列表中给出了指定数据库备份的情况。,还原数据库备份,(3)可以直接从表格中选择备份记录,将当前数据库还原到备份时的数据。如果要还原的数据库不存在,则“显示数据库备份”的列表中就不会存在记录。在这种情况下,可以在“还原”选项中选择“从设备” 。,还原数据库备份,(4)单击“选择设备”按钮,打开“选择还原设备”对话框。 (5)在“选择还原设备”对话框中,同样可以看到“磁盘”和“磁带”两种设备。选择“磁盘”,然后单击“添加”按钮,打开“选择还原目的”对话框。选择“文件名”选项,并输入目的文件。也可以单击“”按钮,在弹出的窗口中选择目的文件。,还原数据库备份
15、,(6)在“选择还原目的”对话框,单击“确定”按钮,返回“选择还原设置”对话框。 (7)在“选择还原设置”对话框中,可以看到“设备名”列表中出现了选择的设备。单击“确定”按钮,返回“还原数据库”对话框。 (8)在“还原数据库”对话框中,同样可以看到“设备”列表中出现的选择设备。单击“确定”按钮,开始还原数据库。还原操作完成后,将出现一个对话框,提示还原成功。,5.3 分离和附加数据库,(1)分离数据库。 (2)附加数据库。,5.3.1 分离数据库,在企业管理器中,右键单击要分离的数据库,在弹出菜单中选择“任务”/“分离数据库”,打开“分离数据库”窗口。,以使用sp_detach_db分离数据库
16、,sp_detach_db dbname= dbname 参数 dbname = dbname 表示要分离的数据库的名称。 【例5.5】要分离数据库HrSystem,可以使用如下语句:Exec sp_detach_db HrSystem,5.3.2 附加数据库,可以将分离数据库的数据文件和日志文件附加到指定的数据库实例中,从而实现数据库的移植。 在企业管理器中,右键单击要“数据库”项,在弹出菜单中选择“所有任务”/“附加数据库”,打开“附加数据库”窗口。,附加数据库,单击“”按钮,打开“定位数据库文件”对话框。 选择分离数据库的数据文件,然后单击“确定”按钮。返回“附加数据库”窗口,此时要附加
17、的数据库信息已经出现在表格中。 确认附加数据库的信息后,单击“确定”按钮,开始附加数据库操作。完成后,附加的数据库将会出现在对象资源管理器中。,使用CREATE DATABASE语句附加数据库,CREATE DATABASE database_name ON ,.n FOR ATTACH WITH | ATTACH_REBUILD_LOG ;:= (NAME = logical_file_name ,FILENAME = os_file_name , SIZE = size KB | MB | GB | TB , MAXSIZE = max_size KB | MB | GB | TB | U
18、NLIMITED , FILEGROWTH = growth_increment KB | MB | GB | TB | % ) ,.n ,参数说明,database_name,新数据库的名称。数据库名称在SQL Server实例中必须惟一。 ON,指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。 FOR ATTACH,指定通过附加一组现有的操作系统文件来创建数据库。 FOR ATTACH_REBUILD_LOG,指定通过附加一组现有的操作系统文件来创建数据库。该选项只限于读/写数据库。如果缺少一个或多个事务日志文件,将重新生成日志文件。必须有一个指定主文件的项。,【例5.6】,要附加数据库HrSystem :USE master GO CREATE DATABASE HrSystem ON ( FILENAME = C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataHrSystem.mdf ), ( FILENAME = C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataHrSystem_log.ldf )FOR ATTACH GO,