===============================================================================
Error Code:ORA-01031: insufficient privileges
===============================================================================
$ sqlplus sys/oracle@ora11g as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jan 12 19:08:41 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
解决方法:
1、以oracle用户登录服务器,并通过sqlplus以管理员身份登录
sqlplus / as sysdba
2、检查系统参数remote_login_passwordfile的value值是否为EXCLUSIVE
show parameter password;
3、查询具有sysdba权限的用户
select * from v$pwfile_users;
4、如果第3步查询的结果为空给用户赋DBA权限
grant sysdba to sys;
5、如果步骤4返回ORA-01994错误,建立password文件
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password='赋DBA权限用户的密码' entries=DBA权限的用户数
6、重新以SY
要点说明:
Oracle权限认证的基本顺序是这样的,先由SQLNET.AUTHENTICATION_SERVICES的设置值来决定是使用OS认证还是口令文件认证,如果使用口令文件认证的话,就要看还有后面的两个条件:如果 remote_login_passwordfile 参数设置为非NONE而且口令文件存在的话就能正常使用口令文件认证,否则将会失败。
系统默认 SQLNET.AUTHENTICATION_SERVICES = 默认不设
SQLNET.AUTHENTICATION_SERVICES = ALL 支持OS认证和口令文件认证。
SQLNET.AUTHENTICATION_SERVICES = NTS 仅用于 WIN NT 系统。
SQLNET.AUTHENTICATION_SERVICES = NONE 指定oracle只使用口令文件 (WIN 和 LINUX)。
SQLNET.AUTHENTICATION_SERVICES 不设 LINUX 默认支持 OS认证和口令文件认证。
WIN 系统只支持口令文件认证。
系统默认 REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE
REMOTE_LOGIN_PASSWORDFILE = NONE 不使用口令文件
REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE 使用口令文件,但只有一个数据库实例可以使用
REMOTE_LOGIN_PASSWORDFILE = SHARED 多个数据库实例共用一个口令文件,这种设置下不能增加其他数据库用户作为特殊权限用户到口令文件中的。
ORAPWD FILE=< FILENAME > PASSWORD=< PASSWORD > ENTRIES=< MAX_USERS >
参数解析:
FILENAME:密码文件名文件命规则“orapw”+<实例名>;
PASSWORD:设置INTERNAL/SYS帐号的口令;
MAX_USERS:密码文件中可以存放的用户数,对应于许可以SYSDBA/SYSOPER权限登录数据库的用户数。因为在往后的维护中,若用户数超出了此限制,则需要重建密码文件
===============================================================================
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
===============================================================================
Error Code:ORA-32001: write to SPFILE requested but no SPFILE is in use
===============================================================================
SQL> alter system set cluster_database=false scope=spfile;
如果有以下报错,说明数据库不是用spfile来启动的
alter system set cluster_database=false scope=spfile
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE is in use
可以通过以下语句来确认是否是用spfile来启动的,为空表示用pfile启动
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
使用以下语句来修改oracle来使用spfile启动
SQL> create spfile from pfile;
File created.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
SQL> alter system set cluster_database=false scope=spfile;
System altered.
===============================================================================
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
===============================================================================
Error Code:ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/products/10.1.0.3/db_1/dbs/initjason.ora'
===============================================================================
错误信息:
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/products/10.1.0.3/db_1/dbs/initjason.ora'
解决办法:
cp $ORACLE_BASE/admin/$ORACLE_SID/pfile/init.ora.85201021251 /opt/oracle/products/10.1.0.3/db_1/dbs/initjason.ora
> sqlplus /nolog
SQL*Plus: Release 10.1.0.3.0 - Production on Thu Jun 8 13:16:00 2006
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 778212 bytes
Variable Size 57679900 bytes
Database Buffers 109051904 bytes
Redo Buffers 262144 bytes
Database mounted.
Database opened.
SQL>
问题解决!
注:Oracle在启动过程中,需要读取参数文件(pfile/spfile)来创建实例.Oracle在启动过程中,寻找参数文件的顺序为:spfile<sid>.ora,spfile.ora,init<sid>.ora.
===============================================================================
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
===============================================================================
Error Code:ora-01031 :insufficient privileges
===============================================================================
1.可能是防火墙没有关闭
检查防火状态:
linux:~ # chkconfig -list|grep -i fire
SuSEfirewall2_final 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_init 0:off 1:off 2:off 3:off 4:off 5:on 6:off
SuSEfirewall2_setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off
开启防火墙:
linux:~ # chkconfig --level 5 SuSEfirewall2_init on
linux:~ # chkconfig -list|grep -i fire
SuSEfirewall2_final 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_init 0:off 1:off 2:off 3:off 4:off 5:on 6:off
SuSEfirewall2_setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off
关闭防火墙:
linux:~ # chkconfig --level 5 SuSEfirewall2_init off
linux:~ # chkconfig -list|grep -i fire
SuSEfirewall2_final 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_init 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off
===============================================================================
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
===============================================================================
Error Code:ORA-01119: error in creating database file '/home/oracle/oradata/test01/testTMP.dbf'
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
===============================================================================
-- 创建临时表空间
CREATE TEMPORARY TABLESPACE VoiceInsight_Temp
TEMPFILE '/home/oracle/oradata/test01/testTMP.dbf'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 500M
EXTENT MANAGEMENT LOCAL;
ORA-01119: error in creating database file
'/home/oracle/oradata/test01/testTMP.dbf'
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
解决方法:
在sqlplus中调用Unix命令需要在命令前加个感叹号。如SQL> !ps -aef | grep ora11gr2
SQL> !mkdir -p /home/oracle/oradata/test01
SQL> CREATE TEMPORARY TABLESPACE VoiceInsight_Temp
TEMPFILE '/home/oracle/oradata/test01/testTMP.dbf'
SIZE 32MAUTOEXTEND ON
NEXT 32M MAXSIZE 500M
EXTENT MANAGEMENT LOCAL;
Tablespace created.
===============================================================================
来源:oschina
链接:https://my.oschina.net/u/617388/blog/75565