本帖最后由 驻跸映辉 于 2013-10-28 15:16 编辑
上个星期花了三天来研究在不同环境中设置wallet文件的方法。
总结一下,有以下三点,请大家确认一下。如果有不正确的理解还请指出。
最后还会有一个问题,如果有知道请帮我解决一下。
分享1:
这个的设置方法网上有很多就不在这里介绍了。
今天主要是想说的关于在一个单机oracle home上有多个实例时如何设置的问题。
为了保证两个实例可以分别使用各自不同密码的wallet文件,一定不要在sqlnet.ora文件指定实例名,
而是直接用“$ORACLE_SID”来代替。这样就可以保证两个实例可以使用不同的加密文件。
例:
ENCRYPTION_WALLET_LOCATION=
(SOURCE=
(METHOD=FILE)
(METHOD_DATA=(DIRECTORY=/home/oracle/wallet/$ORACLE_SID)))
分享2:
关于做成wallet文件的位置。
Oracle的wallet如果不在sqlnet.ora文件中进行设置时,可以自动在oracle_base或者oracle_home中自动做成,
通常情况是在oracle_base中自动做成。这个原因主要是因为wallet做成中会去找操作系统的设置参数。
例如,在Linux用户的.bash_profile中如果不设置oracle_base参数时就会在oracle_home中自动做成。
分享3:
Oracle RAC环境中,数据库启动时,可以使用startup或者srvctl命令。
上面这两个命令在正常启动数据库中,所调用的wallet文件是不同的。
在splplus中使用startup命令启动数据库时,所调用的wallet是oracle_base下的文件。
而使用srvctl命令启动数据库时,所调用的wallet是oracle_home下的文件。
在此就会产生一个问题,如果我们正常配置的wallet在oracle_base下,
但启动数据库时所用的命令是srvctl时,就会产生无法启动wallet的错误。
为了避免上面的错误发生,需用使用下面的方法来回避。
1) 向数据库中添加oracle_base参数
srvctl setenv database –d racdb –T “ORACLE_BASE=/u01/app/oracle”
2) 确认添加信息正常
srvctl getenv database –d racdb –t “ORACLE_BASE”
3) 使用srvctl 命令再启动数据库
srvctl stop database –d racdb
srvctl start database –d racdb
4) wallet启动状态确认
select * from gr$encryption_wallet;
上面的设置完成之后产生了一个问题:
我们通常认识是v$表的数据来自于gv$表,可是,当我完成上面的设定后,
就有下面的数据。
v$表的数据指向oracle_home,而gv$表的数据指向oracle_base。
具体原因,谁能帮我解释一下吗?
SQL> select * from v$encryption_wallet;
WRL_TYPE
------------------------------------------------------------
WRL_PARAMETER
--------------------------------------------------------------------------------
STATUS
------------------------------------------------------
file
/oracle/app/oracle/product/11.2.0.4/admin/racdb/wallet --oracle_home
CLOSED
SQL> select * from gv$encryption_wallet;
INST_ID WRL_TYPE
---------- ------------------------------------------------------------
WRL_PARAMETER
--------------------------------------------------------------------------------
STATUS
------------------------------------------------------
2 file
/oracle/app/oracle/admin/racdb/wallet --oracle_base
OPEN
1 file
/oracle/app/oracle/admin/racdb/wallet
OPEN