操作系统 : AIX 5.0L
数据库 : oracle 10G RAC
密码文件 : 非共享
节点一实例名: bjoadb1
节点二实例名: bjoadb2
问题描述:
1. 用户由于业务需要,需给system授予sysdba的权限.但在使用grant sysdba to system的时候报正如错误:
ERROR at line 1: ORA-01991: invalid password file '
2. sys用户远程连接报权限不足的错误.但在本地通过conn / as sysdba能正常登录.
问题解决:
因为sysdba的权限不是记录在数据库中的,而是记录在口令文件中的。所以在给用户授sysdba权限时需要写口令文件。考虑到可能是口令文件两边不一致造在的,故问题解决步骤如下:
1. 备份原口令文件,分别在两个节点上的口令文件通过mv命令备份。
在实例bjoadb1上dbs目录下执行:mv orapwbjoadb1 orapwbjoadb1.bak
在实例bjoadb2上dbs目录下执行:mv orapwbjoadb2 orapwbjoadb2.bak
2. 重建口令文件.
在实例bjoadb1上执行:orapwd file=’/oracle/app/oracle/product/10.2.0/db_1/dbs/orapwbjoadb1’ password=oracle entries=5
在实例bjoadb2上执行:orapwd file=’/oracle/app/oracle/product/10.2.0/db_1/dbs/orapwbjoadb2’ password=oracle entries=5
3. 授权。
Sqlplus / as sysdba
Grant sysdba to system;
授权成功。
4.测试。
在sqlplus远程连接:
Conn sys/oracle@bjyc as sysdba
连接成功
Conn system/oracle@bjyc as sysdba
连接成功
问题补充:
问题的解决思路非常清楚.但在实际实施过程中有一个问题要特别注意,要特别注意口令文件的格式.因为是在RAC环境中,通过grant sysdba to username要改写口令文件.这时候如果口令文件格式不规范,就会报错.
在windows 下,口令文件的格式为:pwd+oracle_sid.ora
在linux下,口令文件的格式为:orapw+oracle_sid,没有扩展名.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/226801/viewspace-422909/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/226801/viewspace-422909/