Oracle Data Guard
理论知识
,
Data Gurad
,
Stream
是
Oracle
高可用性体系中的三种工具,每个工具即可以独
立应用,也可以相互配合。 他们各自的侧重点不同,适用场景也不同。
它的强项在于解决单点故障和负载均衡,因此
RAC
方案常用于
7*24
的核心系统,
但
RAC
方案中的数据只有一份,尽管可以通过
RAID
等机制可以避免存储故障,但是数据
本身是没有冗余的,容易形成单点故障。
通过冗余数据来提供数据保护,
Data Gurad
通过日志同步机制保证冗余
数据和主数据之前的同步,这种同步可以是实时,延时,同步,异步多种形式。
Data
Gurad
常用于异地容灾和小企业的高可用性方案,虽然可以在
Standby
机器上执行只读查询,
从而分散
Primary
数据库的性能压力,但是
Data Gurad
决不是性能解决方案。
是以
Oracle Advanced Queue
为基础实现的数据同步,提供了多种级别的灵活
配置,并且
Oracle
提供了丰富的
API
等开发支持,
Stream
更适用在应用层面的数据共享。
在
Data Gurad
环境中,至少有两个数据库,一个处于
Open
状态对外提供服务,这个
数据库叫作
Primary Database
。 第二个处于恢复状态,叫作
Standby Database
。 运行时
primary Database
对外提供服务,用户在
Primary Database
上进行操作,操作被记录在联机
日志和归档日志中,这些日志通过网络传递给
Standby Database
。 这个日志会在
Standby
Database
上重演,从而实现
Primary Database
和
Standby Database
的数据同步。
对这一过程进一步的优化设计,使得日志的传递,恢复工作更
加自动化,智能化,并且提供一系列参数和命令简化了
DBA
工作。
如果是可预见因素需要关闭
Primary Database
,比如软硬件升级,可以把
Standby
Database
切换为
Primary Database
继续对外服务,这样即减少了服务停止时间,并且数据不
会丢失。如果异常原因导致
Primary Database
不可用,也可以把
Standby Database
强制切换
为
Primary Database
继续对外服务,这时数据损失成都和配置的数据保护级别有关系。因此
Primary
和
Standby
只是一个角色概念,并不固定在某个数据库中。
一.
Data Guard
架构
架构可以按照功能分成
3
个部分:
) 日志发送(
Redo Send
)
) 日志接收(
Redo Receive
)
) 日志应用(
Redo Apply
)
1.
日志发送(
Redo Send
)
运行过程中,会源源不断地产生
Redo
日志,这些日
志需要发送到
Standy Database
。 这个发送动作可以由
Primary Database
的
LGWR
或者
ARCH
进程完成, 不同的归档目的地可以使用不同的方法,但是对
于一个目的地,只能选用一种方法。 选择哪个进程对数据保护能力和系统可用
性有很大区别。
1.1
使用
ARCH
进程
)
不断产生
Redo Log
,这些日志被
LGWR
进程写到
联机日志。
)当一组联机日志被写满后,会发生日志切换(
Log Switch
),并且会触
发本地归档,本地归档位置是采用
LOG_ARCHIVE_DEST_1='LOCATION=/path'
这种格式定义的。
评论