Oracle 12
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Data file 1 SCN =146 Data file 2 SCN =146 Data file3 SCN =146
Data file 1 SCN =146 Data file 2 SCN =146
事务恢复
Data file3 SCN =146
数据文件中仅含有已提交事务
数据文件中含 有已提交事务 和未提交事务
关闭状态下的完全介质恢复: 关闭状态下的完全介质恢复: (1)如果数据库处于打开状态,强行关闭; )如果数据库处于打开状态,强行关闭; SQL>SHUTDOWN ABORT; (2)如有可能,排除故障,把数据文件恢复到原来位置; )如有可能,排除故障,把数据文件恢复到原来位置; (3)利用备份修复丢失或损坏的数据文件(仅数据文 )利用备份修复丢失或损坏的数据文件( 件); (4)启动实例并加载数据库,但是不打开数据库; )启动实例并加载数据库,但是不打开数据库; SQL>STARTUP MOUNT; (5)如果修复后的数据文件不在原来的位置上,需要更 )如果修复后的数据文件不在原来的位置上, 新控制文件中数据库文件的信息; 新控制文件中数据库文件的信息; SQL>alter database rename file ‘I:\ora9i\oradata\user01.dbf’
2 用户自定义的数据库恢复 修复概述 数据文件; 数据文件; 控制文件; 控制文件; 归档重做日志文件; 归档重做日志文件; 服务器初始化参数文件。 服务器初始化参数文件。
损坏或丢失的文件
操作说明
一个或多个数据文 利用备份修复所有丢失的数据文件, 件 并且进行介质恢复,只要修复后的 数据文件的头部所包含的SCN与控制 文件中记载的SCN不同,就必须进行 介质恢复 必须利用备份修复控制文件,然后 当前所有的控制文 使用RESETLOGS选项打开数据库;如 件 果没有控制文件备份,可以使用 ALTER DATABASE BACKUP CONTROLFILE TO TRACE 语句脚本 重新建立控制文件。
基本步骤: 基本步骤: 确定需要修复和恢复的数据库; 确定需要修复和恢复的数据库; 利用操作系统命令和备份的数据库文件修复损坏或丢 失的数据库文件; 失的数据库文件; 利用操作系统命令和备份归档重做日志文件修复在恢 复过程中需要使用到的归档重做日志文件; 复过程中需要使用到的归档重做日志文件; SQL*Plus中利用RECOVER命令对修复后的数据文件进 中利用RECOVER 在SQL*Plus中利用RECOVER命令对修复后的数据文件进 行修复。 行修复。
介质恢复需要一个或 多个归档重做日志文 件
损坏或丢失的文件
操作说明
服务器初始化参数 由于服务器初始化参数文件是一个 二进制文件,因此无法手工重建它, 文件 二进制文件,因此无法手工重建它, 如果有备份,可以直接修复, 如果有备份,可以直接修复,启动 实例。如果没有, 实例。如果没有,可以建立一个文 本形式的初始化参数文件, 本形式的初始化参数文件,然后启 动实例, 动实例,用Create SPFIEL FROM PFILE命令来重建一个服务器端初始 PFILE命令来重建一个服务器端初始 化参数文件
SQL> ALTER DATABASE RENAME FILE ‘I:\ORA9\ORADATA\SYSTEM01.DBF’ TO I:\ORA9\ORADATA\SYSTEM01.DBF I: ‘K:\ORACLE\ORADATA\SYSTEM01.DBF’ K:\ORACLE\ORADATA\SYSTEM01.DBF K: 由于在备份中并不包含联机重做日志文件, 由于在备份中并不包含联机重做日志文件,你不能像修 复数据文件和控制文件那样对重做日志文件进行修复, 复数据文件和控制文件那样对重做日志文件进行修复,因 此需要模拟一次不完全恢复; 此需要模拟一次不完全恢复; SQL>RECOVER DATABASE UNTIL CANCEL; SQL>CANCEL 使用RESETLOGS选项打开数据库,这时重做日志号设为1 使用RESETLOGS选项打开数据库,这时重做日志号设为1 RESETLOGS选项打开数据库
Data file 1 SCN =146 Data file 2 SCN =146 Data file3 SCN =146 备份
Data file 1 SCN =146 Data file 2
应用重做日志 (缓存恢复)
Redo Log Redo Log
修复数据文件 撤销记录
SCN =146 Data file3 SCN =144
144
Data File 2
143
Redo log file 2
146
Data file 3
144
Database
Data file 3
backup
144
Data file 1
144
Control files
144
Redo log file 1
144
Parameter file Password file Data File 2
3 用户定义数据库的修复 三种情况 不归档模式下的数据库介质恢复; 不归档模式下的数据库介质恢复; 归档模式下的数据库完全介质恢复; 归档模式下的数据库完全介质恢复; 归档模式下的数据库不完全介质恢复; 归档模式下的数据库不完全介质恢复;
146
Data file 1
146
Control files
归档模式下的完全介质恢复 需要满足如下条件: 需要满足如下条件: 具有丢失或损坏的数据文件的备份,并且这个备份是在 具有丢失或损坏的数据文件的备份, 数据库进入归档模式后建立的; 数据库进入归档模式后建立的; 具有从; 归档重做日志文件; 联机重做日志文件没有损坏。 联机重做日志文件没有损坏。 可以做如下工作: 可以做如下工作: 仅对丢失的数据文件进行修复; 仅对丢失的数据文件进行修复; 把修复后的数据文件恢复到到最近的SCN,也就是发生 , 把修复后的数据文件恢复到到最近的 故障前的状态; 故障前的状态; 在对数据库进行修复时数据库可以处于打开状态、 在对数据库进行修复时数据库可以处于打开状态、
用户自定义的数据库恢复 1 概述 定义:指发生介质故障或用户错误时,利用用户自定义方 定义:指发生介质故障或用户错误时, 式建立的备份对数据库进行修复或恢复, 式建立的备份对数据库进行修复或恢复,使数据库能重新 打开, 打开,并尽量挽回由于故障而丢失的数据 工作机制 发生介质损坏后,利用备份修复损坏或丢失的数据文件 修复后的数据文件开始和数据库中的其它数据文件不同 步,数据库仍然无法打开,可以启动实例,利用 RECOVER命令对数据库进行修复。分两个步骤:1 缓存 恢复(ROLL Forward)和事务恢复(ROLL BACK),缓 存恢复后数据库可以打开,事务恢复后数据库进入一致状 态
(3)利用操作系统命令,把备份的文件复制到原始位置 利用操作系统命令, 利用操作系统命令 (4)修复数据文件的表空间 修复数据文件的表空间 SQL>recover tablespace users; (5)将修复的表空间置于联机状态 将修复的表空间置于联机状态 SQL>alter tablespace users online;
143
Redo log file 2
144
Data file 3
Database
不归档模式下的数据库恢复 (1)将数据库修复到原来的位置上 ) 关闭数据库 SQL> SHUTDOWN IMMEDIATE; 排除故障,这样数据库文件就可以恢复到原来位置上; 排除故障,这样数据库文件就可以恢复到原来位置上; 利用最近一次建立的一致性完全备份对整个数据库进 行修复(是所有); 行修复(是所有); 由于在备份中并不包含联机重做日志文件, 由于在备份中并不包含联机重做日志文件,你不能像 修复数据文件和控制文件那样对重做日志文件进行修 因此需要模拟一次不完全恢复; 复,因此需要模拟一次不完全恢复; SQL>RECOVER DATABASE UNTIL CANCEL; SQL>CANCEL 使用RESETLOGS选项打开数据库, RESETLOGS选项打开数据库 使用RESETLOGS选项打开数据库,这时重做日志号设为 1
SQL>ALTER DATABASE OPEN RESETLOGS; (2)将数据库修复到新的位置上 ) 关闭数据库 SQL> SHUTDOWN IMMEDIATE; 排除故障,这样数据库文件就可以恢复到新位置上; 排除故障,这样数据库文件就可以恢复到新位置上; 对初始化参数文件中的CONTROL_FILES进行编辑, CONTROL_FILES进行编辑 对初始化参数文件中的CONTROL_FILES进行编辑,使他 保存在新位置中的控制文件。 保存在新位置中的控制文件。 启动实例; 启动实例; SQL>STARTUP MOUNT; 如果修复后的数据文件处于新位置,必须用ALTER 如果修复后的数据文件处于新位置,必须用ALTER FILE语句对控制文件进行修改 语句对控制文件进行修改, DATABASE RENAME FILE语句对控制文件进行修改,指 向新位置中的数据文件; 向新位置中的数据文件;
数据库文件的位置 记录数据库当前所使用文件信息 SQL>Select name from v$datafile 2 union all 3 select member form v$logfile 4 union all 5 select name from v$controlfile;
记录重做日志文件的信息 SQL>select name,value from v$parameter 2 where name like ‘log_archive_dest%’ 3 and value is not null; 重做日志文件的位置与名称 SQL>select name from v$archive_log; 记录备份文件的信息 确定修复的文件 SQL>select * from v$recover_file;
损坏或丢失的文件
复合控制文件中的一 份
操作说明
复合控制文件和复合联机重做日志不同, 复合控制文件和复合联机重做日志不同, 只要其中一份控制文件损坏, 只要其中一份控制文件损坏,数据库就停 止运行, 止运行,这是需要将另一份控制文件复制 到损坏或丢失控制文件所在的位置, 到损坏或丢失控制文件所在的位置,然后 打开数据库; 打开数据库;如果你无法将这个控制文件 恢复到原来的位置上, 恢复到原来的位置上,需要对初始化参数 编辑, 编辑,指向一个新位置上的控制文件 必须将这些归档重做日志文件修复到默认 的归档目标中,也可以修复到其他位置上, 的归档目标中,也可以修复到其他位置上, 如果没有归档日志文件备份, 如果没有归档日志文件备份,只能进行不 完全恢复,并用RESETLOGS RESETLOGS选项打开数据 完全恢复,并用RESETLOGS选项打开数据 库
得到文件号后,确定需要修复的数据文件名和表空间名。 得到文件号后,确定需要修复的数据文件名和表空间名。 SQL>select , as tablespace_name 2 from v$datafile d,v$tablespace t 3 where t.ts#= d.ts# 4 and d.file# in (14,15,21); 修复数据文件 (1)确定需要进行修复的数据文件; 确定需要进行修复的数据文件; 确定需要进行修复的数据文件 (2)如果处于打开状态,将包含这个数据文件的表空间设 如果处于打开状态, 如果处于打开状态 置为脱机状态; 置为脱机状态;ALTER TABLESPACE users OFFLINE IMMEDIATE;
146
Redo log file 1
144
Data file 1
144
Control files
144
Redo log file 1
146
Parameter file Password file Data File 2
145
Redo log file 2 Parameter file Password file