alter database backup controlfile to trace;
虽然曾经说过凡是“alter database”的都不能在数据库打开的情况下修改memory,但是这句语句似乎是例外。输入后,trace文件即生成在了$ORACLE_BASE/admin/<sid>/bdump下,可以通过时间(Linux命令: ll -t)去寻找这个文件,打开就可以找到控制文件的恢复SQL语句,似乎还有两个版本,一个NORESETLOGS版本和一次RESETLOGS版本。
/*NORESETLOGS版本*/
STARTUP NOMOUNT //这里没分号?大概startup语句就是不加分号的。
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/home/oracle/oracle/oradata/orcl/redo01.log' SIZE 50M,
GROUP 2 '/home/oracle/oracle/oradata/orcl/redo02.log' SIZE 50M,
GROUP 3 '/home/oracle/oracle/oradata/orcl/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/home/oracle/oracle/oradata/orcl/system01.dbf',
'/home/oracle/oracle/oradata/orcl/undotbs01.dbf',
'/home/oracle/oracle/oradata/orcl/sysaux01.dbf',
'/home/oracle/oracle/oradata/orcl/users01.dbf',
'/home/oracle/oracle/oradata/orcl/example01.dbf'
CHARACTER SET WE8ISO8859P1
;
/*RESETLOGS版本*/
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/home/oracle/oracle/oradata/orcl/redo01.log' SIZE 50M,
GROUP 2 '/home/oracle/oracle/oradata/orcl/redo02.log' SIZE 50M,
GROUP 3 '/home/oracle/oracle/oradata/orcl/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/home/oracle/oracle/oradata/orcl/system01.dbf',
'/home/oracle/oracle/oradata/orcl/undotbs01.dbf',
'/home/oracle/oracle/oradata/orcl/sysaux01.dbf',
'/home/oracle/oracle/oradata/orcl/users01.dbf',
'/home/oracle/oracle/oradata/orcl/example01.dbf'
CHARACTER SET WE8ISO8859P1
;