1.Data Guard 入门指南

一个Data Guard的配置需要一个primary Database和一个或多个(最多9个)Standby Database。

1.1 Standby Database Types

1.1.1 physical standby database 

Data Guard维护一个物理Standby Database执行Redo Apply,当它无法执行恢复的时候,物理Standby Database能够以read-only模式或者Flashback可用时打开临时read/write模式。

  • Redo Apply

    物理Standby Database通过Redo Apply来保持与Primary Database的一致性,通过Oracle 的恢复机制,应用归档文件或Standby Redologs文件中的Redo数据。恢复操作属于块对块的作用。如果正在执行REDO应用的操作,Oracle数据库就不能被OPEN。

  • Open read-only

    以Read Only模式打开后,可以在Standby Database执行查询或备份等操作(以减轻Primary Database压力)。此时Standby Database仍然能够继续接收Primary Database发送的Redo数据,不过并不会应用,直到Standby Database重新恢复REDO应用

    在Redo模式下不能执行Redo应用,而Redo应用时数据库肯定处于为打开状态。如果需要的话,可以在两者间切换。

  • Open read/write

    如果以read /write模式打开,那么Standby Database将暂停从Primary Database接收Redo数据,并且暂时失去灾难保护功能。

    如果需要临时调试一些数据,但又不方便在主数据库中进行,那么可以临时将Standby Database设置为READ/WRITE模式,操作之后将数据库闪回到操作之前的状态。(此时若没有启动闪回,那么就回不到READ/WRITE前的状态了)

Benefits of a Physical Standby Database

  • Disaster recovery and high availability

  • Data protection

  • Reduction in primary database workload

  • Performance

1.1.2 Logical Standby Databases

逻辑Standby Database通过SQL应用的方式应用REDO数据,因此逻辑Standby的物理文件结构,设置数据的逻辑结构都可以与Primary不同。

Benefits of a Logical Standby Database

  • Efficient use of standby hardware resources

  • Reduction in primary database workload

2.Standby Database Directory Structure Considerations

从优化配置的角度考虑,应该将Primary Database和各个Standby Database的目录结构保持一致,但是有时并不能保证主从路径完全一致,如由于服务器配置的原因,无法提供相同的磁盘路径,甚至某些测试平台Primary Database和Standby Database在同一台服务器上,这种情况下就更不可能保持路径相同了。

下面显示了三种常见的Primary Database和Standby Database目录结构:

Oracle Data Guard(2)_ORACLE、Data Guard

Primary1和Standby1在相同的服务器上,目录结构不同
Primary1和Standby2在不同的服务器上,目录结构相同
Primary1和Standby3在不同的服务器上,目录结构不同

3.Online Redo Logs, Archived Redo Logs, and Standby Redo Logs

  • Online redo logs

在 primary database and logical standby database 每一个数据库实例都会有在线重做日志文件来保证在实例失败时进行恢复。Physical standby databases 不使用在线重做日志,因为Physical standby databases 不使用READ/WRITE模式进行I/O操作。在状态切换的时候不会产生新的redo data。

  • Archived redo logs

archived redo log 是保持Standby Database和Primary Database中的事务一致所必需的。

查看数据库是否处于归档模式:

SQL> select LOG_MODE from v$database;

LOG_MODE
------------
ARCHIVELOG

或者

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app/myarch/orcl/
Oldest online log sequence     25
Next log sequence to archive   27
Current log sequence           27
SQL>

  • Standby Redo Logs   

下列情况下Standby Redo Logs是必须的:

1)The maximum protection and maximum availability levels of data protection 

2)Real-time apply

3)Cascaded destinations 

standby redo log 的一些特点:

1)Standby redo log files 能够存在于裸设备,在RAC中这很重要

2)Standby redo log files 可以使用多个成员多路复用,提高可靠性

3)在故障转移期间,Data Guard可以standby redo log files 可以比 archived log files 更好的恢复和应用redo data

4)ARCn或LGWR能够直接从Primary Database上将redo data传输到远端standby redo log files,可能不再需要注册部分归档日志文件

本文章参照于Oracle10g官方文档