Oracle dgha
-
Upload
louis-liu -
Category
Technology
-
view
1.295 -
download
5
Transcript of Oracle dgha
![Page 1: Oracle dgha](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/1.jpg)
Oracle DGHA
![Page 2: Oracle dgha](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/2.jpg)
介绍内容
DGHA 是什么?现有的 DATAGUARD HA 方案DGHA 的特性DGHA 所需条件DGHA :典型切换场景DGHA :故障转移过程DGHA :典型的时间点DGHA: Failover 机制Oracle RAC one node HA
![Page 3: Oracle dgha](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/3.jpg)
DGHA 是什么 ?
• DGHA: 此脚本针对 oracle dataguard 设计,使用共享存储存放redo,spfile 以及 controlfile 从而达到了切换数据零丢失。
• 目的 : 自动管理主库备库切换以便最少化当机时间
• 由一个的 Perl 主脚本和几个 shell 脚本组成
• 可采用集中管理模式,可以管理多套数据库集群。
• 原有主备库不需要安装额外的软件模块
![Page 4: Oracle dgha](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/4.jpg)
现有的DATAGUARD HA方案
• DataGuard Broker -- 只能 failover 到某个指定实例 --是 oracle 官方方案
• 共享存储模式 -- 需要共享一份数据,需要存储 -- 不好利用 PCIE 等高性能 IO 设备 • Dataguard 模式 -- 简单、不需要存储 -- 可能有数据丢失,可能会破坏整个集群
• 共享 redo/controlfile/spfile 模式 -- 需要小的存储 -- 数据零丢失,不会破坏集群
![Page 5: Oracle dgha](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/5.jpg)
DGHA的特性
• 主服务器的自动监控和故障转移
• 切换数据零丢失
• Power off 功能,避免脑裂
• 详细的日志输出
• 短信和邮件报警功能
![Page 6: Oracle dgha](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/6.jpg)
DGHA所需条件
• SSH 公钥验证 DGHA 管理节点通过 ssh 连接 oracle 服务器,进行验证和一些管理操作。为了使这些过程自动化,推荐使用 SSH 公钥验证密码(也可以使用密码模式进行)
• 操作系统 目前只测试过 Linux 系统
• 主备库需要共享存储来存放 redo、 controlfile、 spfile
• 依赖模块Net::OpenSSHDBD::OracleLog::Dispatch
![Page 7: Oracle dgha](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/7.jpg)
DGHA:典型切换场景
• 监控整个集群:定期 check 主库
• 如果检测到 primary 故障,启动切换
• 检查备库是否达到要求
• 关闭主库,断电
• 用主库的 redo 等替换备库的, recover 备库,然后打开
• 发送 Email failover 报告 , 停止监控
![Page 8: Oracle dgha](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/8.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/9.jpg)
DGHA:故障转移过程
正常的检查过程:
• 主备库为 DG, online redo, spfile和 control 文件存放于共享存储,存储对主备服务器都可见
• 更新主库心跳表,判断主库是否可用
• 如果主库是可 ssh 的,到主库本地登录检查( avoid listener problem or processes exceeded )
![Page 10: Oracle dgha](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/10.jpg)
DGHA:故障转移过程
切换过程:
• 关闭原主库实例, Power off 原主库服务器
• 备份原备库的 online redo和 control 文件;拷贝原主库的online redo和 control file, spfile
• 备库应用原主库 online redo 恢复,保证数据零丢失
• 将备库切换到主库 , 其他备库同步新的主库
![Page 11: Oracle dgha](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/11.jpg)
DGHA:典型的时间点
• 一般情况下完成整个过程需 3-5 分钟
• check 频率一般设置为 10秒
• 检测主库一般为 1 分钟: 3 次 check+ 连接超时 +ssh 超时
• 主库关闭 + 备库检测 +power off 一般为 1-2 分钟
• 备库关闭 + 恢复 + 打开一般为 1-2 分钟
![Page 12: Oracle dgha](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/12.jpg)
主库检测频率主库连续 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](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/13.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060115/557aadd5d8b42a6f378b4da4/html5/thumbnails/14.jpg)
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/
参考资料