答案是在alter database mount 的过程中,instance 就读取oracle密码文件进行验证了。
对于windows来说,instance读取的是d:\oracle\ora92\database\pwd+SID.ora 这个文件。
对于linux来说,instance读取的是$ORACLE_HOME/dbs/orapw+SID.ora这个文件。
值得注意的是,在不同的os平台下,密码文件有不一样的文件名。
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\>sqlplus system/aaaaaa
SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 11月 24 17:16:00 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
请输入用户名:
ERROR:
ORA-01017: 无效的用户名/口令;拒绝登录
请输入用户名:
ERROR:
ORA-01017: 无效的用户名/口令;拒绝登录
SP2-0157: 在3次尝试之后无法 CONNECT 到 ORACLE, 退出 SQL*Plus
C:\>sqlplus " / as sysdba"
SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 11月 24 17:16:46 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> alter database mount;
alter database mount
*
ERROR 位于第 1 行:
ORA-01990: ??????'D:\oracle\ora92\DATABASE\PWDlyl.ORA'???
ORA-27041: ??????
OSD-04002: N^7(4r?*NDO/S-Error: (OS 2) O5M3UR2;5=V86(5DND
SQL>