解决办法
ORADIM方法
确认控制面板的服务OracleStart<sid>已经启动确认服务的login tab中的登陆用户名和密码正确
检查数据库启动选项在DOS下执行
ORADIM H
如果数据库启动选项选项不正确修改相关参数执行
ORADIM EDIT SID <SID> INTPWD <PASSWORD> STARTMODE AUTO PFILE <path\initSIDora>
正常关闭数据库
set oracle_sid=SID
svrmgrxx
connect internal/<password>
shutdown immediate
执行以下命令文件
oracle_home\database\strt<sid>cmd
执行完毕后检查 $ORACLE_HOME\database下的oradimlog
日志文件显示数据库正常启动使用sqlplus等测试连接访问如果访问成功说明问题已经解决
如果没有成功请重建strt<sid>cmd方法如下
oradim delete sid SID
oradim new sid SID intpwd <password> startmode auto pfile <path\initSIDora>
注册表参数修改方法
在注册表hkey_local_machine/software/oracle/homexx (xx=home number) 下设置
ORA_SID_AUTOSTART为true
ORA_SID_PFILE为pfile的全路径
注意以上参数中的SID要替换成实际使用数据库的SID例如数据库的SID为ORCL 参数为ORA_ORCL_AUTOSTART
修改SQLNETAUTHENTICATION_SERVICES
修改$ORACLE_HOME/network/admin/sqlnetora文件
将原有的SQLNETAUTHENTICATION_SERVICES= (NTS)
改为:SQLNETAUTHENTICATION_SERVICES= (NONE)
或者直接注释#SQLNETAUTHENTICATION_SERVICES= (NTS)
这是一个解决办法但也存在一些问题
SQLNETAUTHENTICATION_SERVICES设为NONE或者注释后ORACLE不再使用操作系统认证不再向域管理器确认登陆者的身份当使用connect internal or connect / as sysdba登录时可能会出现例如ORA等问题