当前位置: 首页 > java >正文

Oracle ADG 日常巡检指南


一、基础状态检查
  1. 数据库角色与模式

    SELECT db_unique_name, open_mode, database_role, switchover_status 
    FROM v$database;
    

    预期状态

    • 主库:OPEN_MODE=READ WRITE, DATABASE_ROLE=PRIMARY
    • 备库:OPEN_MODE=READ ONLY WITH APPLY, DATABASE_ROLE=PHYSICAL STANDBY
  2. ADG配置有效性

    SHOW PARAMETER log_archive_dest_2;        -- 检查归档目标状态
    SHOW PARAMETER log_archive_config;        -- 检查DG配置
    

二、日志同步健康检查
  1. 主备库归档一致性

    -- 主备库均执行:
    SELECT THREAD#, MAX(SEQUENCE#) 
    FROM v$archived_log 
    WHERE resetlogs_change# = (SELECT resetlogs_change# FROM v$database_incarnation WHERE status='CURRENT') 
    GROUP BY THREAD#;
    

    要求:主备库的MAX(SEQUENCE#)差值应≤1(允许轻微延迟)。

  2. 检查GAP缺口

    -- 备库执行:
    SELECT * FROM v$archive_gap;  -- 有返回结果说明存在GAP
    

    处理方案

    • 若返回THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE#,需从主库拷贝缺失归档到备库并注册:
      ALTER DATABASE REGISTER PHYSICAL LOGFILE '/path/to/archive_log_seq90.arc';
      
  3. 传输与应用延迟监控

    -- 备库执行:
    SELECT name, value, time_computed 
    FROM v$dataguard_stats 
    WHERE name IN ('transport lag', 'apply lag');
    

    阈值建议transport lag(传输延迟)与apply lag(应用延迟)均需 ≤ 5分钟。


三、进程与错误监控
  1. 关键进程状态

    SELECT process, status, sequence#, thread# 
    FROM v$managed_standby;
    

    关键进程说明

    进程主库角色备库角色正常状态
    LNS存在不存在WRITING
    MRP0不存在存在APPLYING_LOG

    异常状态处理

    • MRP0状态为WAIT_FOR_GAP:检查是否存在归档缺口(参考第二节)。
    • MRP0状态为WAIT_FOR_LOG:主库日志传输异常。
  2. 归档传输错误

    -- 主库执行:
    SELECT dest_name, status, error 
    FROM v$archive_dest_status 
    WHERE dest_id = 2;  -- 对应备库的归档目标
    

    严重错误STATUS=ERRORERROR字段非空(如ORA-12170网络超时)。


四、常见问题定位
  1. 未应用日志检查(备库)

    SELECT thread#, COUNT(*) 
    FROM v$archived_log 
    WHERE applied='NO' 
    GROUP BY thread#;
    

    处理:若积压持续增长,检查MRP0进程是否停滞。

  2. 日志传输阻塞(主库)

    -- 主库检查未发送日志量:
    WITH arch AS (SELECT thread#, MAX(sequence#) arch_seq FROM gv$managed_standby WHERE process='ARCH' GROUP BY thread#),lns  AS (SELECT thread#, MAX(sequence#) lns_seq  FROM gv$managed_standby WHERE process='LNS'  GROUP BY thread#)
    SELECT a.thread#, l.lns_seq - a.arch_seq AS unsent_logs
    FROM arch a, lns l
    WHERE a.thread# = l.thread#;
    

    阈值unsent_logs > 10 需排查网络或存储性能。

  3. 归档删除策略
    重要原则

    • 禁止在备库强制删除未应用的归档(DELETE FORCE)!
    • 若备库空间不足:
      -- 主库临时停止传输(缓解压力):
      ALTER SYSTEM SET log_archive_dest_state_2=DEFER; 
      -- 空间释放后恢复:
      ALTER SYSTEM SET log_archive_dest_state_2=ENABLE;
      

五、巡检总结清单
类别检查项频率异常处理
基础状态数据库角色与模式每日检查switchover_status
日志同步归档序列一致性每小时补注册缺失归档
日志同步传输与应用延迟每小时监控v$dataguard_stats
进程健康LNS/MRP0进程状态每小时重启进程或排查GAP
错误监控归档传输错误每日检查网络/存储日志
空间管理归档未应用量每日避免强制删除,主库暂断传输

关键提示

  • 主备切换(Switchover/Failover)后必须重新验证所有巡检项。
  • 发现UNRESOLVABLE GAP需立即人工干预。
  • 备库的_system_trig_enabled参数应为FALSE(避免触发器重复执行)。

附:进程状态速查表

MRP0状态含义紧急度
APPLYING_LOG正常应用日志正常
WAIT_FOR_GAP等待缺失日志警告
WAIT_FOR_LOG等待新日志传输警告
NOT ALLOWED配置错误/角色异常严重

http://www.xdnf.cn/news/13422.html

相关文章:

  • 由编译osgEarth源码引发的一系列问题(三)利用vcpkg安装osg与OSGEarth
  • JavaScript跨域全面指南:从原理到最佳实践
  • RV1126+OPENCV在视频中添加LOGO图像
  • JVM面试基础篇
  • `dispatch_source_t` 计时器 vs `NSTimer`:核心差异一览
  • 【实习总结】C++ 通过pugi::xml库对xml文件进行操作
  • 如何正确的配置eureka server集群
  • 【QT】窗口详解
  • Linux进程管理:创建,终止,等待
  • 智能机器人从零构建陪跑计划
  • PyTorch:让深度学习像搭积木一样简单有趣!
  • Vue实现图像对比组件:打造交互式图片比较工具
  • 深度学习:PyTorch简介
  • 【python】基于pycharm的海康相机SDK二次开发
  • 计算机网络:认证和授权 DNS 域名解析过程(如何转换为ip地址) http无状态 5**服务端错误相关的响应状态码 tcp某次握手丢失会有什么现象?
  • 浅谈Linux中一次系统调用的执行过程
  • 网络中基础的三张表(mac、arp、route)
  • 开源、免费、美观的 Vue 后台管理系统模板
  • 《Ansys SIPI仿真技术笔记》 E-desk IBIS模型导入
  • 架空线路智能监控系统的应用与优势剖析
  • ESP32 004 Thonny 配置简单的轻量级MicroPython开发IDE
  • 深入解析MySQL Join算法原理与性能优化实战指南
  • Flutter 核心概念:深入理解 StatelessWidget 与 StatefulWidget
  • 数据集-目标检测系列- 狮子 数据集 lion >> DataBall
  • matlab下载(matlab R2024b)安装教程(2025最新版安装方式)
  • 极线约束理解
  • 从源码角度了解Lucene(倒排索引存储结构)
  • day28 类的定义和方法
  • 26-Oracle 23 ai Automatic Transaction Rollback(行锁终结者)
  • [源码分享]电视盒子应用商店,机顶盒应用商店,TV应用商店,应用市场,前后端源码全开源