时间:2021-07-01 10:21:17 帮助过:22人阅读
在Oracle 11g之前,物理备库(physical Standby)在应用redo的时候,是不可以打开的,只可以mount。从11g开始,在应用redo的时候
在Oracle 11g之前,物理备库(physical Standby)在应用redo的时候,是不可以打开的,只可以mount。从11g开始,在应用redo的时候,物理备库可以处于read-only模式,这就称为Active Data Guard 。通过Active Data Guard,可以在物理备库进行查询或者导出数据,从而减少对主库的访问和压力。
Active Data Guard适用于一些只读性的应用,比如,有的应用程序只是查询数据,进行一些报表业务,不会产生redo数据,这些应用可以转移到备库上,,避免对主库资源的争用。
Oracle Active Data Guard 是Oracle Database Enterprise Edition的一个功能,需要额外付费来使用这个功能。
如需启用Active Data Guard, 只需要将备库以 read-only 模式打开,而且执行 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE语句就可以。需要注意的是:主库和备库的COMPATIBLE 参数至少要设置为11.0.0。
如果已经启用了Active Data Guard,备库的V$DATABASE会显示为"READ ONLY WITH APPLY':
SQL> SELECT open_mode FROM V$DATABASE;
OPEN_MODE
--------------------
READ ONLY WITH APPLY
。
为了保证备库数据的实时性,需要在备库启动real-time apply:
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;
下面的功能是允许在read-only的数据库上执行的:
Issue SELECT statements, including queries that require multiple sorts that leverage TEMP
segments
Use ALTER SESSION and ALTER SYSTEM statements
Use SET ROLE
Call stored procedures
Use database links (dblinks) to write to remote databases
Use stored procedures to call remote procedures via dblinks
Use SET TRANSACTION READ ONLY for transaction level read consistency
Issue complex queries (such as grouping SET queries and WITH CLAUSE queries)
下面的功能是不允许在read-only的数据库上执行的:
Any DMLs (excluding simple SELECT statements) or DDLs
Query accessing local sequences
DMLs to local temporary tables
比较典型的Active Data Guard 分为:
单实例的物理主库和单实例的物理备库
主库为Oracle Real Application Clusters (Oracle RAC) ,备库为单实例
RAC主库和RAC备库
Oracle Data Guard 的配置方法,,请参考下面的文档:
* 单实例的物理主库和单实例的物理备库:
* 主库为Oracle Real Application Clusters (Oracle RAC) ,备库为单实例:
* RAC 主库和RAC 备库:
关于Active Data Guard的最佳实践经验,请参考文档:
关于Oracle Maximum Availability Architecture Best Practices的更多文档,请参考: