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 校验和也完全相同。
对不起,这篇文章暂时关闭评论。