1、在库完好的时候先备份一下controlfile以备不时之需
SQL> alter database backup controlfile to trace;
SQL> exit;
$ cd $ORACLE_BASE/admin/$ORACLE_SID/udump
$ ls -ltrh | tail -1
-rw-r----- 1 oracle oinstall 8.4K Nov 26 18:49 wending_ora_10819.trc
找最新的那个trace文件,里头即有重建controlfile的语句。
这里先记着,看一下 sql就知道咋回事了。注意:RMAN的设置将回到默认值。
1、重建controlfile
注意:如果日志文件也坏了,那么把下面语句中的 NORESETLOGS换成 RESETLOGS。
SQL> STARTUP NOMOUNT
SQL> CREATE CONTROLFILE REUSE DATABASE "WENDING" NORESETLOGSFORCE LOGGING ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
'/orahome/oradata/WENDING/redo011.log',
'/u01/oradata/WENDING/redo012.log'
) SIZE 100M,
GROUP 2 (
'/orahome/oradata/WENDING/redo021.log',
'/u01/oradata/WENDING/redo022.log'
) SIZE 100M,
GROUP 3 (
'/orahome/oradata/WENDING/redo031.log',
'/u01/oradata/WENDING/redo032.log'
) SIZE 100M,
GROUP 4 (
'/orahome/oradata/WENDING/redo041.log',
'/u01/oradata/WENDING/redo042.log'
) SIZE 100M,
GROUP 5 (
'/orahome/oradata/WENDING/redo051.log',
'/u01/oradata/WENDING/redo052.log'
) SIZE 100M,
GROUP 6 (
'/orahome/oradata/WENDING/redo061.log',
'/u01/oradata/WENDING/redo062.log'
) SIZE 100M
-- STANDBY LOGFILE
DATAFILE
'/orahome/oradata/WENDING/system01.dbf',
'/orahome/oradata/WENDING/undotbs01.dbf',
'/orahome/oradata/WENDING/sysaux01.dbf',
'/orahome/oradata/WENDING/users01.dbf',
'/u01/oradata/WENDING/wending_user01.dbf',
'/u01/oradata/WENDING/wending_log01.dbf',
'/u01/oradata/WENDING/wending_index01.dbf'
CHARACTER SET ZHS16GBK;
2、打开数据库,两种情况
2.1、redologs都完好,那么NORESETLOGS方式打开数据库
SQL> RECOVER DATABASE
SQL> ALTER SYSTEM ARCHIVE LOG ALL;
SQL> ALTER DATABASE OPEN;
2.2、redologs也损坏了,那么RESETLOGS方式打开数据库
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE
SQL> ALTER DATABASE OPEN RESETLOGS;
3、最后重建临时表空间
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/orahome/oradata/WENDING/temp01.dbf'
SIZE 1024M REUSE AUTOEXTEND ON NEXT 10485760 MAXSIZE 32767M;
SQL> alter database backup controlfile to trace;
SQL> exit;
$ cd $ORACLE_BASE/admin/$ORACLE_SID/udump
$ ls -ltrh | tail -1
-rw-r----- 1 oracle oinstall 8.4K Nov 26 18:49 wending_ora_10819.trc
找最新的那个trace文件,里头即有重建controlfile的语句。
这里先记着,看一下 sql就知道咋回事了。注意:RMAN的设置将回到默认值。
1、重建controlfile
注意:如果日志文件也坏了,那么把下面语句中的 NORESETLOGS换成 RESETLOGS。
SQL> STARTUP NOMOUNT
SQL> CREATE CONTROLFILE REUSE DATABASE "WENDING" NORESETLOGSFORCE LOGGING ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
'/orahome/oradata/WENDING/redo011.log',
'/u01/oradata/WENDING/redo012.log'
) SIZE 100M,
GROUP 2 (
'/orahome/oradata/WENDING/redo021.log',
'/u01/oradata/WENDING/redo022.log'
) SIZE 100M,
GROUP 3 (
'/orahome/oradata/WENDING/redo031.log',
'/u01/oradata/WENDING/redo032.log'
) SIZE 100M,
GROUP 4 (
'/orahome/oradata/WENDING/redo041.log',
'/u01/oradata/WENDING/redo042.log'
) SIZE 100M,
GROUP 5 (
'/orahome/oradata/WENDING/redo051.log',
'/u01/oradata/WENDING/redo052.log'
) SIZE 100M,
GROUP 6 (
'/orahome/oradata/WENDING/redo061.log',
'/u01/oradata/WENDING/redo062.log'
) SIZE 100M
-- STANDBY LOGFILE
DATAFILE
'/orahome/oradata/WENDING/system01.dbf',
'/orahome/oradata/WENDING/undotbs01.dbf',
'/orahome/oradata/WENDING/sysaux01.dbf',
'/orahome/oradata/WENDING/users01.dbf',
'/u01/oradata/WENDING/wending_user01.dbf',
'/u01/oradata/WENDING/wending_log01.dbf',
'/u01/oradata/WENDING/wending_index01.dbf'
CHARACTER SET ZHS16GBK;
2、打开数据库,两种情况
2.1、redologs都完好,那么NORESETLOGS方式打开数据库
SQL> RECOVER DATABASE
SQL> ALTER SYSTEM ARCHIVE LOG ALL;
SQL> ALTER DATABASE OPEN;
2.2、redologs也损坏了,那么RESETLOGS方式打开数据库
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE
SQL> ALTER DATABASE OPEN RESETLOGS;
3、最后重建临时表空间
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/orahome/oradata/WENDING/temp01.dbf'
SIZE 1024M REUSE AUTOEXTEND ON NEXT 10485760 MAXSIZE 32767M;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24695024/viewspace-675508/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24695024/viewspace-675508/