Oracle11g的Data Guard相对Oracle10g来说有不少改进,最引人注目的自然是physical standby可以在恢复的同时读取数据,这个被Oracle称为Active Data Guard的选件是需要单独购买license的。另外10g已经有的可以暂时将physical standby打开为读写模式的特性,在11g进行了加强,使得在读写模式的同时可以继续接收primary传过来的日志,并且换了个新的名字,叫做snapshot standby,作为data guard的第三种standby推出。
我们知道,data guard需要在主备库之间通过redo transport services传递日志,那么就需要redo transport services能够有足够的权限访问备库。在10g之前,这是通过remote passwordfile以sys用户权限实现的,这就需要在主备库使用相同的sys密码。在Oracle11g对于redo transport services的安全性有所增强,可以使用SSL或者passwordfile的方式进行安全验证。
SSL是网络间进行安全连接的工业标准,本文不打算涉及具体的SSL配置,详细的配置方法请参考官方文档:《Oracle Database Advanced Security Administrator’s Guide》。
这里要说一下Oracle11g对于redo transport services在remote passwordfile认证上的一点改进。在Oracle11g中引入了一个新的初始化参数redo_transport_user,该参数可以重新指定redo transport services连接备库的用户,而不一定要使用sys用户,当然,该用户需要有sysoper或者sysdba权限,并且该用户在主备库passwordfile中的密码需要一致。
使用remote passwordfile认证,所有的physical standby都需要使用和主库一样的passwordfile,并且,如果在主库对于sysoper/sysdba权限有变动或者拥有sysdba/sysoper的用户密码变更,都需要重新复制passwordfile到standby中,否则可能导致redo transport services工作不正常。