8.1 备份和恢复概述 8.1.1 备份和恢复需求分析.

Slides:



Advertisements
Similar presentations
Chapter 3: SQL.
Advertisements

数据库原理与应用教程 ―SQL Server
4 数据库管理.
数据库原理与应用 学习情境10:数据库系统的管理和维护.
第10章 数据库备份与恢复 第10章 数据库备份与恢复 10.1 数据库备份 10.2 恢复数据库 10.3 数据库的维护 上页 下页 结束.
第16章 备份与恢复 基 本 概 念 16.1 备份数据库 16.2 恢复数据库 16.3.
项目4 保障数据库安全 第13章 数据库的安全性 第14章 备份、恢复、分离附加与 导入导出数据库
第15章 备份与恢复数据库 日志文件 基本概念 恢复数据库的基本原理 数据库故障的种类 备份数据库 备份的内容和时间 备份的一般方法
第11章 数据备份、恢复和报表 本章概述: 本章主要讲解如何规划数据库的日常备份策略,以及当数据库发生故障时应当采取怎样的手段进行数据恢复。本章首先讲解了如何制订备份策略,然后说明了如何进行备份和还原。同时,本章还介绍了数据库快照以及系统数据库恢复的问题。学生需要掌握多种备份策略,包括完整备份、差异备份、日志备份以及快照备份,同时需要了解应该在何种场合下使用相应的策略。
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
第四章 数据库管理和使用.
6 Copyright © Oracle Corporation, All rights reserved. 维护控制文件.
插入超链接 高邮市第一实验小学 范太国 任务一:设置文本超链接 任务一:设置文字超链接 步骤:1、选定文字并右击,在快捷菜单 中选择“超链接”命令。 2、在弹出的对话框中选择左侧“链接到:”中的“本文档中的位置(A)”项,在“请选择文档中的位置(C):”中选择需要链接的幻灯片,单击“确定”按钮。
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
J2EE与中间件技术 ——Lab.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
第4章 数据库管理 4.1 数据库的存储结构 4.2 创建、修改和删除数据库 4.3 数据库备份 4.4 恢复数据库 4.5 数据库的维护
第9章 SQL Server的数据库保护技术 教学目标:通过本章学习,了解SQL Server的安全体系结构的含义和安全认证模式的分类;掌握SQL Server登录账号、用户账号及角色的创建方法;熟悉权限的分类,掌握对象权限和语句权限的管理方法;明确SQL Server中数据完整性的种类,掌握数据完整性实现的具体方法;熟悉SQL.
SOA – Experiment 3: Web Services Composition Challenge
大学计算机基础 典型案例之一 构建FPT服务器.
SQL Injection.
第六单元 ADO.net数据库操作 劳动和社会保障部全国计算机信息高新技术考试指定教材——ASP.NET.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
Hub Web System 主要功能: 1.查询库存(Query Current Storage) 2.创建PL(Create PL) 3.查询、打印PL单(Query & Print PL) 4.查询允交量、在途量 5.修改用户的基本信息(Update Password) 6.查询GR(Query.
第17章 网站发布.
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
数据挖掘工具性能比较.
Windows 7 的系统设置.
SQL Server 2000数据库 简明教程 李存斌 主编 下一页.
YMSM D-PACK 安装手册 作成者:D-PACK维护组(YMSLx) 作成日:
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
第10章 备份和恢复 本章导读: 在数据库的使用过程中,难免会由于软硬件故障、病毒入侵、操作不当等各种因素造成数据的丢失或损坏。备份和恢复是保证数据库有效性、正确性和可靠性的重要措施。运用适当的备份策略,可以保证及时有效地恢复数据库中的重要数据,将数据损失量降低到最小点。 知识要点: 备份 恢复.
本次课主题:备份和恢复.
学习要点: 备份的概念 备份的类型 数据库备份的方法 恢复数据库的方法
程序设计工具实习 Software Program Tool
第13章 数据库的备份与恢复 13.1 数据库备份设备 13.2 数据库备份 13.3 数据库恢复.
新PQDT论文全文库提交平台.
微机系统的组成.
实验讲评
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
VB与Access数据库的连接.
Lab17 程序设计B班
教育部 财政部 网络教育数字化学习资源中心平台系统 安装与配置
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
数据库系统与应用实验 基于SQL Server 2005.
第4章 Excel电子表格制作软件 4.4 函数(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
第六章 素材的加工与处理 第13讲 用GoldWave进行音频的截取、合并、淡入淡出操作
Visual Basic程序设计 第13章 访问数据库
VRP教程 2011.
熟悉PowerDesiner12操作环境 菜单栏 标题栏 工具栏 导航栏 工作区 浮动工具条 导航选项卡 控制信息栏 状态栏.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
第11章 SQL Server 2005 集成服务.
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
YOUR SUBTITLE GOES HERE
VB与Access数据库的连接.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
WEB程序设计技术 数据库操作.
第四章 UNIX文件系统.
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
培训课件 AB 变频器的接线、操作及参数的备份 设备动力科.
第3章 服务器管理 3.1 创建服务器组 3.2 服务器注册 3.3 服务器启动、暂停和停止 3.4 服务器连接与断开
Presentation transcript:

8.1 备份和恢复概述 8.1.1 备份和恢复需求分析

8.1.1 备份和恢复需求分析 数据库中的数据丢失或被破坏可能是由于以下原因: 8.1.1 备份和恢复需求分析 数据库中的数据丢失或被破坏可能是由于以下原因: (1)计算机硬件故障。由于使用不当或产品质量等原因,计算机硬件可能会出现故障,不能使用。如硬盘损坏会使得存储于其上的数据丢失。 (2)软件故障。由于软件设计上的失误或用户使用的不当,软件系统可能会误操作数据引起数据破坏。 (3)病毒。破坏性病毒会破坏系统软件、硬件和数据。 (4)误操作。如用户误使用了诸如DELETE、UPDATE等命令而引起数据丢失或被破坏。 (5)自然灾害。如火灾、洪水或地震等,它们会造成极大的破坏,会毁坏计算机系统及其数据。 (6)盗窃。一些重要数据可能会遭窃。

8.1.2 数据库备份的基本概念 1. 备份内容 2. 由谁做备份 3. 备份介质 8.1.2 数据库备份的基本概念 1. 备份内容 2. 由谁做备份 (1) 在SQL Server 2000中,具有下列角色的成员可以做备份操作: (2) 固定的服务器角色sysadmin(系统管理员); (3) 固定的数据库角色db_owner(数据库所有者); (4) 固定的数据库角色db_backupoperator。 3. 备份介质 (1) 硬盘:是最常用的备份介质。硬盘用于备份本地文件,也用于备份网络文件。 (2) 磁带:是大容量的备份介质,磁带仅可用于备份本地文件。 (3) 命名管道(Named Pipe):它是一种逻辑通道,SQL Server 2000允许将备份的文件放在命名管道上,从而可以允许利用第三方软件包的备份和恢复能力。

8.1.2 数据库备份的基本概念 4. 何时备份 5. 备份频率 6. 限制的操作 7. 备份方法 8. 性能考虑 (1)完全数据库备份 8.1.2 数据库备份的基本概念 4. 何时备份 5. 备份频率 6. 限制的操作 7. 备份方法 (1)完全数据库备份 (2)数据库和事务日志备份 (3)差异备份 (4)数据库文件或文件组备份 8. 性能考虑 备份一个数据库所需的时间主要取决于物理设备的速度,如磁盘设备的速度通常比磁带设备快; 通常备份到多个物理设备比备份到一个物理设备要快; (3) 系统的并发活动对数据库的备份有影响;

8.1.3 数据库恢复概念 1. 准备工作 数据库恢复的准备工作包括系统安全性检查和备份介质验证。 2. 执行恢复数据库的操作 8.1.3 数据库恢复概念 1. 准备工作 数据库恢复的准备工作包括系统安全性检查和备份介质验证。 系统发现出现了以下情况时,恢复操作将不进行: (1) 指定的要恢复的数据库已存在,备份文件中记录的数据库与其不同; (2) 服务器上数据库文件集与备份中的数据库文件集不一致; (3) 未提供恢复数据库所需的所有文件或文件组。 这些信息包括: 备份文件或备份集名及描述信息; 所使用的备份介质类型(磁带或磁盘等); 所使用的备份方法; 执行备份的日期和时间; 备份集的大小; 数据库文件及日志文件的逻辑和物理文件名; 备份文件的大小。 2. 执行恢复数据库的操作

8.2.1 创建备份设备 1. 创建命名备份设备 1)使用系统存储过程创建命名备份设备 8.2.1 创建备份设备 1. 创建命名备份设备 1)使用系统存储过程创建命名备份设备 执行系统存储过程sp_addumpdevice可以在磁盘或磁带上创建命名备份设备,也可以将数据定向到命名管道。 创建命名备份设备时,要注意以下几点: (1) SQL Server 2000将在系统数据库master的系统表sysdevice中,创建该命名备份设备的物理名和逻辑名。 (2) 必须指定该命名备份设备的物理名和逻辑名,当在网络磁盘上创建命名备份设备时,要说明网络磁盘文件路径名。 (3) 一个数据库最多可以创建32个备份文件 语法格式: sp_addumpdevice [ @devtype = ] 'device_type', [ @logicalname = ] 'logical_name', [ @physicalname = ] 'physical_name'

8.2.1 创建备份设备 2)使用企业管理器创建命名备份设备 在SQL Server企业管理器中创建命名备份设备,步骤是: 8.2.1 创建备份设备 2)使用企业管理器创建命名备份设备 在SQL Server企业管理器中创建命名备份设备,步骤是: 第1步 用管理员帐号登录SQL Server; 第2步 运行SQL Server企业管理器; 第3步 在控制台目录树中,展开服务器组和服务器,展开“管理”文件夹,在“备份”上单击鼠标右键,选择“新建备份设备”。

8.2.1 创建备份设备 第4步 上一步操作完成后,出现如图所示的对话框,在该对话框中有两个文本框,分别输入备份设备的逻辑名和完整的物理路径名。输入完毕后,单击“确定”按钮,则新的备份设备就创建完成了,如图8.3所示。

8.2.1 创建备份设备 2. 创建临时备份设备 【例8.3】在磁盘上创建一个临时备份设备,它用来备份数据库XSCJ。 语法格式: 8.2.1 创建备份设备 2. 创建临时备份设备 语法格式: BACKUP DATABASE { database_name | @database_name_var } TO <backup_file> [, …n ] <backup_file>::= { { backup_file_name | @backup_file_name_evar } | { DISK | TAPE | PIPE } = { temp_file_name | @temp_file_name_evar } 【例8.3】在磁盘上创建一个临时备份设备,它用来备份数据库XSCJ。 USE master BACKUP DATABASE XSCJ TO 'e:\temp\tmpxscj.ba’

8.2.1 创建备份设备 3. 使用多个备份设备 SQL Server可以同时向多个备份设备写入数据,即进行并行的备份。并行备份将需备份的数据分别备份在多个设备上,这多个备份设备构成了备份集。

8.2.2 备份命令 1. 备份整个数据库 语法格式: BACKUP DATABASE { database_name | @database_name_var } /*被备份的数据库名*/ TO < backup_device > [ ,...n ] /*指出备份目标设备*/ [ WITH [ BLOCKSIZE = { blocksize | @blocksize_variable } ] /*块大小*/ [ [ , ] DESCRIPTION = { 'text' | @text_variable } ] /*备份集的自由格式文本*/ [ [ ,] EXPIREDATE = { date | @date_var } /*备份集到期和允许被重写的日期*/ | RETAINDAYS = { days | @days_var } ] [ [ , ] PASSWORD = { password | @password_variable } ] [ [ , ] FORMAT | NOFORMAT ] [ [ , ] { INIT | NOINIT } ] /*指定是覆盖还是追加*/         [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]         [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]  [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]         [ [ , ] { NOREWIND | REWIND } ] [ [ , ] { NOSKIP | SKIP } ] [ [ , ] { NOUNLOAD | UNLOAD } ] [ [ , ] RESTART ]          [ [ , ] STATS [ = percentage ] ]  ]

8.2.2 备份命令 使用企业管理器查看备份设备的内容。步骤如下: 8.2.2 备份命令 使用企业管理器查看备份设备的内容。步骤如下: 第1步 在企业管理器的控制台目录树上,展开“管理”文件夹,单击“备份”,在右边窗口中选定备份设备,在其上单击鼠标右键如图所示。

8.2.2 备份命令 第2步 上一步操作结束后,将出现如图所示的备份设备属性对话框,单击“查看内容”按钮。 8.2.2 备份命令 第2步 上一步操作结束后,将出现如图所示的备份设备属性对话框,单击“查看内容”按钮。 第3步 上一步操作结束后,将出现如图所示的查看备份媒体内容对话框,其中显示了所要查看的备份设备的内容。

8.2.2 备份命令 【例8.4】使用逻辑名test1创建一个命名的备份设备,并将数据库XSCJ完全备份到该设备。 USE master 8.2.2 备份命令 【例8.4】使用逻辑名test1创建一个命名的备份设备,并将数据库XSCJ完全备份到该设备。 USE master EXEC sp_addumpdevice 'disk' , 'test1', 'e:\db_temp\test1.bak' BACKUP DATABASE XSCJ TO test1

8.2.2 备份命令 【例8.5】将数据库XSCJ备份到多个备份设备。 USE master 8.2.2 备份命令 【例8.5】将数据库XSCJ备份到多个备份设备。 USE master EXEC sp_addumpdevice 'disk','test2','e:\db_temp\test2.bak' EXEC sp_addumpdevice 'disk','test3','e:\db_temp\test3.bak' BACKUP DATABASE XSCJ TO test2,test3 WITH NAME = 'xscjbk'

8.2.2 备份命令 2. 差异备份数据库 【例8.6】创建临时备份设备并在所创建的临时备份设备上进行差异备份。 语法格式: 8.2.2 备份命令 2. 差异备份数据库 语法格式: BACKUP DATABASE { database_name | @database_name_var } TO <backup_device> [ , … n ] [ WITH [ [ , ] DIFFERENTIAL ] /*其余选项与相数据库的完全备份同*/ ] 【例8.6】创建临时备份设备并在所创建的临时备份设备上进行差异备份。 BACKUP DATABASE XSCJ TO DISK ='e:\db_temp\xscjbk.bak' WITH DIFFERENTIAL

8.2.2 备份命令 3. 备份数据库文件或文件组 语法格式: 8.2.2 备份命令 3. 备份数据库文件或文件组 语法格式: BACKUP DATABASE { database_name | @database_name_var }      < file_or_filegroup > [ ,...n ] /*指定文件或文件组名*/ TO < backup_device > [ ,...n ] [ WITH [ BLOCKSIZE = { blocksize | @blocksize_variable } ] [ [ , ] DESCRIPTION = { ' text' | @text_variable } ] [ [ ,] EXPIREDATE = { date | @date_var } | RETAINDAYS = { days | @days_var } ] [ [ , ] PASSWORD = { password | @password_variable } ] [ [ , ] FORMAT | NOFORMAT ] [ [ , ] { INIT | NOINIT } ] [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ] [ [ , ] MEDIANAME = { media_name | @media_name_variable } ] [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ] [ [ , ] { NOREWIND | REWIND } ] [ [ , ] { NOSKIP | SKIP } ] [ [ , ] { NOUNLOAD | UNLOAD } ] [ [ , ] RESTART ] [ [ , ] STATS [ = percentage ] ] ]

8.2.2 备份命令 4. 事务日志备份 语法格式: BACKUP LOG { database_name | @database_name_var } /* 指出被备份的数据库名*/ TO < backup_device > [ ,...n ] /*指出备份目标*/ [ WITH [ BLOCKSIZE = { blocksize | @blocksize_variable } ] /*块大小*/ [ [ , ] DESCRIPTION = { 'text' | @text_variable } ] /*备份集的自由格式文本*/ [ [ ,] EXPIREDATE = { date | @date_var } /*备份集到期和允许被重写的日期*/ | RETAINDAYS = { days | @days_var } ] [ [ , ] PASSWORD = { password | @password_variable } ] [ [ , ] FORMAT | NOFORMAT ] [ [ , ] { INIT | NOINIT } ] [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ] [ [ , ] MEDIANAME = { media_name | @media_name_variable } ] [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ] [ [ , ] NO_TRUNCATE ] [ [ , ] { NORECOVERY | STANDBY = undo_file_name } ] [ [ , ] { NOREWIND | REWIND } ] [ [ , ] { NOSKIP | SKIP } ] [ [ , ] { NOUNLOAD | UNLOAD } ] [ [ , ] RESTART ] [ [ , ] STATS [ = percentage ] ]  ]

8.2.2 备份命令 【例8.8】创建一个命名的备份设备XSCJLOGBK,并备份XSCJ数据库的事务日志。 USE master 8.2.2 备份命令 【例8.8】创建一个命名的备份设备XSCJLOGBK,并备份XSCJ数据库的事务日志。 USE master EXEC sp_addumpdevice 'disk' , 'XSCJLOGBK' , 'e:\db_temp\testlog.bak' BACKUP LOG XSCJ TO XSCJLOGBK

8.2.2 备份命令 5. 清除事务日志 语法格式: BACKUP LOG { database_name | @database_name_var } {  [ WITH  { NO_LOG | TRUNCATE_ONLY } ] } 其中: (1) database_name或@database_name_var指出数据库名; (2) 使用TRANCATE_ONLY选项,SQL Server系统将删除事务日志中不活动部分的内容,而不进行任何备份,因此可以释放事务日志所占用的部分磁盘空间。 NO_LOG选项与TRUNCATE_ONLY是同义的。 执行带有NO_LOG或TRUNCATE_ONLY选项的BACK LOG语句后,记录在日志中的更改将不可恢复。因此执行该语句后,应立即执行BACKUP DATABASE语句,进行数据库备份。

8.2.3 使用企业管理器进行备份 在SQL Server企业管理器中进行备份的步骤是: 8.2.3 使用企业管理器进行备份 在SQL Server企业管理器中进行备份的步骤是: 第1步 在SQL Server企业管理器窗口中打开服务器组和服务器,展开“管理”文件夹,右击“备份”选项,在弹出的菜单上选择“备份数据库…”选项,如图所示。

8.2.3 使用企业管理器进行备份 第2步 在所出现的如图8.12所示“SQL Server备份”对话框中选择被备份的数据库名、输入备份的目标(即命名的备份介质的名称或临时备份介质的位置)、备份的描述、备份的类型、以及选择备份为覆盖的还是追加 。

8.2.3 使用企业管理器进行备份 第3步 若使用临时备份介质,则在如图8.13所示的“选择备份目的”对话框中选择“文件名”,并在文本框中输入文件的全路径名,或点击按钮选择路径。

8.2.3 使用企业管理器进行备份 第4步 选择或输入了上一步指出的各参数后,在“SQL Server备份”对话框中单击“确定”按钮,系统将执行备份操作,并出现一个进度指示对话框,备份操作完成后,将出现如图8.15所示的提示框,点击“确定”。

8.2.4 使用备份向导进行备份 使用备份向导进行备份的步骤是: 第1步 在SQL Server企业管理器的“工具”菜单中选择:向导管理备份向导,将出现如图8.16所示的备份向导的欢迎界面,该界面给出了备份向导的功能。

8.2.4 使用备份向导进行备份 第2步 单击“下一步”,将出现如图8.17所示的选择需备份数据库的界面。

8.2.4 使用备份向导进行备份 第3步 选择要备份的数据库名,单击“下一步”,将出现如图8.18所示的输入备份名和描述的界面。

8.2.4 使用备份向导进行备份 第4步 输入备份名称和描述后,单击“下一步”,将出现如图8.19所示的选择备份类型的界面。

8.2.4 使用备份向导进行备份 第5步 选择备份类型后,单击“下一步”,将出现如图所示的选择备份设备以及备份属性(覆盖或追加)的界面。

8.2.4 使用备份向导进行备份 第6步 选择备份设备和属性后,单击“下一步”,将出现如图所示的备份验证和调度的界面。

8.2.4 使用备份向导进行备份 第7步 单击“下一步”,将出现如图所示的确认各备份参数的界面,单击“完成”。

8.3.1 检查点(check point) SQL Server系统定期将所有脏日志和数据页刷新到磁盘,这就称为检查点。 检查点执行以下操作: (1)将标记为检查点起点的记录写入日志文件。 (2)将为检查点记录的信息存储在检查点日志记录链内,将这条链起点的LSN写入数据库的根页。 (3)记录最小恢复日志序号(MinLSN),MinLSN是下面这些 LSN 中的最小LSN: ①检查点起点的LSN; ②最旧的活动事务起点的LSN; ③最早的复制事务起点的LSN,事务未复制到所有相关的服务器。 (4)记录所有未完成的活动事务列表。 (5)如果数据库使用的是简单恢复模式,则删除新的MinLSN之前的所有日志记录。 (6)将所有脏日志和数据页写入磁盘。 (7)将标记检查点末端的记录写入日志文件。

8.3.1 检查点(check point) 检查点操作将在下列情况下发生: (2)使用ALTER DATABASE更改数据库选项时,对所修改的数据库执行检查点操作。 (3)当SQL Server系统由于下列原因之一停止运行时: ① 执行SHUTDOWN语句; ② 使用 SQL Server服务控制管理器阻止运行数据库引擎实例的服务。 (4)SQL Server系统为减少恢复数据库所需的时间而在每个数据库内定期执行自动检查点,SQL Server 2000始终生成自动检查点,自动检查点的时间间隔取决于日志内的记录数而不是时间。

8.3.2 数据库的恢复命令 (1)进行安全检查 (2)重建数据库 2. 恢复数据库的准备 当出现以下集中情况时,系统将不能恢复数据库: 使用与被恢复的数据库名称不同的数据库名去恢复数据库; 服务器上的数据库文件组与备份的数据库文件组不同; 需恢复的数据库名或文件名与备份的数据库名或文件名不同; (2)重建数据库 完全数据库备份中恢复数据库时,SQL Server将重建数据库文件,并把所重建的数据库文件置于备份数据库时这些文件所在的位置,所有的数据库对象都将自动重建,用户无需重建数据库的结构。 在SQL Server中,恢复数据库的语句是RESTORE。 2. 恢复数据库的准备 有两种方法可以得到有关数据库备份介质的信息: (1) 使用SQL Server企业管理器界面查看所有备份介质的属性

8.3.2 数据库的恢复命令 第1步 启动SQL Server企业管理器,展开所管理的服务器,展开“管理”文件夹,在指定的备份介质上点击鼠标右键,选择“属性”选项,如图所示。

8.3.2 数据库的恢复命令 第2步 在所出现的“备份设备属性”对话框中点击“查看内容…”按钮,将显示所选备份介质的有关信息,如图所示。 8.3.2 数据库的恢复命令 第2步 在所出现的“备份设备属性”对话框中点击“查看内容…”按钮,将显示所选备份介质的有关信息,如图所示。 第3步 在所出现的“查看备份媒体内容”对话框中将显示备份介质所在的服务器名、备份数据库名、备份类型、备份日期、到期日及大小等信息,如图所示。

8.3.2 数据库的恢复命令 (2) 使用RESTORE HEADONLY、RESTORE FILELISTONLY、RESTORE LABEL ONLY等语句可以得到有关备份介质更详细的信息。 语法格式: RESTORE HEADERONLY FROM < backup_device > /*指定还原时要使用的逻辑或物理备份设备。*/ [ WITH { NOUNLOAD | UNLOAD } /*指定是否在还原后从磁带机中自动卸载磁带 [ [ , ] FILE = file_number ] [ [ , ] PASSWORD = { password | @password_variable } ] [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] ] 2. 使用RESTORE语句进行数据库恢复 使用RESTORE语句可以恢复用 BACKUP 命令所做的备份,包括恢复整个数据库、恢复数据库的部分内容、恢复特定的文件或文件组和恢复事务日志。

8.3.2 数据库的恢复命令 1) 恢复整个数据库 语法格式: 8.3.2 数据库的恢复命令 1) 恢复整个数据库 语法格式: RESTORE DATABASE { database_name | @database_name_var } /*database_name或@database_name_var指定被还原的目标数据库。*/ [ FROM < backup_device > [ ,...n ] ] /*指定备份设备。参见RESTORE HEADONLY语句中backup_device。*/ [ WITH  [ RESTRICTED_USER ] /*限制只有db_owner、dbcreator或sysadmin角色的成员才能访问新恢复的数据库。*/ [ [ , ] FILE = { file_number | @file_number } ] [ [ , ] PASSWORD = { password | @password_variable } ] [ [ , ] MEDIANAME = { media_name | @media_name_variable } ] [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] [ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]  [ ,...n ] [ [ , ] KEEP_REPLICATION ] [ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ] [ [ , ] { NOREWIND | REWIND } ] [ [ , ] { NOUNLOAD | UNLOAD } ] [ [ , ] REPLACE ]  [ [ , ] RESTART ] [ [ , ] STATS [ = percentage ] ] ]

8.3.2 数据库的恢复命令 该语句的执行情况如图所示。

8.3.2 数据库的恢复命令 2) 恢复数据库的部分内容 语法格式: 8.3.2 数据库的恢复命令 2) 恢复数据库的部分内容 语法格式: RESTORE DATABASE { database_name | @database_name_var }     < file_or_filegroup > [ ,...n ] /*指定包括在需恢复的逻辑文件或文件组的名称*/ [ FROM < backup_device > [ ,...n ] ] [WITH      { PARTIAL } /*指定部分还原操作。*/     [ [ , ] FILE = { file_number | @file_number } ]      [ [ , ] PASSWORD = { password | @password_variable } ]     [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]    [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]     [ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]  [ ,...n ]   [ [ , ] NORECOVERY ]      [ [ , ] { NOREWIND | REWIND } ]     [ [ , ] { NOUNLOAD | UNLOAD } ]    [ [ , ] REPLACE ]    [ [ , ] RESTRICTED_USER ]    [ [ , ] RESTART ]    [ [ , ] STATS [ = percentage ] ] ]

8.3.2 数据库的恢复命令 3) 恢复特定的文件或文件组 语法格式: 8.3.2 数据库的恢复命令 3) 恢复特定的文件或文件组 语法格式: RESTORE DATABASE { database_name | @database_name_var }      < file_or_filegroup > [ ,...n ] [ FROM < backup_device > [ ,...n ] ] [ WITH     [ RESTRICTED_USER ]     [ [ , ] FILE = { file_number | @file_number } ]      [ [ , ] PASSWORD = { password | @password_variable } ]      [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]      [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]      [ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ] [ ,...n ]       [ [ , ] NORECOVERY ]      [ [ , ] { NOREWIND | REWIND } ]      [ [ , ] { NOUNLOAD | UNLOAD } ]      [ [ , ] REPLACE ]      [ [ , ] RESTART ]      [ [ , ] STATS [ = percentage ] ] ]

8.3.2 数据库的恢复命令 4) 恢复事务日志 语法格式: 8.3.2 数据库的恢复命令 4) 恢复事务日志 语法格式: RESTORE LOG { database_name | @database_name_var } [ FROM < backup_device > [ ,...n ] ] [ WITH [ RESTRICTED_USER ] [ [ , ] FILE = { file_number | @file_number } ] [ [ , ] PASSWORD = { password | @password_variable } ] [ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ] [ ,...n ] [ [ , ] MEDIANAME = { media_name | @media_name_variable } ] [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] [ [ , ] KEEP_REPLICATION ] [ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ] [ [ , ] { NOREWIND | REWIND } ] [ [ , ] { NOUNLOAD | UNLOAD } ] [ [ , ] RESTART ] [ [ , ] STATS [= percentage ] ] [ [ , ] STOPAT = { date_time | @date_time_var } | [ , ] STOPATMARK = 'mark_name' [ AFTER datetime ] | [ , ] STOPBEFOREMARK = 'mark_name' [ AFTER datetime ] ] ]

8.3.3 使用企业管理器恢复数据库 启动SQL Server企业管理器,选择菜单项“工具还原数据库…”,如图所示。

8.3.3 使用企业管理器恢复数据库 操作结束后,出现如图所示的窗口,该窗口有两个选项卡:“常规”和“选项”。在“常规”选项卡中,选择要恢复的数据库及恢复的类型,单击“确定”按钮。

8.4.1 导入导出概念 SQL Server 2000中有多个支持数据导入导出的组件,它们是: (1) 数据转换服务(DTS) 数据转换服务在异类OLE DB和ODBC数据源之间导入和导出数据。 (2) 复制 复制用于创建单独数据库中的数据复本,并通过将一个复本中的修改复制到其它所有复本使所有复本同步,将在第9章讨论复制技术。 (3) 批量复制程序(大容量复制) SQL Server 的大容量复制功能允许高效地传输大量数据。 (4) T-SQL语句 T-SQL语句包括SELECT INTO、INSERT SELECT、BULK INSRT、BACKUP和RESTORE语句。

SQL Server 中各种导入和导出选项的功能 8.4.1 导入导出概念 SQL Server 中各种导入和导出选项的功能 功能 DTS向导 复制 bcp BULK INSERT SELECT INTO/INSERT 导入文本数据 是   导出文本数据 从ODBC 数据源导入 导出到ODBC 数据源 从OLE DB数据源导入 导出到OLE DB 数据源 图形用户界面 (GUI) 命令行提示/批处理脚本 Transact-SQL 脚本 自动调度 反复导入/导出 最优性能 数据转换 编程接口

8.4.2 使用bcp实用程序导入导出数据 bcp实用程序是一个非常灵活的工具,是一个命令行实用程序,必须在操作系统提示符下执行。 语法格式: bcp { [ [ database_name. ][ owner ] . ] { table_name | view_name } | "query" } { in | out | queryout | format } data_file [ -m max_errors ] [ -f format_file ] [ -e err_file ] [ -F first_row ] [ -L last_row ] [ -b batch_size ] [ -n ] [ -c ] [ -w ] [ -N ] [ -V ( 60 | 65 | 70 ) ] [ -6 ]     [ -q ] [ -C code_page ] [ -t field_term ] [ -r row_term ] [ -i input_file ] [ -o output_file ] [ -a packet_size ] [ -S server_name [ \instance_name ] ] [ -U login_id ] [ -P password ] [-T] [-v] [-R] [-k] [-E] [-h "hint [,...n]"] 【例8.9】以下是使用bcp实用程序导入数据的命令,它将文本文件e:\sqldata\student.txt中的数据导入数据库XSCJ的XS表中,该文本文件中各字段值用逗号分隔,每行一换行符结束。 bcp "XSCJ..XS" in e:\sqldata\student.txt -c –t "," –m 50 –S ssrv –U "me" –P "mepass"

8.5.1 DTS概述 使用DTS导入/导出向导,可以在数据源及数据目标处使用以下的数据类型有20多种,主要包括: 大多数的OLE DB和ODBC数据源以及用户指定的OLE DB数据源(包括Microsoft ODBC Driver for Oracle、Microsoft ODBC Driver for SQL Server、Microsoft OLE DB Provider for OLAP Services、Microsoft OLE DB Provider for Oracle、Microsoft OLE DB Provider for SQL Server等)。 文本文件 Oracle和Informix数据库 Microsoft Excel电子表格 Microsoft Access数据库 Microsoft FoxPro数据库 DBase(包括dbase III、dbase IV) Paradox数据库(包括Paradox 3.x、Paradox 4.x、Paradox 5.x) 其它的ODBC数据源

8.5.1 DTS概述 1. 启动DTS导入/导出向导 有三种方法启动DTS导入/导出向导: 第一种方法是在开始菜单中选择:程序Microsoft SQL Server导入和导出数据,如图所示。

8.5.1 DTS概述 第二种方法是在SQL Server企业管理器窗口中,选择:工具数据转换服务导入数据(或导出数据),如图所示。

8.5.1 DTS概述 第三种方法是在SQL Server企业管理器窗口中选择:工具向导数据转换服务导出向导(或导入向导)。

8.5.1 DTS概述 2. 使用DTS导入/导出向导进行数据导出操作 出现如图所示的“高级连接属性”对话框,在其中可以设置数据转换方式,如数据一致性、数据校验、数据格式改变等。

8.5.1 DTS概述 在如图所示的对话框中点击“下一步”按钮,将出现的选择目的数据对话框。

8.5.1 DTS概述 指定文本文件作为目的数据 

8.5.1 DTS概述 图 指定复制或查询表 图指定文件格式 

8.5.1 DTS概述 图保存、调度和复制DTS包 图导入/导出设置摘要显示

8.5.1 DTS概述 执行数据导出操作时,将出现如图所示的“正在执行包”提示对话框,导出操作结束后,单击“确定”按钮,则结束操作。

8.5.1 DTS概述 3. 使用DTS导入/导出向导进行数据导入操作 第1步 启动DTS导入/导出向导; 第2步 在数据源中选择“用于SQL Server 的Microsoft OLE DB提供程序”,并选择服务器为local,指定数据库名为XSCJ,如图所示;单击“下一步”; 第3步 在如图所示的对话框中单击“下一步”,将出现如图所示的选择目的数据对话框,指定目的数据为“用于SQL Server 的Microsoft OLE DB提供程序”,并指定服务器和数据库名(AVERAGE);

8.5.1 DTS概述 第4步 单击“下一步”,在如图所示的对话框中选择“用一条查询指定要传输的数据”; 第5步 单击“下一步”,在如图所示的对话框中输入如下的SQL语句: SELECT 学号,AVG(成绩) AS 平均成绩 FROM XS_KC group by 学号

8.5.1 DTS概述 第6步 在如图8.46所示的对话框中选择一个或多个表或视图进行复制,单击“下一步”。 第7步 选择“立即运行”,单击“下一步”。

8.5.1 DTS概述 第8步 在如图所示的对话框中单击“完成”。

8.5.3 DTS包设计器 Access数据库student的stu表中已有的数据如图所示。

8.5.3 DTS包设计器 (1)使用DTS包设计器创建一个DTS包 第1步 在SQL Server企业管理器控制台目录树的“数据转换服务”文件夹上单击鼠标右键,然后单击“新建包”菜单项,如图所示。

8.5.3 DTS包设计器 将出现如图所示的包编辑窗口,该窗口包括标题栏、主菜单、快捷工具栏及编辑窗口等四个部分。 第2步 在“连接”快捷工具栏中单击Microsoft Access图标。

8.5.3 DTS包设计器 第3步 在所出现的如图所示的连接属性对话框中选择“新建连接”,并选择数据源类型为“Access Connection”,在“文件名”框中指定Access数据库文件名,本例中文件名为G:\access_db\student.mdb。单击“确定”添加该Microsoft Access连接,如图所示。 第4步 在“连接”快捷工具栏中单击Microsoft OLE DB Provider for SQL Server图标。

8.5.3 DTS包设计器 第5步 在所出现的如图所示的连接属性对话框中选择“新建连接”,并选择数据源类型为“Microsoft OLE DB Provider for SQL Server”,在“数据库”下拉列表框中指定SQL Server数据库名,本例中数据库名为test。单击“确定”, 添加该Microsoft OLE DB Provider for SQL Server连接,如图所示。

8.5.3 DTS包设计器 第6步 在“任务”快捷工具栏中单击“执行SQL任务”图标,将出现如图所示的“执行SQL任务属性”对话框,在“描述”后的文本框中输入“删除原表stucopy”,在“现有连接”下拉列表框中选择“SQL Server Connection”,在SQL语句文本域中输入以下的SQL语句: drop table test..stucopy

8.5.3 DTS包设计器 第7步 按与第6步相同的方法建立名为“创建新表stucopy”的执行SQL任务,在SQL语句文本域中输入以下的SQL语句: create table test..stucopy ( sno char(6) NOT NULL , sname char(10) NOT NULL , speciality char(20) )

8.5.3 DTS包设计器 这步操作完成后,包编辑器窗口如图所示。

8.5.3 DTS包设计器 第8步 单击快捷工具栏的保存图标,出现如图所示的保存DTS包对话框,在将该包保存到SQL Server,在包名称文本框中输入所创建包的名字:从Access数据库复制数据到SQL Server,单击“确定”保存,保存后的DTS包如图所示。

8.5.3 DTS包设计器 第9步 在包编辑器窗口的快捷工具栏上单击运行图标,这将对所建立的DTS包进行测试,以确定连接和任务是否正常工作,同时在服务器上创建数据转换时所需的表。该步操作若正常完成,将出现如图8.63所示的对话框,单击该对话框的“确定”按钮。

8.5.3 DTS包设计器 第10步 同时选中Microsoft Access和Microsoft OLE DB Provider for SQL Server两个连接,这可通过以下操作方式完成: 第11步 编辑数据转换任务的属性。在“源”选项卡中编辑数据源属性:在描述文本框中输入“从Access拷贝数据到SQL Server”,并选择Access数据库中表的名称stu。

8.5.3 DTS包设计器 第12步 编辑转换结果的属性。在“目的”选项卡编辑目的数据的属性,如图所示。

8.5.3 DTS包设计器 第13步 编辑转换的属性。在“转换”选项卡中单击“全选”按钮,将选择将源表的所有列都导出到目的表中,如图所示,单击“确定”。 第14步 单击快捷工具栏的运行图标,将执行正在编辑的DTS包。

8.5.3 DTS包设计器 上面的实例中,直观地了解到一个DTS包描述了进行数据转换所需完成的工作步骤,包含了3个步骤: 删除原表stucopy; 创建新表stucopy; Access数据库student的stu表拷贝数据到SQL Server的test库的stucopy表。 DTS包有4种保存方式: (1) 保存到SQL Server:这样的包被称为本地包,它们被存储在msdb数据库中,效率最高且可以被其他SQL Server使用。 (2) 保存到Meta Data Service:这样的包可以跟踪包的版本、元数据等信息。 (3) 保存到结构化存储文件:这样包通过网络复制、移动和发送。 (4) 保存到Visual Basic文件:这样的包结合到Visual Basic程序。

8.5.3 DTS包设计器 当创建了一个DTS包后,在SQL Server企业管理器中可编辑、运行、调度该包,在企业管理器中展开数据转换服务文件夹,单击“本地包”,在需进行操作的DTS包上单击鼠标右键,将出现入图所示的快捷菜单,选择相应的菜单项即可。

习 题 1. 为什么在SQL Server 2000中需设置备份与恢复功能? 2. 设计备份策略的指导思想是什么?主要考虑哪些因素? 习 题 1. 为什么在SQL Server 2000中需设置备份与恢复功能? 2. 设计备份策略的指导思想是什么?主要考虑哪些因素? 3. 数据库恢复要执行哪些操作? 4. T-SQL中用于数据库备份和恢复的命令选项的含义分别是什么? 5. 数据导入导出的含义是什么? 6. DTS的作用是什么?