oracle dgha

14
Oracle DGHA

Upload: louis-liu

Post on 12-Jun-2015

1.296 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Oracle dgha

Oracle DGHA

Page 2: Oracle dgha

介绍内容

DGHA 是什么?现有的 DATAGUARD HA 方案DGHA 的特性DGHA 所需条件DGHA :典型切换场景DGHA :故障转移过程DGHA :典型的时间点DGHA: Failover 机制Oracle RAC one node HA

Page 3: Oracle dgha

DGHA 是什么 ?

• DGHA: 此脚本针对 oracle dataguard 设计,使用共享存储存放redo,spfile 以及 controlfile 从而达到了切换数据零丢失。

• 目的 : 自动管理主库备库切换以便最少化当机时间

• 由一个的 Perl 主脚本和几个 shell 脚本组成

• 可采用集中管理模式,可以管理多套数据库集群。

• 原有主备库不需要安装额外的软件模块

Page 4: Oracle dgha

现有的DATAGUARD HA方案

• DataGuard Broker -- 只能 failover 到某个指定实例 --是 oracle 官方方案

• 共享存储模式 -- 需要共享一份数据,需要存储 -- 不好利用 PCIE 等高性能 IO 设备 • Dataguard 模式 -- 简单、不需要存储 -- 可能有数据丢失,可能会破坏整个集群

• 共享 redo/controlfile/spfile 模式 -- 需要小的存储 -- 数据零丢失,不会破坏集群

Page 5: Oracle dgha

DGHA的特性

• 主服务器的自动监控和故障转移

• 切换数据零丢失

• Power off 功能,避免脑裂

• 详细的日志输出

• 短信和邮件报警功能

Page 6: Oracle dgha

DGHA所需条件

• SSH 公钥验证 DGHA 管理节点通过 ssh 连接 oracle 服务器,进行验证和一些管理操作。为了使这些过程自动化,推荐使用 SSH 公钥验证密码(也可以使用密码模式进行)

• 操作系统 目前只测试过 Linux 系统

• 主备库需要共享存储来存放 redo、 controlfile、 spfile

• 依赖模块Net::OpenSSHDBD::OracleLog::Dispatch

Page 7: Oracle dgha

DGHA:典型切换场景

• 监控整个集群:定期 check 主库

• 如果检测到 primary 故障,启动切换

• 检查备库是否达到要求

• 关闭主库,断电

• 用主库的 redo 等替换备库的, recover 备库,然后打开

• 发送 Email failover 报告 , 停止监控

Page 8: Oracle dgha

DGHA:故障转移过程

DGHA Monitor

Primary Standby

Read onl y挂载成sharedB

sharedA

sharedB

Read wri te

Read wri te挂载成sharedA

Read onl y

Update check

A 主备库为DG,redo, spfi l e和control文件存 放于共享存储,存储对主备服务器都可见 B 更新主库心跳表,判断主库是否可用

DGHA Monitor

Primary Primary

Read onl y挂载成sharedB

sharedA

sharedB

Read wri te挂载成sharedA

A 关闭原主库实例,Power off 原主库服务器 B 备份原备库的onl i ne redo和control文件;拷贝原主库的onl i ne redo和control fi l e C 备库应用原主库onl i ne redo恢复,保证数据零丢失 D 将备库切换到主库,其他备库同步新的主库

Page 9: Oracle dgha

DGHA:故障转移过程

正常的检查过程:

• 主备库为 DG, online redo, spfile和 control 文件存放于共享存储,存储对主备服务器都可见

• 更新主库心跳表,判断主库是否可用

• 如果主库是可 ssh 的,到主库本地登录检查( avoid listener problem or processes exceeded )

Page 10: Oracle dgha

DGHA:故障转移过程

切换过程:

• 关闭原主库实例, Power off 原主库服务器

• 备份原备库的 online redo和 control 文件;拷贝原主库的online redo和 control file, spfile

• 备库应用原主库 online redo 恢复,保证数据零丢失

• 将备库切换到主库 , 其他备库同步新的主库

Page 11: Oracle dgha

DGHA:典型的时间点

• 一般情况下完成整个过程需 3-5 分钟

• check 频率一般设置为 10秒

• 检测主库一般为 1 分钟: 3 次 check+ 连接超时 +ssh 超时

• 主库关闭 + 备库检测 +power off 一般为 1-2 分钟

• 备库关闭 + 恢复 + 打开一般为 1-2 分钟

Page 12: Oracle dgha

主库检测频率主库连续 3 次,每次间隔一定时间(比如 10s ) 主库检测类型长连接 UPDATE HACHECK SET CHECK_TIME=SYSDATE本地 UPDATE HACHECK2 SET CHECK_TIME=SYSDATE

备库 lag检测最大延迟 3 分钟

本地检测最大重试次数( for maximum number of processes (xxx) exceeded)最大次数 8 次

Power off 状态检测最大次数 8 次

Ssh超时时间每次为 5 秒,重试 3 次

DGHA: Failover机制

Page 13: Oracle dgha

Oracle RAC one node HA

Oracle RAC One Node is integrated with Oracle Clusterware which monitors the health of the database and ensures database service availability. In the event of a failure, Oracle RAC One Node will detect the failure and either restart the failed database, or fail it over to another server.

Page 14: Oracle dgha

1 http://search.cpan.org/~salva/Net-OpenSSH-0.60/lib/Net/OpenSSH.pm2 MHA mha4mysql-manager-0.55\samples\scripts\power_manager.pl3 https://code.google.com/p/mysql-master-ha/

参考资料