资源预览内容
第1页 / 共72页
第2页 / 共72页
第3页 / 共72页
第4页 / 共72页
第5页 / 共72页
第6页 / 共72页
第7页 / 共72页
第8页 / 共72页
第9页 / 共72页
第10页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
主讲教师:钱 哨 交通部管理干部学院计算机系交通部管理干部学院计算机系 钱哨教案钱哨教案 第三章 . 数据库备份与恢复技术 SQL Server 2005数据库实践教程 管理与维护篇 1 第一节【学习目标】 n数据库备份概述; n掌握如何分别在可视化及命令行方式建立和删除数 据库磁盘备份设备; n掌握在可视化状态下进行完全、差异、日志数据备 份的方法,重点掌握通过命令行进行完全、差异、日 志数据备份的方法; n掌握在可视化状态下进行完全、差异、日志数据恢 复数据的方法,重点掌握通过命令行进行完全、差异 、日志数据恢复数据的方法; 2 3.1数据库备份概述 “备份”: 是数据的副本,用于在系统发生故障后还原和恢复数据。 1、数据库备份并不是简单地将表中的数据复制,而是将 数据库中的所有信息,包括表数据、视图、索引、约束条件 ,甚至是数据库文件的路径、大小、增长方式等信息也备份 。 2、创建备份的目的是为了可以恢复已损坏的数据库。但 是,备份和还原数据需要在特定的环境中进行,并且必须使 用一定的资源。因此,可靠地使用备份和还原以实现恢复需 要有一个备份和还原策略。 3 3.1数据库备份概述 备份时候,需要考虑以下因素: 1、组织对数据库的备份需求,尤其是对必要性的防止数 据丢失的要求。 2、每个数据库的特性。其大小、使用模式、内容特性及 其数据要求等。 3、资源的约束。例如,硬件、人员、存储备份媒体空间 以及存储媒体的物理安全性等。 4 3.1数据库备份概述 1. 数据库磁盘备份设备简称备份设备: 是由SQL Server 2005提前建立的逻辑存储定义设备。 之所以称为是逻辑设备,是由于在建立备份设备时候需要明确 指定具体的磁盘存储路径,即便该磁盘存储路径并不存在,也 可以正常建立一个备份设备。 实验1:在资源管理器中建立备份设备实验 第一步:在SQL Server 管理平台的【对象资源管 理器】窗口中展开【服务 器对象】的子节点【备份 设备】上单击鼠标右键, 弹出快捷菜单,如右图所 示。 5 3.1数据库备份概述 实验1:在资源管理器中建立备份设备实验 第二步:单击新建备份设备选项,打开【备份设备】对话框。在【设备名称】 文件框中输入“db_school_bakdevice”;在不存在磁带机的情况下,【目标】 目标选项自动选中【文件】单选项,在【文件】选项对应的文本框中输入文件 路径和名称“C:backschool_back.bak”,如下图所示。 6 3.1数据库备份概述 实验2:在资源管理器中删除备份设备实验 在SQL Server管理平台的【对象资源管理器】窗口中展开【服务器对象】的子 节点【备份设备】。在节点【db_school_bakdevice】上单击鼠标右键,弹出 快捷菜单中删除该设备,如下图所示。 7 3.1数据库备份概述 实验3:通过命令方式建立和删除备份设备实验 1. 建立备份设备 我们可以通过执行系统存储过程sp_addumpdevice的形式,建立一个磁盘备份设 备,基本语法是: EXEC sp_addumpdevice device_type , logical_name , physical_name, 其中各个参数的含义是: device_type:设备类型,disk|tape, “disk”表示磁盘,“tape”表示磁带。 logical_name:逻辑磁盘备份设备名。 physical_name:物理磁盘备份设备名。 -例1:使用T-SQL语句的存储过程sp_addumpdevice命令行创建磁盘备份设 备的物理备份设备名为“E:backupstudent_bak”,逻辑备份设备名为 “db_student_bakdevice”。 exec sp_addumpdevice disk,db_student_bakdevice,E:backupstudent_bak 8 3.1数据库备份概述 实验3:通过命令方式建立和删除备份设备实验 2. 删除备份设备 删除一个磁盘备份设备的基本语法是: EXEC sp_dropdevice logical_name , delfile 其中各个参数的含义是: logical_name:逻辑磁盘备份设备名。 delfile:表示是否同时删除磁盘备份物理设备名。 -例2:使用T-SQL语句的存储过程sp_dropdevice命令行删除前面刚创建的磁 盘备份设备。 exec sp_dropdevice db_student_bakdevice,delfile 9 3.1数据库备份概述 2.数据库备份方法 数据库备份包括完整备份和差异性备份,这两种备份的区 别如下: (1)完整备份: 包含数据库中全部数据和日志文件信息,也被称为是全库备份或者海量备份。 对于文件磁盘量较小时候,完全备份的资源消耗并不能显现,但是一旦数据库文件 的磁盘量非常大的时候,就会明显的消耗服务器的系统资源。因此对于完全备份一 般需要停止数据库服务器的工作,或在用户访问量较少的时间段进行此项操作。 故障发生点 完全数据备份 运行事务 正常运行 Ta Tb 数据丢失 Tf 重装完整备份 恢复 10 3.1数据库备份概述 (1)完整备份: 通过还原数据库,只用一步即可以从完整的备份重新创建整个数据库。如果还 原目标中已经存在数据库,还原操作将会覆盖现有的数据库; 如果该位置不存在数据库,还原操作将会创建数据库。还原的数据库将与备份 完成时的数据库状态相符,但不包含任何未提交的事务。 恢复数据库后,将回滚到未提交的事务。 小知识识: o事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做 ,要么全不做,是一个不可分割的工作单位 o事务和程序是两个概念 n在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个 程序 n一个应用程序通常包含多个事务 o事务是恢复和并发控制的基本单位 11 3.1数据库备份概述 (1)完整备份: 当执行全库备份时,SQL Server将备份在备份过程中发生的任何活动,以及 把任何未提交的事务备份到事务日志。在恢复备份时候,SQL Server利用备份文 件中捕捉到的部分事务日志来确保数据一致性。 12 3.1数据库备份概述 (1)完整备份: 实验1:在资源管理器中进行完全数据备份实验 第一步:打开资源管理器,鼠标右击school数据库,在展开的菜单中选择任务中的 备份项。 13 3.1数据库备份概述 (1)完整备份: 实验1:在资源管理器中进行完全数据备份实验 第二步:在展开的备份数据库界 面中,选择备份类型为“完整”, 备份组件为数据库,在备份目标 为备份到磁盘,选择添加磁盘的 具体的路径及备份文件名为 C:school_fullback.bak,如 图所示。点击确定后完成完全数 据备份的工作,所生成的 C:school_fullback.bak文件 将在后面数据库恢复中被重新应 用。 14 3.1数据库备份概述 (1)完整备份: 实验2:通过命令行进行完全数据备份实验 第一步:sp_addumpdevice 是系统存储过程,用于创建磁盘备份文件,其基本命 令行如下所示: sp_addumpdevice devtype=device_type,logicalname=logical_name, physicalname = physical_name,cntrltype = controller_type|devstatus=device_status use master-首先,进入master数据库。 Go -下面,在C盘下建立文件夹back,然后分别执行下面的三个磁盘备份文件。 exec sp_addumpdevice disk,backup_file1,c:backbackup_file1.bak exec sp_addumpdevice disk,backup_file2,c:backbackup_file2.bak exec sp_addumpdevice disk,backup_log,c:backbackup_log.bak 注意:即便是C盘下面没有back文件夹,该命令也可以成功的执行。但是如果在实 际进行磁盘备份中,由于没有该文件夹,将在执行backup database的时候出 现错误 。 15 3.1数据库备份概述 (1)完整备份: 实验2:通过命令行进行完全数据备份实验 第二步:将school数据库备份到第一步建立的磁盘备份文件中。 BACKUP DATABASEdatabase_name|database_name_var ,.f TO ,.n .,INIT|NOINIT 在进行数据库备份的时候,INIT和NOINIT选项参数非常重要。 n 使用 NOINIT 选项,SQL Server 把备份追加到现有的备份文件,也就是 在原有的数据备份基础上,继续将现有的数据库追加性的继续备份到该磁盘 备份文件中。 n 使用 INIT 选项,SQL Server 将重写备份媒体集上所有数据,即将上次备 份的文件抹去,重新将现有的数据库文件写入到该磁盘备份文件中。 16 3.1数据库备份概述 (1)完整备份: 实验2:通过命令行进行完全数据备份实验 backup database school to backup_file1 with noinit backup database school to backup_file2 with init -请反复执行这两句话,那么我们可以很快从磁盘文件的空间变化中发现init和no init的区别: -可见,init由于重新建立磁盘备份,因此文件并没有增 长;而由于noinit是追加备份,因此磁盘文件增长非常明 显。当然,我们也可以不需要使用磁盘备份文件,而通过直 接指定磁盘路径的方式实现对 数据库文件进行备份。 BACKUP DATABASE school TO DISK=D: Mydiffbackup.bak 17 3.1数据库备份概述 (2)差异备份: 差异性备份: (1)是无需完全数据备份,仅仅将变化的数据存储并追加到数据库备 份文件中的过程。 (2)差异性备份仅记录自上次完整备份后更改过的数据,但是比完整 备份更小、更快,可以简化频繁的备份操作,减少数据丢失的风险。 (3)差异性备份必须基于完整备份,因此差异性备份的前提是进行至 少一次的完全数据备份。 故障发生点 完全数据备份 运行事务 差异备份 正常运行 Ta Tb Tc 数据丢失 Tf 重装完整备份 差异数据还原 恢复 18 3.1数据库备份概述 (2)差异备份: 在还原差异性备份之前,必须先还原其完全数据备份。如果按给定备份的要 求进行一系列差异性备份,则在还原时只需还原一次完全数据备份和最近的 差异性备份即可。 执行差异性备份的前提和基本条件如下: n 用于经常被修改的数据库
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号