今天对一服务器进行数据库登录,发现使用系统权限登录出现报错ORA-12560,报错如下图:

Oracle故障处理:Sqlplus  /  as sysdba 报错Ora-12560_path

1、检查sqnet.ora配置,发现允许通过系统权限进行登录,如下:

Oracle故障处理:Sqlplus  /  as sysdba 报错Ora-12560_path_02

2、检查监听服务和数据库实例服务,发现都是自动启动的状态,如下图:

Oracle故障处理:Sqlplus  /  as sysdba 报错Ora-12560_注册表_03

3、检查sqlplus命令路径,进入命令路径依旧报错,如下图:

Oracle故障处理:Sqlplus  /  as sysdba 报错Ora-12560_oracle_04

4、进行数据库sid设置,然后再进行sqlplus / as sysdba连接,发现可以成功,如下图:

Oracle故障处理:Sqlplus  /  as sysdba 报错Ora-12560_ora-12560_05

5、查看注册表,发现在注册表里面不存在ORACLE_SID的键值导致,在注册表增加键值,如下:

Oracle故障处理:Sqlplus  /  as sysdba 报错Ora-12560_oracle_06

6、然后重启服务器,待服务器启动后再次连接数据库,可以正常连接,如下图:

Oracle故障处理:Sqlplus  /  as sysdba 报错Ora-12560_ora-12560_07

7、对数据进行启动,数据库可以正常启动,如下:

Oracle故障处理:Sqlplus  /  as sysdba 报错Ora-12560_ora-12560_08

8、发现数据库服务器和监听是自动启动的,但是系统重启后服务启动了,但是实例并没有启动,设置参数如下:

Oracle故障处理:Sqlplus  /  as sysdba 报错Ora-12560_注册表_09

9、经过如上设置以后,数据库可以正常连接,并且可以随系统启动而启动。