资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2019年5月24日星期五,1,第10章 数据库备份与 恢复,2019年5月24日星期五,2,数据库故障类型,1. 语句故障(Statement Failure) 语句故障是指Oracle程序中处理一条SQL语句时发生的逻辑故障,它通常不需要DBA干预进行恢复。 2. 进程故障(Process Failure) 进程故障是指数据库实例的用户进程、服务进程或数据库后台进程由于某种原因意外终止而产生的故障。 3. 用户错误(User Errors) 用户错误是指普通用户在使用数据库时所产生的错误 4. 实例故障(Instance Failure) 实例故障是指由于硬件故障、应用程序错误或执行SHUTDOWN ABORT语句而导致实例非正常停止运行的情况。 5. 介质故障(Media Failure) 是指Oracle数据库在读写数据库文件时发生的物理问题,2019年5月24日星期五,3,备份的类型,物理备份与逻辑备份 物理备份是指对数据库物理文件的备份 ;逻辑备份是指将数据库中的数据导出到一个二进制文件中 2. 完全备份与部分备份 完全备份是包含了数据库当前控制文件和所有数据文件的备份。部分备份是指单独对部分表空间或数据文件所做的备份。,2019年5月24日星期五,4,备份的类型,3. 一致备份与不一致备份,一致性备份是指数据库以干净的方式(SHUTDOWN NORMAL、 IMMEDIATE或 TRANSACTIONAL方式)关闭后,对一个或多个数据文件进行的备份。一致性备份中的所有数据文件都已经完成了一次检查点,即都具有相同的 SCN,并且与控制文件中的SCN相同,同时不包含检查点以后的变化。,4. 冷备份与热备份,热备份是在数据库处于打开状态下对数据库进行的备份 。冷备份是指在数据库完全正常关闭(SHUTDOWN NORAML、IMMEDIATE和TRANSACTION)的状态下所进行的备份。,2019年5月24日星期五,5,修复和恢复,数据库恢复(Database Restore)是指利用物理备份的数据库文件来替换已经损坏的数据库文件,从而使Oracle数据库服务器可以访问这些文件。 数据库修复(Database Recovery)是指利用归档重做日志和联机重做日志或数据库文件的增量备份来更新已恢复的数据文件,即将备份以后对数据库所做的修改反映在恢复后的数据文件中,从而使数据库处于一致状态。,2019年5月24日星期五,6,崩溃恢复与介质恢复,崩溃恢复是指单个实例的数据库在发生实例故障后进行恢复的过程。崩溃恢复的主要目标是恢复由于实例崩溃而丢失的位于缓存中的数据。,介质恢复根据恢复的对象可以分为数据文件介质恢复和数据块介质恢复。,2019年5月24日星期五,7,完成介质恢复和不完全介质恢复,完全介质恢复是从一个热备份或冷备份中恢复一个或全部数据文件,然后对恢复的内容重新应用重做日志(归档重做日志或联机重做日志),即对恢复后的数据文件重做备份以来发生的所有变化。数据库可以恢复到故障发生时的状态,在进行完全介质修复后不会丢失任何已有的数据。 不完全介质恢复是指应用部分归档或联机重做日志将数据库恢复到一个非当前时刻的状态,不需要对备份应用自从备份时刻起所有的重做日志,而只需要应用一部分归档重做日志文件。不完全介质恢复可将数据库恢复到从备份建立时刻开始到当前时刻之间任意一个时刻的状态。,2019年5月24日星期五,8,SGA的组成,1.数据库缓存:它保存的是最近从数据文件中读取的数据(脏缓存块、空闲块、命中块) 大小:DB_BLOCK_SIZE和DB_BLOCK_BUFFERS 2.重做日志缓存:它是存储对数据库所做修改信息的缓存区。重做记录形式存储。 大小:LOG_BUFFER 3.共享池:包括库缓存、数据字典缓存和用于存储并行操作信息和控制结构的缓存。库缓存用于存放已经解析并执行过的SQL语句、PL/SQL程序代码。SHARED_POOL_SIZE,2019年5月24日星期五,9,10.2 用户管理的数据库备份,用户管理的备份既可以是物理备份,也可以是逻辑备份,既可以进行数据库完全备份,也可以对数据库进行部分备份。 如果数据库运行在非归档模式,只能在关闭状态下对数据库进行一致的完全备份。如果数据库运行在归档模式,可以对数据库进行不一致的完全备份,或者对某个表空间或数据文件进行单独的备份。,2019年5月24日星期五,10,用户管理的备份通常按照如下步骤进行: 通过查询动态性能视图或数据字典视图来获得所有数据文件、控制文件以及归档重做日志文件的位置与名称。常用的动态性能视图和数据字典:V$DATAFILE(数据文件信息)、V$TABLESPACE(表空间信息)、V$CONTROLFILE(控制文件信息)、V$ARCHIVE_DEST(归档重做日志文件信息)、DBA_DATAFILES(数据文件的字典视图)、DBA_TABLESPACES(表空间的字典视图)。 使用操作系统命令或工具将数据文件和归档重做日志文件复制到指定的位置上,如WINDOWS的COPY命令或资源管理器。 在SQL Plus中用SQL语句对控制文件进行备份。 对备份文件进行验证。可以利用这个备份在另一个数据库中完整地执行一遍数据库的恢复与修复工作或使用DBVERIFY工具对备份的数据文件物理结构的完整性进行检查和验证。,2019年5月24日星期五,11,1. 冷备份的方法 冷备份是指数据库处于正常关闭状态下所进行的备份。在非归档模式下的数据库只能进行完全一致的冷备份: 关闭数据库 在SQL Plus中用命令SHUTDOWN NORMAL或SHUTDOWN IMMEDIATE或SHUTDOWN TRANSACTIONAL来关闭数据库以保持数据的一致性, 复制数据库 用操作系统命令COPY或WINDOWS中的资源管理器将所有数据库文件复制到目标位置,复制的内容包括所有数据文件、所有多路的控制文件、归档重做日志文件等。 重新打开数据库 SQLSTARTUP OPEN;,2019年5月24日星期五,12,表空间处于脱机状态下进行的热备份称之为脱机备份,此时在备份期间脱机的表空间不能被用户访问。步骤如下。 查看要备份内容的位置。 查看动态性能视图V$DATAFILE或V$TABLESPACE的内容以决定表空间中的数据文件名称及其位置。 设置表空间为脱机状态。 SQLALTER TABLESPACE example OFFLIE NORMAL 利用操作系统命令备份表空间中所有的数据文件E:COPY e:oracleoradatastudentexample01.dbf d:backup 将表空间恢复为联机状态, 使表空间处于可用状态。 SQL ALTER TABLESPACE example ONLINE; 将联机重做日志进行手工归档: SQLALTER SYSTEM ARCHIVE LOG CURRENT;,脱机备份,2019年5月24日星期五,13,表空间处于联机状态下进行的备份称之为联机备份,此时所有的表空间都继续可以被用户使用。 步骤: 查看DBA_DATA_FILES视图,找到要备份表空间或数据文件的位置和名称信息。 将读写状态的表空间设置为备份模式。SQLALTER TABLESPACE example BEGIN BACKUP; 用操作系统复制要备份表空间的所有数据文件 结束表空间的备份状态。 SQL ALTER TABLESPACE example END BACKUP; 对所有未归档的联机重做日志进行手工归档: SQLALTER SYSTEM ARCHIVE LOG CURRENT;,联机备份,2019年5月24日星期五,14,备份控制文件,将控制文件备份为二进制文件的命令如下: SQLALTER DATABASE BACKUP CONTROLFILE 2 TO f:oraclebackupmycfile.cbk REUSE; 如果数据库是加载或打开状态,那么备份控制文件到跟踪文件的语句如下: SQL ALTER DATABASE BACKUP CONTROLFILE TO TRACE;,2019年5月24日星期五,15,归档重做日志文件的备份,用户管理方式下备份归档重做日志文件的步骤: 查询 V$ARCHIVE_LOG动态性能视图,可以了解归档重做日志文件的位置和名称,如: SQL SELECT thread#,sequence#,name FROM v$archived_log; 利用操作系统命令将所有的归档重做日志文件都复制到指定的位置。 E:COPY e:oraclerdbmsar*.001 d:arc_back,2019年5月24日星期五,16,修复命令,RECOVER AUTOMATIC FROM location full_database_recovery | partial_database_recovery AUTOMATIC子句自动查找在修复时所需要的下一个归档重做日志文件名。 FROM location 从指定的归档重做日志文件位置location查找文件。 full_database_recovery 子句的语法为: DATABASE UNTIL CANCEL | TIME date | CHANGE integer | USING BACKUP CONTROLFILE partial_database_recovery子句语法为: TABLESPACE tablespace , tablespace. | DATAFILE datafilename , datafilename,2019年5月24日星期五,17,修复整个数据库的命令:SQLRECOVER DATABASE; 修复数据库到指定时间用下面命令: SQL RECOVER DATABASE UNTIL TIME 01-JAN-2001:04:32:00; 修复ts_one和ts_two两个表空间用下面命令 SQLRECOVER TABLESPACE ts_one, ts_two; 修复数据文件data1.db用下面命令: SQLRECOVER DATAFILE data1.db;,修复数据库例子,2019年5月24日星期五,18,非归档模式下数据库的恢复,恢复到原位置 SQLSHUTDOWN IMMEDIATE; 利用操作系统命令把完全备份复制到原位置。 启动数据库到加载状态。 SQL STARTUP MOUNT; 让Oracle重建联机重做日志文件,必须模拟一次不完全介质恢复。 SQLRECOVER DATABASE UNTIL CANCEL; 出现提示时“指定日志: =suggested | filename | AUTO | CANCEL”时输入CANCEL。 带RESETLOGS选项打开数据库,此时将清空联机重做日志文件并将日志序列号置为1。 SQLALTER DATABASE OPEN RESETLOGS;,2019年5月24日星期五,19,恢复到新的位置, SQLSHUTDOWN IMMEDIATE; 用操作系统命令将完全备份的数据文件和控制文件复制到新的位置。 修改初始化文件中的CONTROL_FILES参数 control_files=(“d:studentcontrol01.ctl“, “d:studentcontrol02.ctl“, “d:studentcontrol03.ctl“) 启动实例到装载状态: STARTUP MOUNT PFILE=e:databaseinitstudent.ora; ALTER DATABASE RENAME FILE修改控制文件。 SQL ALTER DATABAS
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号