ORA-01031的解决方法

[ZT]ORA-01031的解决方法

原文出自:http://www.chinaunix.net/jh/19/132866.html

ORA-01031: insufficient privileges
#############################################
#
# NAME: troubleshoot connect internal.txt
#
# DESCRIPTION:
#  connect internal
# connect / as sysdba 要口令问题:
# refer (METALINK,ORACLEDOC),
# metalink search words(connect internal)
# NOTE:
#
# modifiy (MM/DD/YY)  AUTHOR
# 05/03/03 ZORROL  
#############################################
————————————————————
1.检查sqlnet.ora 文件.
   sqlnet.ora 文件损坏或格式不对可以导致出现该问题。
   sqlnet.ora 文件可能存放路径为:$TNS_ADMIN/sqlnet.ora 
   如果没有设置$TNS_ADMIN默认在$ORACLE_HOME/network/admin/sqlnet.ora 或 $HOME/sqlnet.ora      
   (1).可以从别的机器拷贝一个文件过来,注意备份原来的sqlnet.ora。
        ---检查sqlnet.ora 文件内容 
   (2).检查SQLNET.AUTHENTICATION_SERVICES  
        如果没有使用dblink.检查该行并设置
        SQLNET.AUTHENTICATION_SERVICES = (BEQ,NONE) 
   (3).SQLNET.CRYPTO_SEED   
        在unix 下不需要该参数。如果存在该行,注释掉或删掉 
   (4).AUTOMATIC_IPC  
        如果该参数为 ON,将强制使用"TWO_TASK" 连接
       最好设置为OFF: AUTOMATIC_IPC = OFF 


2.检查相关文件的权限配置


找到$TNS_ADMIN         .ascii  "dba\0"    
如果没有添加目前的操作系统用户到dba 组,或则手工编辑更改config.c并且:%relink oracle


(6).所需要的文件系统是否正确mount
%mount


(7) 目前身份是否是"root" 并且操作系统环境变量 "USER", "USERNAME", and "LOGNAME" 没有设置成"root". 
root用户是特例,除非当前组是dba 组,否则不能connect internal.
把root用户当前组改为dba组:
# newgrp dba
-----最好不要以root管理数据库;


(8).检查"/etc/group" :
是否存在重复行
% grep dba /etc/group       
dba::1010:
dba::1100:  
如果有,删掉没有用的。


(9).确信停掉的instance没有占用内存资源
比如:ipcs -b            
T         ID       KEY        MODE    OWNER      GROUP   SEGSZ        
Shared Memory:           
m          0   0x50000ffe --rw-r--r-- root       root         68           
m       1601   0x0eedcdb8 --rw-r----- oracle      dba    4530176        
可以看到1601 被oracle 使用,删掉.
-------注意是否启动了多个instance
 % ipcrm -m 1601


(10).如果同时还有ora-12705 错误检查一下环境变量:
"ORA_NLS", "ORA_NLS32", "ORA_NLS33" ,"NLS_LANG".

     
(11).检查 "ORACLE_HOME" and "LD_LIBRARY_PATH 环境变量:
$ LD_LIBRARY_PATH=$ORACLE_HOME/lib     
$ export LD_LIBRARY_PATH      
$ ORACLE_HOME=/u01/app/oracle/product/8.0.4     
$ export ORACLE_HOME 


(12).当前的instance 所再的磁盘是否有足够的磁盘空间
      df -k
(13).用户对/etc/passwd 是否有读权限。

 
(14).如果使用mts 方式,确信你的连接使用dedicade server 方式。

 
(15).安装ORACLE所需操作系统补丁是否打全。ORACLE 是否已经补丁到最新

你可能感兴趣的:(经验收集)