参考: http://blog.itpub.net/30162081/viewspace-1678479/
一、获取方法:
SQL> alter database backup controlfile to trace as '/tmp/control.sql'; Database altered.
二、NORESETLOGS VS RESETLOGS
通过trace文件可以看出,它提供了两个创建控制文件的脚本,分别针对两种不同的应用场景:
NORESETLOGS适用于当前redo log可用,而RESETLOGS适用于当前redo log不可用。
三、也可以直接获取 NORESETLOGS或者RESETLOGS的文件
SQL> alter database backup controlfile to trace as '/tmp/control-noresetlogs.sql' noresetlogs; Database altered. SQL> alter database backup controlfile to trace as '/tmp/control-resetlogs.sql' resetlogs; Database altered.
NORESETLOGS重建步骤
1.执行脚本,重建控制文件(CREATE CONTROLFILE REUSE DATABASE "HOEGH" NORESETLOGS NOARCHIVELOG......)
2.执行介质恢复RECOVER DATABASE
3.打开数据库ALTER DATABASE OPEN;
4.添加临时表空间
2.执行介质恢复RECOVER DATABASE USING BACKUP CONTROLFILE
3.打开数据库ALTER DATABASE OPEN RESETLOGS;
4.添加临时表空间
2.执行介质恢复RECOVER DATABASE
3.打开数据库ALTER DATABASE OPEN;
4.添加临时表空间
RESETLOGS重建步骤
1.执行脚本,重建控制文件(CREATE CONTROLFILE REUSE DATABASE "HOEGH" RESETLOGS NOARCHIVELOG......)2.执行介质恢复RECOVER DATABASE USING BACKUP CONTROLFILE
3.打开数据库ALTER DATABASE OPEN RESETLOGS;
4.添加临时表空间