SQL Server 2005数据库实践教程—3.第三章 .数据库备份与恢复技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
14
3.1数据库备份概述
(1)完整备份:
实验2:通过命令行进行完全数据备份实验
第一步:sp_addumpdevice 是系统存储过程,用于创建磁盘备份文件,其基本命 令行如下所示: sp_addumpdevice [@devtype=]'device_type',[@logicalname=]'logical_name',[ @physi calname = ] 'physical_name'[,{[@cntrltype = ] controller_type|[@devstatus=]'device_status' }]
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'
执行差异性备份的语法与完全数据备份基本一致,仅仅的区别是在后面写上 WITH DIFFERENTIAL参数即可。
19
3.1数据库备份概述
(2)差异备份:
实验1:通过命令行进行差异数据备份实验
BACKUP DATABASE school TO DISK='D:\school_back.bak' WITH DIFFERENTIAL --或者 backup database school to backup_file2 WITH DIFFERENTIAL
use master--首先,进入master数据库。 Go --下面,在C盘下建立文件夹back,然后分别执行下面的三个磁盘备份文件。 exec sp_addumpdevice 'disk','backup_file1','c:\back\backup_file1.bak' exec sp_addumpdevice 'disk','backup_file2','c:\back\backup_file2.bak' exec sp_addumpdevice 'disk','backup_log','c:\back\backup_log.bak'
3
3.1数据库备份概述
备份时候,需要考虑以下因素: 1、组织对数据库的备份需求,尤其是对必要性的防止数 据丢失的要求。 2、每个数据库的特性。其大小、使用模式、内容特性及 其数据要求等。 3、资源的约束。例如,硬件、人员、存储备份媒体空间 以及存储媒体的物理安全性等。
4
3.1数据库备份概述
1. 数据库磁盘备份设备简称备份设备: 是由SQL Server 2005提前建立的逻辑存储定义设备。 之所以称为是逻辑设备,是由于在建立备份设备时候需要明确 指定具体的磁盘存储路径,即便该磁盘存储路径并不存在,也 可以正常建立一个备份设备。
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选项参数非常重要。 使用 NOINIT 选项,SQL Server 把备份追加到现有的备份文件,也就是 在原有的数据备份基础上,继续将现有的数据库追加性的继续备份到该磁盘 备份文件中。 使用 INIT 选项,SQL Server 将重写备份媒体集上所有数据,即将上次备 份的文件抹去,重新将现有的数据库文件写入到该磁盘备份文件中。
6
3.1数据库备份概述
实验2:在资源管理器中删除备份设备实验
在SQL Server管理平台的【对象资源管理器】窗口中展开【服务器对象】的子 节点【备份设备】。在节点【db_school_bakdevice】上单击鼠标右键,弹出 快捷菜单中删除该设备,如下图所示。
7
3.1数据库备份概述
实验3:通过命令方式建立和删除备份设备实验
小知识:
事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做, 要么全不做,是一个不可分割的工作单位 事务和程序是两个概念 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个 程序 一个应用程序通常包含多个事务 事务是恢复和并发控制的基本单位
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:\backup\student_bak”,逻辑备份设备名为 “db_student_bakdevice”。 exec sp_addumpdevice 'disk','db_student_bakdevice','E:\backup\student_bak'
交通部管理干部学院计算机系 钱哨教案
SQL Server 2005数据库实践教 程——管理与维护篇
第三章 . 数据库备份与恢复技术
主讲教师:钱
哨
1
第一节【学习目标】
数据库备份概述; 掌握如何分别在可视化及命令行方式建立和删除数 据库磁盘备份设备; 掌握在可视化状态下进行完全、差异、日志数据备 份的方法,重点掌握通过命令行进行完全、差异、日 志数据备份的方法; 掌握在可视化状态下进行完全、差异、日志数据恢 复数据的方法,重点掌握通过命令行进行完全、差异、 日志数据恢复数据的方法;
故障发生点 完全数据备份 正常运行 运行事务 ↓
─┼───────┼─────────────
Ta
重装完整备份 恢复
Tb
数据丢失
Tf
─┼───────┥
10
3.1数据库备份概述
(1)完整备份:
通过还原数据库,只用一步即可以从完整的备份重新创建整个数据库。如果还 原目标中已经存在数据库,还原操作将会覆盖现有的数据库; 如果该位置不存在数据库,还原操作将会创建数据库。还原的数据库将与备份 完成时的数据库状态相符,但不包含任何未提交的事务。 恢复数据库后,将回滚到未提交的事务。
百度文库
17
3.1数据库备份概述
(2)差异备份:
差异性备份: (1)是无需完全数据备份,仅仅将变化的数据存储并追加到数据库备 份文件中的过程。 (2)差异性备份仅记录自上次完整备份后更改过的数据,但是比完整 备份更小、更快,可以简化频繁的备份操作,减少数据丢失的风险。 (3)差异性备份必须基于完整备份,因此差异性备份的前提是进行至 少一次的完全数据备份。
2
3.1数据库备份概述
“备份”: 是数据的副本,用于在系统发生故障后还原和恢复数据。
1、数据库备份并不是简单地将表中的数据复制,而是将 数据库中的所有信息,包括表数据、视图、索引、约束条件, 甚至是数据库文件的路径、大小、增长方式等信息也备份。 2、创建备份的目的是为了可以恢复已损坏的数据库。但 是,备份和还原数据需要在特定的环境中进行,并且必须使 用一定的资源。因此,可靠地使用备份和还原以实现恢复需 要有一个备份和还原策略。
--可见,init由于重新建立磁盘备份,因此文件并没有增 长;而由于noinit是追加备份,因此磁盘文件增长非常明显。 当然,我们也可以不需要使用磁盘备份文件,而通过直接指定 磁盘路径的方式实现对数据库文件进行备份。
BACKUP DATABASE school TO DISK='D:\ Mydiffbackup.bak'
9
3.1数据库备份概述
2.数据库备份方法 数据库备份包括完整备份和差异性备份,这两种备份的区 别如下: (1)完整备份:
包含数据库中全部数据和日志文件信息,也被称为是全库备份或者海量备份。 对于文件磁盘量较小时候,完全备份的资源消耗并不能显现,但是一旦数据库文件 的磁盘量非常大的时候,就会明显的消耗服务器的系统资源。因此对于完全备份一 般需要停止数据库服务器的工作,或在用户访问量较少的时间段进行此项操作。
第一步:打开资源管理器,鼠标右击school数据库,在展开的菜单中选择任务中的 备份项。
13
3.1数据库备份概述
(1)完整备份:
实验1:在资源管理器中进行完全数据备份实验
第二步:在展开的备份数据库界 面中,选择备份类型为“完整”, 备份组件为数据库,在备份目标 为备份到磁盘,选择添加磁盘的 具体的路径及备份文件名为 C:\school_fullback.bak,如 图所示。点击确定后完成完全数 据备份的工作,所生成的 C:\school_fullback.bak文件 将在后面数据库恢复中被重新应 用。
故障发生点 完全数据备份 运行事务 差异备份 正常运行 ↓
─┼───┼─────┼────────── Ta Tb Tc 差异数据还原 数据丢失 Tf
重装完整备份 恢复
─┼───┼─────┥
18
3.1数据库备份概述
(2)差异备份:
在还原差异性备份之前,必须先还原其完全数据备份。如果按给定备份的 要求进行一系列差异性备份,则在还原时只需还原一次完全数据备份和最 近的差异性备份即可。 执行差异性备份的前提和基本条件如下: 用于经常被修改的数据库; 要求一个完全数据备份,这是执行差异性备份的前提; 备份自上次完全数据备份以来的数据库变化;
实验1:在资源管理器中建立备份设备实验
第一步:在SQL Server 管理平台的【对象资源管 理器】窗口中展开【服务 器对象】的子节点【备份 设备】上单击鼠标右键, 弹出快捷菜单,如右图所 示。
5
3.1数据库备份概述
实验1:在资源管理器中建立备份设备实验
第二步:单击新建备份设备选项,打开【备份设备】对话框。在【设备名称】 文件框中输入“db_school_bakdevice”;在不存在磁带机的情况下,【目标】 目标选项自动选中【文件】单选项,在【文件】选项对应的文本框中输入文件 路径和名称“C:\back\school_back.bak”,如下图所示。
11
3.1数据库备份概述
(1)完整备份:
当执行全库备份时,SQL Server将备份在备份过程中发生的任何活动,以及 把任何未提交的事务备份到事务日志。在恢复备份时候,SQL Server利用备份文 件中捕捉到的部分事务日志来确保数据一致性。
12
3.1数据库备份概述
(1)完整备份:
实验1:在资源管理器中进行完全数据备份实验
20
3.1数据库备份概述
(2)差异备份:
实验2:在管理平台中进行差异数据备份实验
打开备份向导。在“备份数据库” 窗口中,选择备份类型为“差异”。 在备份的目标中,指定备份到的磁 盘文件位置(本例中为 C:\back\school.bak文件),如 图所示。然后单击“确定”按钮。 备份完成后,可以找到 C:\back\school.bak文件。差异 备份文件要比完全备份文件小得多, 因为它仅备份自上次完整备份后更 改过的数据。
注意:即便是C盘下面没有back文件夹,该命令也可以成功的执行。但是如果在实 际进行磁盘备份中,由于没有该文件夹,将在执行backup database的时候出现 15 错误。
3.1数据库备份概述
(1)完整备份:
实验2:通过命令行进行完全数据备份实验
第二步:将school数据库备份到第一步建立的磁盘备份文件中。 BACKUP DATABASE{database_name|@database_name_var} <file_or_filegroup> [ ,...f ] TO <backup_device> [ ,...n ] ..[[,]{INIT|NOINIT}]