本帖最后由 驻跸映辉 于 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

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐