Oracle 高可用自动化详解
Oracle 高可用自动化详解
适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
高可用自动化减少人工干预[1]:
详细见:Oracle Failover 详解、Oracle 应用连续性详解。
2. 自动化目标
2.1 快速
- 秒级故障切换
- 自动
- 无人工
2.2 可靠
- 一致
- 可预测
- 稳定
2.3 透明
- 应用无感知
- 业务连续
- 用户体验
3. Fast-Start Failover
3.1 启用
DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold=30;
DGMGRL> ENABLE FAST_START FAILOVER;
3.2 Observer
dgmgrl -logfile observer.log sys/pwd@prod
DGMGRL> START OBSERVER;
3.3 行为
- 主库故障
- Observer 检测
- 30 秒阈值
- 自动切换
详细见:Oracle Failover 详解。
4. 服务自动切换
4.1 Preferred/Available
- Preferred 故障
- 服务切到 Available
- 自动
4.2 角色
- Switchover/Failover
- 角色服务
- 自动
4.3 配置
srvctl add service -d prod -s prod_svc \
-preferred prod1,prod2 \
-available prod3 \
-role primary
5. 应用重连
5.1 TAF
- 透明故障切换
- 自动重连
- SELECT 恢复
5.2 FCF
- Fast Connection Failover
- 连接池
- 快速
5.3 AC/TAC
- 事务重试
- 透明
- 连续
详细见:Oracle 应用连续性详解。
6. 自动重启
6.1 实例
- Oracle Restart
- 单实例
- 自动重启
6.2 RAC
- 集群管理
- 实例故障
- 自动重启
6.3 配置
srvctl modify database -d prod -restartpolicy ALWAYS
7. 自动备份
7.1 调度
- RMAN 调度
- 自动
- 定期
7.2 验证
- 自动验证
- 完整性
- 可恢复
7.3 清理
- 过期清理
- 保留
- 空间
8. 自动监控
8.1 脚本
- 定时监控
- 告警
- 自动
8.2 工具
- OEM
- Prometheus
- 自动
8.3 响应
- 自动告警
- 通知
- 处理
9. 自动扩展
9.1 表空间
- AUTOEXTEND
- 自动扩展
- 监控
9.2 ASM
- 添加磁盘
- Rebalance
- 自动
9.3 资源
- CPU
- 内存
- 自动
10. 自动化脚本
10.1 监控
#!/bin/bash
# ha_monitor.sh
# 检查集群
crsctl stat res -t | grep -E 'OFFLINE'
# 检查 Data Guard
sqlplus -s / as sysdba <<EOF
SELECT name, value FROM v$dataguard_stats;
EOF
10.2 告警
#!/bin/bash
# alert.sh
if [ -n "$ALERT" ]; then
mail -s "HA Alert" [email protected] < alert.log
fi
10.3 调度
# crontab
*/5 * * * * /u01/scripts/ha_monitor.sh
*/10 * * * * /u01/scripts/ha_alert.sh
11. OEM 自动化
11.1 监控
- 自动发现
- 监控
- 告警
11.2 作业
- 自动备份
- 自动维护
- 调度
11.3 修正
- 自动修正
- 告警响应
- 处理
12. 应用场景
12.1 节点故障
- RAC 切换
- 服务迁移
- 自动
12.2 数据库故障
- Fast-Start Failover
- 自动切换
- 秒级
12.3 维护
- 滚动升级
- 自动
- 零停机
13. 限制
13.1 复杂
- 自动化复杂
- 配置
- 测试
13.2 误判
- 网络抖动
- 误切换
- 评估
13.3 控制
- 平衡
- 人工干预
- 控制
14. 常见问题
14.1 误切换
- 网络抖动
- 阈值
- 调整
14.2 不切换
- 条件不满足
- 检查
- 修复
14.3 失败
- 脚本错误
- 测试
- 修复
15. 最佳实践
- Fast-Start:自动
- Observer:第三地
- 服务:自动切换
- AC/TAC:应用
- 监控:自动
- 告警:阈值
- 测试:充分
- 文档:流程
- 演练:故障
- 改进:持续
16. 参考资料
[1] Oracle Data Guard Broker 19c, “Fast-Start Failover” https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/