1、Data Guard组件介绍
Data Guard架构归类为3个主要的组件。
- Data Guard 重做传输服务 重做传输服务用来将主数据库生成的重做数据传输给备用数据库。
- Data Guard 应用服务 应用服务接受和应用由重做传输服务发给备用数据库的重做数据。
- Data Guard 角色管理服务 角色管理服务在切换和故障转移场景中协助更改数据库角色。
如下图配置中都存在这些服务。
2、Data Guard 进程介绍
传输服务和应用服务结合使用,以同步主数据库与其备用数据库。几个Oracle 后台进程在物理备用Data Guard框架中扮演了重要角色。
主数据库上的几个重要的进程:
- LGWR : 日志写入进场将SGA中的日志缓冲区转存到ORL文件。
- LNS :日志写入网络服务(Log Writer Network Service,LNS)从重做缓冲区读取重做(LGWR则将这些信息转储到ORL),然后将重做数据经由网络传给备用站点。LNS进程的主要目的是使LGWR进程不必再担当重做传输角色。
- ARCH :归档进程将ORL文件归档到归档日志文件。ARCH进程多达30个之多,这些ARCH进程也用来满足间隔处理请求。注意,一个ARCH进程担当特殊角色,专用于本地重做日志归档,从来不与备用数据库通信。
以下为主数据库中一段alert日志,完整的记录了三个进程的运转过程:
Fri Jun 28 13:09:43 2013
Thread 1 advanced to log sequence 146 (LGWR switch)
Current log# 1 seq# 146 mem# 0: +DATA/bdspoc/onlinelog/redo_group0101.dbf
Fri Jun 28 13:09:44 2013
LNS: Standby redo logfile selected for thread 1 sequence 146 for destination LOG_ARCHIVE_DEST_2
Fri Jun 28 13:09:46 2013
Archived Log entry 445 added for thread 1 sequence 145 ID 0xaed5d29c dest 1:
备用数据库上的几个重要的进程:
- RFS :RFS(远程文件服务器)进程的主要目标是接受主站点从网络传来的重做数据,然后将网络缓冲区(重做数据)写入备用重做日志(SRL)文件。
- ARCH :备用站点上的归档进程与主站点上的归档进程作用相同,只不过在备用站点上,ARCH进程从SRL文件生成归档日志文件。
- MRP : 托管恢复进程协调管理介质恢复。物理备用始终处于恢复模式。
- LSP : 逻辑备用进程协调SQL Apply。该进程仅运行于逻辑备份配置中。
- PROx :此恢复服务器进程从SRL(在实时应用时)或归档日志文件读取重做数据,然后将其应用于备用数据库。
以下为备用数据库中一段alert日志,记录这几个重要的进程:
RFS[36]: Selected log 12 for thread 2 sequence 117 dbid -1361714017 branch 816281825
Media Recovery Waiting for thread 2 sequence 117 (in transit)
Recovery of Online Redo Log: Thread 2 Group 12 Seq 117 Reading mem 0
Mem# 0: /u01/app/oracle/oradata/bdspoc/group_12.dbf
Fri Jun 28 07:04:30 2013
Archived Log entry 80 added for thread 2 sequence 116 ID 0xaed5d29c dest 1:
Fri Jun 28 08:45:24 2013
3、 SRL(standby redo log)文件介绍
引入SRL文件是为了解决以下两个主要问题:
- 数据保护: 如果没有使用SRL文件,而且与主数据库的连接中断,将无法保护留传入的重做数据---例如,如果主数据库出现故障,然后进行故障转移,那么连接中断时正在发送的数据就会丢失。如果将重做数据写入SRL,故障转移时已经永久保存了重做数据并可供使用。
- 性能目标:当LNS(或Oracle Database 10gR1 之后的ARCH进程)连接到备用数据库时,仅当在备用数据库上的RFS进程创建和初始化了归档日志,LNS/ARCH才能开始发送重做数据。如果日志文件很大(比当今典型的重做日志问价大小500MB或1GB),这会导致暂停时间过长。该时间在日志切换时发生,因而对主数据库的吞吐量影响很大,但在Oracle Database 10gR2和11g中,在ASYNC模式下的LNS不阻止LGWR日志切换,但可能影响备用数据库在日志切换后的落后幅度。
事实证明,随着配置SRL,实时应用(Real-Time Apply,RTA)成为一项与生俱来的优势。
SRL文件与ORL文件基本相同,但SLR文件的逻辑差别是包含仅在备用站点上活动的当前重做数据。虽然主数据库也定义了SRL文件,但他们在主数据库上不活动,而当管理角色更改时启用。需要SRL配置为与ORL文件大小相等,否则无法使用SRL。此外,建议在备用站点上为每个实例配置N+1个SRL文件,这里的N是主站点上的每个线程的重做日志总数。