oracle RAC的环境在生产环境中已经普遍存在,也许有很多朋友在client端用拥有sysdba权限的帐号logon数据库的时候会报错,因为我们通常在tnsnames.ora都应用load balance相关的参数,我们都知道拥有sysdba权限的用户是被记录在密码文件中的,而非数据库中,所以当我们用grant sysdba to username的时候,会改写当前实例的密码文件,如果我们用raw device来作为多个实例共享的密码文件时,会发现不能授权成功,但是我们login到非授权实例时,会提示我们权限不足。我们如何在RAC环境中只使用一个密码文件来控制权限呢。下面有一个简单的过程提供给大家参考。这种方法只能在非windows平台上便用。
SQL> connect sys@rac1 as sysdba
Enter password: ******
Connected.
SQL> create user test identified by test;
Grant succeeded.
SQL>
================= NODE 1
[oracle@rac1 ~]$ ls -l /dev/raw/raw3
crw-r----- 1 oracle dba 162, 3 Mar 21 08:51 /dev/raw/raw3
[oracle@rac1 ~]$ cd $ORACLE_HOME/dbs
[oracle@rac1 dbs]$ dd if=orapwdrac1 of=/dev/raw/raw3
7+0 records in
7+0 records out
[oracle@rac1 dbs]$ mv orapwdrac1 orapwrac1.bak
[oracle@rac1 dbs]$ ln -s /dev/raw/raw3 orapwdrac1
================= NODE 2
[oracle@rac2 ~]$ cd $ORACLE_HOME/dbs
[oracle@rac2 dbs]$ mv orapwdrac2 orapwdrac2.bak
[oracle@rac2 dbs]$ ln -s /dev/raw/raw3 orapwdrac2
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29987/viewspace-51999/ ,如需转载,请注明出处,否则将追究法律责任。