完全恢复与Resetlogs

很多朋友经常会对完全恢复与Resetlogs产生误解,以为使用Resetlogs方式打开数据库就是不完全恢复,这种看法是不正确的。

只要拥有当前的日志文件,那么就能够对数据库执行完全恢复,而是否需要使用Resetlogs方式打开,则取决于是否使用的是备份的控制文件,如果使用的是备份的控制文件则需要使用Resetlogs方式打开数据库,如果拥有当前的控制文件或者通过重建控制文件来恢复,就不需要通过Restlogs方式打开数据库。

 

(1)、使用备份控制文件进行恢复(此时要用Resetlogs打开数据库)

RMAN> run

{

startup nomount;

restore controlfile from autobackup;

sql 'alter database mount';

restore database;

recover database;

sql 'alter database open resetlogs';

}

(2)、通过重建控制文件进行恢复(此时不需要用Resetlogs打开数据库)

RMAN>run

{

startup nomount;

restore controlfile from autobackup;

sql 'alter database mount';

restore database;

}

切换到sqlplus,关闭数据库,启动到nomount状态,重建控制文件

SQL>alter database backup controlfile to trace;

SQL> startup nomount force;

SQL>重建控制文件代码

SQL>recover database;             --要保证有全备后的归档日志文件和联机日志

SQL>alter database open;

 

你可能感兴趣的:(sql)