14.-备份与恢复

上传人:小** 文档编号:54674203 上传时间:2018-09-17 格式:PPT 页数:27 大小:132.01KB
返回 下载 相关 举报
14.-备份与恢复_第1页
第1页 / 共27页
14.-备份与恢复_第2页
第2页 / 共27页
14.-备份与恢复_第3页
第3页 / 共27页
14.-备份与恢复_第4页
第4页 / 共27页
14.-备份与恢复_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《14.-备份与恢复》由会员分享,可在线阅读,更多相关《14.-备份与恢复(27页珍藏版)》请在金锄头文库上搜索。

1、第十四章 备份与恢复,数据库的备份与恢复是保证数据库安全运行的一项重要内容,也是数据库管理员的一项重要职责。在实际的应用中,数据库可能会遇到一些意外的破坏,导致数据库无法正常运行。数据库的一个备份就是数据库中数据的一份复件,该复件包括了数据库所有重要的组成部分,如控制文件、数据文件、日志文件等。当数据库因意外事故而无法正常运行时,就可以用该备份对数据进行恢复,将意外损失降低到最小。,本章学习目标:,了解备份的重要性 切换数据库的工作模式 对数据库进行物理备份与介质恢复 使用EXP/IMP工具对数据库进行逻辑备份,14.1 数据库备份概述,数据库备份是一项非常复杂的工作,它需要认真的对备份方案进

2、行规划并进行大量的操作。这是因为数据对用户而言是非常宝贵的资产,数据库必须保证数据是可靠的、正确的。但是,由于计算机系统的故障发生,就会影响到数据库中数据正确性,甚至破坏数据库,造成数据库中部分或全部数据的丢失。在发生故障后,数据库管理员必须对数据库进行恢复,保证用户的数据与故障发生前完全一致。数据恢复是基于数据备份的基础上,如果未对数据进行备份,则发生故障时将无法对数据库进行恢复。,14.2 数据库备份模式,数据库日志归档方式与数据库备份与恢复方法是有直接的关系。Oracle数据库可以运行在两种不同的方式下,即日志的归档模式(ARCHIVELOG)和日志的非归档模式(NOARCHIVELOG

3、)。 非归档模式 当数据库运行在非归档模式下时,控制文件则指明重做日志文件组不需要归档,所以日志文件循环使用,每当日志切换的检查点完成时,LGWR进程就会切换到原来写满的日志文件,并覆盖其中日志的信息。 归档模式 当数据库运行在归档模式下时,每当系统发生日志切换,在切换到其他组的日志文件之前,该组的日志文件中的日志信息已被归档进程ARCH写到磁盘,即保存了完整日志。,日志模式的查询和更改,V$DATABASE select name, created, log_mode from v$database; 可获取数据库的名称、创建时间和日志模式。archive log list; 可获最早的联机

4、日志序列和当前日志序列、日志模式和存档路径。日志模式的更改 在数据库处于MOUNTED的状态下进行修改: alter database archivelog | noarchivelog ,14.3 备份数据库,为了在数据库出现故障时,对数据库进行有效的恢复,首先需要对数据库进行备份。在Oracle数据库中,管理员可以进行两种情况的备份:物理备份和逻辑备份。在本节将分别介绍如何进行物理备份和逻辑备份。,14.3.1 物理备份,物理备份是将数据库的数据文件、日志文件和控制文件,在操作系统中进行复制备份。完全脱机备份 完全脱机备份是对数据库的全部数据文件、日志文件和控制文件,在数据库关闭的情况下进

5、行物理备份。当oracle运行在日志非归档模式下,只能进行脱机备份。 V$DATAFILE V$LOGFILE V$CONTROLFILE 查明更改文件后,shutdown数据库,复制文件。,联机备份 进行部分联机备份时,由于数据库处于正常运行,因此在备份过程中,与正在复制的数据文件相关联的表空间必须处于备份模式。 (数据库运行在归档模式下才能进行联机备份) 联机备份的步骤: Alter tablespace tbs_name begin backup; Select file_name from dba_data_files where tablespace_name = tbs_name

6、查明了数据文件后就可以复制 Alter tablespace tbs_name end backup,联机备份控制文件 Alter database backup controlfile to file_name; Alter database backup controlfile to trace;,14.3.2 逻辑备份,逻辑备份就是使用Oracle提供的操作系统工具EXPORT、IMPORT将数据导出或导入。 实际上物理备份是文件的备份,而逻辑备份是数据的备份。 EXPORT导出 使用EXPORT导出数据时可根据3种不同方式导出数据 表:包括表的定义、数据、以及约束和索引 用户:该用户所

7、有的模式对象 全数据库方式:所有的数据库对象,表方式通过使用tables参数来实现表方式的备份。例如,将system用户的type和hhs备份到文件auths.dmp中,可执行下列命令。Exp userid=system/manager tables=(type,hhs) file=auths.dmp,用户方式通过使用owner参数来实现用户方式的备份。例如备份scott和px1的所有数据库对象到缺省文件expdat.dmp中,可用下述命令:exp userid=system/manager owner=(scott,px1) file=c:expdat.dmp,全库方式通过使用full参数来

8、实现全库方式的备份。只有具有exp_full_database角色的用户才可以进行全库方式备份。例如,备份除sys模式的数据库对象外的所有数据库对象到缺省文件expdat.dmp中,可执行命令:Exp userid=sys/admin full=y grants=y indexes=y;,14.4 数据库手动恢复,数据库备份的目的就是在数据库出现故障时,能够对数据库进行恢复。数据库恢复就是根据归档日志或联机日志文件中的记录,以及数据库备份,将数据库复原到最近的状态。由于数据库出现的故障主要包括实例故障和存储介质故障,因此,对数据库的恢复也分为实例恢复和介质恢复。,14.4.1 实例恢复,在数据

9、库实例的运行期间,如果实例出现故障,由于实例不能正常关闭,正在处于事务处理的实例由于来不及执行一个数据库的检查点,以保存内存缓冲区中的数据到数据文件,就会造成数据文件中的数据的不一致性。而实例恢复就是要将这部分数据进行恢复,所以实例恢复只需联机日志文件,不需要归档日志文件,而且是Oracle系统在重启数据库时,会自动使用日志文件进行数据恢复,无需用户的参与。 (检查点是将内存中修改的数据与数据文件同步的手段,oracle定期将检查点之间修改过的数据写进数据文件),14.4.2 介质恢复,介质恢复主要用于存储介质故障时进行恢复,即对被损坏的控制文件和数据文件进行恢复;当数据库运行在非归档日志模式

10、下,只能根据脱机完全备份的文件进行恢复,一般来说是一个不完全恢复。当数据库运行在归档日志模式下,可人为控制恢复的状态,根据恢复的状态可分为完全恢复(即恢复所有提交的事务)和不完全恢复(即数据库恢复到某一时刻),恢复非归档数据库,在非归档方式下,只能恢复数据库到最近一次全部脱机备份时数据库的状态。换句话说,在非归档模式下只能进行数据库的不完全恢复。恢复的步骤如下: 关闭实例,必要情况下可用ABORT参数。SQLshutdown abort 用备份工具(如copy)装载最近一次的脱机完全备份。 重启实例,使数据库处于最后一次备份的状态。,恢复归档数据库,如果数据库在归档模式下操作时发生介质失败,有

11、两种恢复策略: 完全恢复,即被恢复的数据库没有数据丢失,数据库完全恢复。 不完全恢复,即被恢复数据库的状态只是数据库备份点与介质失败点间某个时刻的数据库的状态。 下面介绍完全介质恢复:完全介质恢复的方法是,先使用数据文件的备份来替换损坏的数据文件,再结合归档日志文件和联机日志文件中记录的信息,重新运行自备份以后的所有改动,并完全前滚数据库,以恢复丢失数据文件中的数据。该数据文件的备份可以来自于完全数据库备份也可以来自于部分数据库备份。,完全介质恢复有三种类型: 数据库恢复:对数据库中所有联机的数据文件进行介质恢复。 表空间恢复:对指定表空间包含的数据文件进行介质恢复。 数据文件恢复:对指定的数

12、据文件进行介质恢复,1. 数据库恢复,数据库恢复就是装载数据库后使用recover database命令对所有联机的数据文件进行介质恢复。语法如下:Recover automaticfrom location database其中,方括号内的关键字是可选的。Automatic关键字:指示进行自动恢复而不需要DBA提供重做日志的名称。From关键字:指定归档日志所在的位置。 完全数据库恢复的步骤如下:1)使用操作系统命令从备份处拷贝代替损坏的数据文件(联机或脱机备份)。2)启动实例到mount状态。SQLstartup mount3)使要恢复的所有数据文件联机。SQLalter database

13、 datafile 文件名 online; 4)恢复数据库。SQLrecover database数据库名5)打开数据库。SQLalter database 数据库名 open;,2.表空间恢复,表空间恢复就是打开数据库后使用recover tablespace 命令对指定的表空间所包含的数据文件进行介质恢复。 语法如下:recover automatic from location tablesapce 表空间名 ,表空间名 其中,方括号内的关键字是可选的。 Automatic关键字:指示进行自动恢复而不需要DBA提供 重做日志的名称。 From关键字:指定归档日志所在的位置。表空间恢复可以

14、在下列两种情况下实施: 数据库打开 数据库装载但未打开,数据库在open的状态下表空间恢复的具体步骤: 1)使需要恢复的表空间脱机: SQLalter tablespace 表空间名 offline for recover; 2)使用os命令恢复该表空间所有数据文件的备份。 3)恢复表空间: SQLrecover tablespace 表空间名,表空间名 4)使表空间联机: SQLalter tablespace 表空间名 online;在进行表空间恢复之前,必须使表空间脱机。不能脱机的表空间(如system)不能使用recover tablespace命令进行恢复。,表空间的恢复方式,数据库

15、在mounted的状态下表空间的恢复步骤: SQL startup mount; 拷贝恢复该表空间的所有数据文件 SQL alter database recover tablespace users; 或者使用 SQL recover tablespace users; SQL alter database open;,3.数据文件恢复,数据文件恢复就是利用recover datafile对指定的数据文件进行介质恢复,recover datafile的语法如下:Recover automaticfrom locationdatafile文件名1,文件名2 其中,方括号内的关键字是可选的。Au

16、tomatic关键字:指示进行自动恢复而不需要DBA提供重做日志的名称。From关键字:指定归档日志所在的位置。数据文件恢复可以在下列两种情况下实施: 数据库打开 数据库装载但未打开,数据库打开情况下,恢复数据文件的步骤: 1)使用OS命令装载被损坏数据文件的备份。 2)装载数据库。SQLstartup mount; 3)使所有损坏或丢失的数据文件脱机: SQLalter database datafile 文件名 offline; 4)打开数据库; SQLalter database 数据库名 open; 5)恢复数据文件; SQLrecover datafile 文件名1 ,文件名2, 6

17、)使数据文件联机; SQLalter database datafile 文件名 online;,数据库装载但未打开的情况下恢复数据文件步骤: 1)使用操作系统命令(如copy)装载被损坏数据文件的备份。 2)装载数据库。SQLstartup mount 数据库名 3)恢复数据文件: SQLrecover datafile 文件名1,文件名2, 4)使数据文件联机; SQLalter database datafile 文件名 online; 5)打开数据库; SQLalter database open; 注意:system表空间的数据文件只能在数据库关闭情况 下进行恢复,因为该表空间不可以被脱机。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号