验证 oracle startup nomount 时是否读取redofile和datafile

按照我的理解,

oracle  startup nomount  :是oracle instance 启动,读取的是spfile.ora(也就是初始化参数文件)

alter database mount :是读取在spfile.ora中所有的controlfile,并验证所有controlfile之间是否一致,

alter database open :打开controlfile 中指定的 logfile  和  datafile(当然还有验证scn是否一致的过程)

我在想这么一个问题,难道oracle  startup nomount 只读取spfile.ora,不做“探测logfile  和datafile是否存在”这个步骤?

于是做了如下测试:

环境:win2k pro  和  oracle 9201

测试过程:

Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0
Connected as system


SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
D:\ORACLE\ORA92\RXL\SYSTEM01.DBF
D:\ORACLE\ORA92\RXL\UNDOTBS01.DBF
D:\ORACLE\ORA92\RXL\CWMLITE01.DBF
D:\ORACLE\ORA92\RXL\DRSYS01.DBF
D:\ORACLE\ORA92\RXL\EXAMPLE01.DBF
D:\ORACLE\ORA92\RXL\INDX01.DBF
D:\ORACLE\ORA92\RXL\ODM01.DBF
D:\ORACLE\ORA92\RXL\TOOLS01.DBF
D:\ORACLE\ORA92\RXL\USERS01.DBF
D:\ORACLE\ORA92\RXL\XDB01.DBF
D:\CWDATA\GS_ORADB_001.DBF
D:\CWDATA\GS_ORADB_IDX_001.DBF

12 rows selected

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
D:\ORACLE\ORADATA\RXL\REDO01A.LOG
D:\ORACLE\ORADATA\RXL\REDO01B.LOG
D:\ORACLE\ORADATA\RXL\REDO02A.LOG
D:\ORACLE\ORADATA\RXL\REDO02B.LOG
D:\ORACLE\ORADATA\RXL\REDO03A.LOG
D:\ORACLE\ORADATA\RXL\REDO03B.LOG

6 rows selected

SQL>

之后,shutdown immediate;

之后,D:\ORACLE\ORA92\RXL\重命名为 D:\ORACLE\ORA92\RXL---\

之后,D:\ORACLE\ORADATA\RXL\重命名为 D:\ORACLE\ORADATA\RXL---\

之后:

SQL> startup nomount;
ORACLE 例程已经启动。

Total System Global Area  269556596 bytes
Fixed Size                   453492 bytes
Variable Size             167772160 bytes
Database Buffers          100663296 bytes
Redo Buffers                 667648 bytes
SQL>

请使用浏览器的分享功能分享到微信等