Data Guard的一些概念

2018-06-22

DATAGUARD是通过建立一个PRIMARY和STANDBY组来确立其参照关系。STANDBY一旦创建,DATAGUARD就会通过将主数据库(PRIMARY)的REDO传递给STANDBY数据库,然后在STANDBY中应用REDO实现数据库的同步。

1、有两种类型的STANDBY:物理STANDBY和逻辑STANDBY
物理STANDBY可能的模式:只读模式(OPEN READONLY)和恢复模式(MANANGED RECOVERY)

2、DATAGUARD包含三个服务(日志传输、日志应用、角色转换)
3、DATAGUARD的几种保护模式:最大保护maximum protection,最大可用maximum availability,最大性能maximum performance
默认 dataguard处于最大性能模式MAXIMUM PERFORMANCE,这个模式下,主库的重做日志只有在归档之后才会传输到备库上,然后备库才会应用日志。
select name, open_mode, database_role, protection_mode from v$database;

SQL>ALTER DATABASE SET STANDBY DATABASE TO maximize protection;
SQL>ALTER DATABASE SET STANDBY DATABASE TO maximize performance;
SQL>ALTER DATABASE SET STANDBY DATABASE TO maximize availability;缺省的保护模式
Oracle推荐最大可用模式使用LGWR ASYNC(异步)NOAFFIRM模式传输。实际的生产库推荐这种模式。改用最大可用模式(MAXIMUM AVAILABILITY)。

备库
select database_role,PROTECTION_MODE,PROTECTION_LEVEL from v$database;
DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL
---------------- -------------------- --------------------
PHYSICAL STANDBY MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY
主库
DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL
---------------- -------------------- --------------------
PRIMARY MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

修改
LOG_ARCHIVE_DEST_2='SERVICE=std LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=std'
有些情况下,你可能需要在归档日志和应用日志之间有个时间间隔,此时可以通过在STANDBY上指定参数log_archive_dest_n中指定delay=minutes属性。

4、RFS(日志接收)进程

5、主库新创建数据文件
show parameter standby_file_management
AUTO让standby也自动创建数据文件。

6、每分钟主库会询问standby是否有gap,该行为被称为heartbeat.
select * from V$ARCHIVE_GAP;,如果发现有GAP,则可以从主库上将日志文件拷贝到standby,然后将相关文件注册到standby,具体方法是:alter database register logfile‘文件名′。

7、当然也可以通过设置参数fal_server,fal_client,让日志应用服务自动处理gap问题。
show parameter fal_

8、对于STANDBY日志应用服务,下面几个视图有助于监控:
v$managed_standby,
v$archived_dest status,
v$archiveddest_status,
v$archived_log,
v$log_status,
v$log_status,
v$dataguard_status

分类:数据库 | 标签: |

相关日志

评论被关闭!