===============================================================================
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: linux
解决方法: sql
一、以oracle用户登陆服务器,并经过sqlplus以管理员身份登陆
sqlplus / as sysdba
二、检查系统参数remote_login_passwordfile的value值是否为EXCLUSIVE
show parameter password;
三、查询具备sysdba权限的用户
select * from v$pwfile_users;
四、若是第3步查询的结果为空给用户赋DBA权限
grant sysdba to sys;
五、若是步骤4返回ORA-01994错误,创建password文件
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password='赋DBA权限用户的密码' entries=DBA权限的用户数
六、从新以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 系统只支持口令文件认证。 oracle
系统默认 REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE spa
REMOTE_LOGIN_PASSWORDFILE = NONE 不使用口令文件
REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE 使用口令文件,但只有一个数据库实例能够使用
REMOTE_LOGIN_PASSWORDFILE = SHARED 多个数据库实例共用一个口令文件,这种设置下不能增长其余数据库用户做为特殊权限用户到口令文件中的。 ci
ORAPWD FILE=< FILENAME > PASSWORD=< PASSWORD > ENTRIES=< MAX_USERS > rem
参数解析:
FILENAME:密码文件名文件命规则“orapw”+<实例名>;
PASSWORD:设置INTERNAL/SYS账号的口令;
MAX_USERS:密码文件中能够存放的用户数,对应于许能够SYSDBA/SYSOPER权限登陆数据库的用户数。由于在日后的维护中,若用户数超出了此限制,则须要重建密码文件 get
===============================================================================
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
===============================================================================
Error Code:ORA-32001: write to SPFILE requested but no SPFILE is in use
===============================================================================
SQL> alter system set cluster_database=false scope=spfile; string
若是有如下报错,说明数据库不是用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. ===============================================================================