首页 » Exadata, ORACLE [C]系列, ORACLE 9i-23c » Oracle 12cR2 : DataGuard 、 ZDLRA、REDO_TRANSPORT_USERT

Oracle 12cR2 : DataGuard 、 ZDLRA、REDO_TRANSPORT_USERT

在 DataGuard 环境中,默认情况下,当使用密码文件时,SYS 用户的密码用于验证重做传输会话。但出于安全原因,您可能不希望仅将如此高特权的用户用于重做传输。为了克服这个问题,Oracle 实现了 REDO_TRANSPORT_USER 初始化参数。

REDO_TRANSPORT_USER是在DATAGUARD环境中用于 redo transport 远程密码认证指定数据库用户名, 指定的用户必须有SYSOPER角色,且本地和远程数据库的密码必须相同才能创建Redo transport 会话,并且该参数的值区分大小写,必须与 V$PWFILE_USERS 视图中 USERNAME 列的值完全匹配。默认该参数没有值,当该参数为空时表示使用SYS用户做为验证,也就是过去DataGuard常用的配置(使用“SYS”做为 Log Transport services的用户).

参数在11.1版本时引入,通常很少使用,但是对于使用ORACLE备份一体机(ZDLRA)时,需要配置一个Virtual Private Catalog (VPC)用户,并且REDO_TRANSPORT_USER指定此用户,这会导致其它的日志传输中断改为使用REDO_TRANSPORT_USER用户,对于已有Dataguard环境的数据库,为了避免这个问题需要在Primary创建相同的VPC用户,并且授予create session和SYSOER,SYSDG(12c)。

SQL> create user ravpc1 identified by ratest;
User created.

SQL> grant sysoper,create session to ravpc1;
Grant succeeded.

然后把密码文件从PRIMARY库复制到所有Standby数据库,在主库和备库同时检查密码文件 ,并重置主库的arch dest状态。

SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM CON_ID
SYS TRUE TRUE FALSE FALSE FALSE FALSE 0
SYSDG FALSE FALSE FALSE FALSE TRUE FALSE 0
SYSBACKUP FALSE FALSE FALSE TRUE FALSE FALSE 0
SYSKM FALSE FALSE FALSE FALSE FALSE TRUE 0
RAVPC1 FALSE TRUE FALSE FALSE FALSE FALSE 0

SQL> alter system set log_archive_dest_state_X=defer scope=both sid='*'
SQL> alter system set log_archive_dest_state_X=enable scope=both sid='*'

这样才可以保证有DataGuard和 ZDLRA的共存。

如果主库更改此密码,因为 12cR2 新的“自动密码传播到Standby”功能,备库会自动同时更新, 使用操作系统命令ls和md5sum可以验证它们具有相同的时间戳,甚至 MD5 校验和也完全相同。

打赏

,

对不起,这篇文章暂时关闭评论。