|
一、 自动应用重做日志 1、 利用SET AUTORECOVERY命令自动应用重做日志 完成对数据文件的修复操作 SQL>STARTUP MOUNT; 启动实例并加载数据库 SQL>SET AUTORECOVERY ON 启用重做日志自动应用功能 SQL>RECOVER DATABASE 恢复指定表空间、数据文件或整个数据库 SQL>ALTER DATABASE OPEN; 完成恢复后打开数据库 2、 利用RECOVERY AUTOMATIC命令自动应用重做日志 完成对数据文件的修复操作 SQL>STARTUP MOUNT; 启动实例并加载数据库 SQL>RECOVER AUTOMATIC DATABASE SQL>ALTER DATABASE OPEN; 完成恢复后打开数据库 二、 不归档模式下的数据库介质恢复 1、 将数据库恢复到原来的位置上 SQL>SHUTDOWN IMMEDIATE 如果数据库仍然处于打开状态,关闭数据库; 将数据库文件恢复到原来的位置上,利用最近一次建立的一致性完全备份对整个数据库进行恢复,必须对所有的数据文件与控制文件进行修复; SQL>RECOVER DATABASE UNTIL CANCEL SQL>CANCEL SQL>ALTER DATABASE OPEN RESETLOGS;将当前重做日志顺序号设置为1。 2、 将数据库恢复到新的位置上 SQL>SHUTDOWN IMMEDIATE 如果数据库仍然处于打开状态,关闭数据库; 将数据库文件恢复到新的位置上,利用最近一次建立的一致性完全备份对整个数据库进行恢复,必须对所有的数据文件与控制文件进行修复; 对初始化参数文件中的CONTROL_FILES参数进行编辑,使它执行保存在新位置中修复后的控制文件; SQL>STARTUP MOUNT 如果修复后的数据库文件处于新的位置,必须利用ALTER DATABASE RENAME FILE语句对控制文件进行修改,使它指向新位置中修复后的数据文件。如: SQL>ALTER DATABASE RENAME FILE ‘I:\ora9i\oradata\system01.dbf’ TO ‘K:\oracle\oradata\system01.dbf’; SQL>RECOVER DATABASE UNTIL CANCEL SQL>CANCEL SQL>ALTER DATABASE OPEN RESETLOGS;将当前重做日志顺序号设置为1。 三、 归档模式下的完全介质恢复 1、 关闭状态下的完全恢复 SQL>SHUTDOWN ABORT(如果数据库处于打开状态,将它强行关闭) 将数据文件恢复到原来的位置上,如果介质故障无法排除,需要将数据文件恢复到其它位置上; 利用备份修复丢失或损坏的数据文件,也可利用ALTER DATABASE CREATE DATAFILE 语句重建一个空白的数据文件替换对视或损坏的数据文件; SQL>STARTUP MOUNT 如果修复后的数据文件不在原来的位置上,需要使用ALTER DATABASE RENAME FILE …TO …语句在控制文件中更新它们的信息 SQL>SELECT name,status FROM V$DATAFILE;查询数据文件的名称和状态 SQL>ALTER DATABASE DATAFILE … ONLINE;将脱机数据文件改未联机 SQL>RECOVER DATABASE 或 SQL>RECOVER TABLESPACE users 或 SQL>RECOVER DATAFILE ‘I:\ora9i\oradata\users0.dbf; SQL>ALTER DATABASE OPEN; |