Linux 环境数据库安装、启动、连接常见错误

≡放荡痞女 提交于 2019-12-06 10:51:32

===============================================================================
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.
===============================================================================

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!