非归档模式下数据库的恢复:
非归档模式下数据库的恢复主要指利用非归档模式下的冷备份恢复数据库。
步骤为:
关闭数据库。
SHUTDOWN IMMEDIATE
将备份的所有数据文件、控制文件、联机重做日志文件还原到原来所在的位置。
重新启动数据库。
STARTUP
注意
非归档模式下的数据库恢复是不完全恢复,只能将数据库恢复到最近一次完全冷备份的状态。
归档模式下数据库的完全恢复:
归档模式下数据库的完全恢复是指归档模式下一个或多个数据文件损坏,利用热备份的数据文件替换损坏的数据文件,再结合归档日志文件和联机重做日志文件,采用前滚技术重做自备份以来的所有改动,采用回滚技术回滚未提交的操作,以恢复到数据库故障时刻的状态。
恢复的级别:数据库级完全恢复、表空间级完全恢复、数据文件级完全恢复
注意:
数据库级的完全恢复只能在数据库装载但没有打开的状态下进行,而表空间级完全恢复和数据文件级完全恢复可以在数据库处于装载状态或打开的状态下进行。
归档模式下数据库完全恢复的基本语法:
RECOVER [AUTOMATIC] [FROM 'location']
[DATABASE|TABLESPACE tspname
|DATAFILE dfname]
参数说明
AUTOMATIC:进行自动恢复,不需要DBA提供重做日志文件名称;
location:制定归档重做日志文件的位置,默认为数据库默认的归档路径。
数据库级完全恢复的步骤:
如果数据库没有关闭,则强制关闭数据库。SHUTDOWN ABORT
利用备份的数据文件还原所有损坏的数据文件。
将数据库启动到MOUNT状态。STARTUP MOUNT
执行数据库恢复命令。RECOVER DATABASE
打开数据库。ALTER DATABASE OPEN;
表空间级完全恢复的步骤:
以EXAMPLE表空间的数据文件example01.dbf损坏为例模拟表空级的完全恢复。
数据库处于装载状态下的恢复
如果数据库没有关闭,则强制关闭数据库。SHUTDOWN ABORT
利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。
将数据库启动到MOUNT状态。STARTUP MOUNT
执行表空间恢复命令。RECOVER TABLESPACE EXAMPLE
打开数据库。ALTER DATABASE OPEN;
数据库处于打开状态下的恢复
①如果数据库已经关闭,则将数据库启动到MOUNT
状态。STARTUP MOUNT
②将损坏的数据文件设置为脱机状态。
ALTER DATABASE DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF' OFFLINE;
③打开数据库。ALTER DATABASE OPEN;
④将损坏的数据文件所在的表空间脱机。ALTER TABLESPACE EXAMPLE OFFLINE FOR
RECOVER;
⑤ 利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。
⑥ 执行表空间恢复命令。RECOVER TABLESPACE EXAMPLE;
⑦ 将表空间联机。ALTER TABLESPACE EXAMPLE ONLINE;
如果数据文件损坏时数据库正处于打开状态,则可以
直接执行步骤(4)~(7)。
数据文件级完全恢复的步骤:
以数据文件D:\oracle\product\10.2.0\oradata\orcl\example01.dbf损坏为例模拟数据文件级的完全恢复。
数据库处于装载状态下的恢复
如果数据库没有关闭,则强制关闭数据库。SHUTDOWN ABORT
利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。
将数据库启动到MOUNT状态。STARTUP MOUNT
执行数据文件恢复命令。RECOVER DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF';
将数据文件联机。ALTER DATABASE DATAFILE
'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF' ONLINE
打开数据库。
ALTER DATABASE OPEN;
数据库处于打开状态下的恢复
如果数据库已经关闭,则将数据库启动到MOUNT状态。STARTUP MOUNT
将损坏的数据文件设置为脱机状态。ALTER DATABASE DATAFILE
'D:\oracle\product\10.2.0\oradata\orcl\
EXAMPLE01.DBF' OFFLINE;
打开数据库。ALTER DATABASE OPEN;
利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。
执行数据文件恢复命令。RECOVER DATAFILE
'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF';
将数据文件联机。ALTER DATABASE DATAFILE
'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF' ONLINE;
如果数据文件损坏时数据库正处于打开状态,则可以直接
执行步骤(2)、(4)~(6)。