这篇文章主要为大家展示了“SYS用户登录Oracle报错ORA-01031怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SYS用户登录Oracle报错ORA-01031怎么办”这篇文章吧。
自己写了一个脚本在测试环境运行脚本的时候,导致数据库异常的宕掉之后,然后重新连接就出现了下面的问题,下面是场景还原与解决的过程:
[oracle@seiang ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 30 08:39:21
2018
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected.
SYS@seiang11g>shutdown immediate
ORA-24324: service handle not
initialized
ORA-24323: value not allowed
ORA-01089: immediate shutdown
in progress – no operations are permitted
1、尝试强制关闭和打开数据库,都出现报错ORA-01031: insufficient privileges
SYS@seiang11g>shutdown abort
ORA-01031: insufficient
privileges
SYS@seiang11g>startup
ORA-01031: insufficient
privileges
2、接下来尝试去查看数据库的参数,提示说没有登录
SYS@seiang11g>show parameter password
ERROR:
ORA-01012: not logged on
3、下面使用SYS连接到数据库实例,看到提示说连接到一个空闲的实例
SYS@seiang11g>conn / as sysdba
Connected to an idle
instance.
4、接下来,尝试重新启动数据库,再次提示说没有登录
SYS@seiang11g>startup
ORA-01012: not logged on
5、再次尝试强制的关闭数据库,然后在重新启动数据库,启动成功
SYS@seiang11g>shutdown abort
ORACLE instance shut down.
SYS@seiang11g>
SYS@seiang11g>startup
ORACLE instance started.
Total System Global Area 1252663296 bytes
Fixed Size
2252824 bytes
Variable Size
738201576 bytes
Database Buffers
503316480 bytes
Redo Buffers
8892416 bytes
Database mounted.
Database opened.
数据库启动成功!
补充说明:
对于ORA-01031: insufficient privileges报错,常见的一些原因和解决思路:
1、如果是多个数据库实例时候,set ORACLE_SID= ''
2、检查sqlnet.ora(WINDOWS下位于%ORACLE_HOME%NETWORKADMIN目录)是否包含这句:
SQLNET.AUTHENTICATION_SERVICES=(NTS),没有的话加上;
3、检查登陆windows的用户(administrator或安装oracle时候使用的用户)是不是在包含在ORA_DBA组中,域用户没有连上域服务器时就可能出现这种现象。
3、要保证 remote_login_passwordfile 参数 = EXCLUSIVE .
4、查看口令文件和数据库实例是否是对应的,如果不对应,则需要使用orapwd重新生成口令文件