按照我的理解,
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>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/161195/viewspace-563266/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/161195/viewspace-563266/