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

【真实经验分享】PDB未按预期时间执行自动统计信息收集问题分析

问题描述

某客户发现一个问题,查看 dba_optstat_operations 发现2026-02-09 为周一但是 gather_database_stats (auto) 在2026-02-09 (02时,06时,10时,14时) 白天执行了4次自动统计信息收集

查看Scheduler windows显示周一的执行窗口开始时间为22时,总时长为4h,与我们查出来的实际执行时间不相符

下面我们将针对两个疑点进行解答:
问题1:为何每隔4小时多次运行自动统计信息收集?
问题2:2/9 为周一,按照Scheduler windows结果,周一的执行时间应为22时,为何在白天时间段运行?

分析:为何每隔4小时多次运行自动统计信息收集?

参考19c官方手册:
https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/managing-automated-database-maintenance-tasks.html#GUID-BF691BB0-DC60-4829-A790-4C5BEB281FF1

官方手册里提到:如果维护窗口时长很长,则除Automatic SQL Tuning Advisor以外的所有自动维护任务都会每隔四小时重新开始运行。此功能可以确保维护任务定期运行,无论窗口的大小如何。
这里说明了为何会出现每4h执行一次统计信息收集

分析:2/9 为周一,按照Scheduler windows结果,周一的执行时间应为22时,为何在白天时间段运行?

参考官方文档:KB140350

官方文档中提到,由于在12c,18c,19c 中使用DBCA通用模板创建数据库时,CDB与PDB中Scheduler默认时区不同。
使用DBCA通用模板建库时无论CDB的Scheduler默认时区如何,在19c中PDB的Scheduler 默认时区为PST8PDT,这是Oracle预期行为。

查看环境中CDB$ROOT与PDB的Scheduler 默认时区果然不同

PRC时区与PST8PDT时区在非夏令时期间相差16h。
通过 dba_autotask_job_history 中的WINDOW_STATR_TIME 与 JOB_START_TIME的差异也可以看出 UTC 的2月11日14时对应的PST8PDT 2月10日 22时,两个时间确实相差16h

通过这个结论换算一下 UTC的2月9日2时、6时、10时、14时实际为PST8PDT的2月8日10时、14时、16时、20时,2月8日为周天,按照预期是在白天执行的自动统计信息收集,再结合前面得出的每4h跑一次scheduler的结论,换算后的执行时间完全符合预期

问题结论

问题1:为何每隔4小时多次运行自动统计信息收集?
解答:参考19c官方手册,如果维护窗口时长很长,则除Automatic SQL Tuning Advisor以外的所有自动维护任务都会每隔四小时重新开始运行。此为Oracle的预期行为。

问题2:2/9 为周一,按照Scheduler windows结果,周一的执行时间应为22时,为何在白天时间段运行?
解答:参考官方文档KB140350,2月9日周一白天运行自动统计信息收集任务的原因实际为CDB$ROOT Scheduler默认时区(PRC)比PDB Scheduler默认时区(PST8PDT)快16h导致的差异,PDB层面是按照PST8PDT的Scheduler时区执行的自动调度任务,也就是按照PST8PDT时区2月8日6时的周日调度任务,实际在北京时间2月8日22时开始执行,结合前一个结论间隔4小时运行一次,也会在2月9日2时、6时、10时、14时再调度一次。

解决方案

1.调整PDB的Scheduler默认时区与CDB$ROOT一致,若对生产无影响,不建议调整,以避免产生其他未知的问题

参考官方文档 KB139437

在PDB中执行

--查看PDB当前scheduler时区与时间戳selectdbms_scheduler.stimefromdual;--在PDB中修改Scheduler默认时区与CDB$ROOT一致execDBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE('default_timezone','PRC');--再次PDB查看当前scheduler时区与时间戳selectdbms_scheduler.stimefromdual;select*fromdba_scheduler_global_attributewhereATTRIBUTE_NAMElike'%TIMEZONE%';

2.后续使用DBCA通用模板创建数据库,请设置PDB Scheduler 的默认时区

http://www.gsyq.cn/news/1449062.html

相关文章:

  • 微信聊天记录永久保存终极指南:WeChatMsg开源工具完全教程
  • AI Agent:不是预测器,而是决胜市场的“决策操作系统”!提升信息处理、决策一致性,降低人为误差!
  • 【触想智能】工业安卓平板电脑在物流运输行业的应用特点与发展趋势
  • 终极B站广告跳过指南:小电视空降助手完整使用教程
  • 有支持多业务单位切换的ITSM平台吗?企业选型解析
  • W55RP20芯片 CircuitPython 实战 (1):快速完成静态IP联网测试
  • 2026年在线SS分析仪十大品牌推荐|国产替代核心力量与选型实战全解析 - 液体流量液位品牌推荐
  • TypeScript 编程:实现 Fibonacci 序列与阶乘类型计算
  • PingFangSC字体包:跨平台字体一致性解决方案技术指南
  • 从“拼图式采购“到“全域闭环“:2026年GEO监测工具终极选型指南
  • 2026年济南钻戒回收实用科普:素军奢品汇钻石回收闲置处置参考文稿 - GrowthUME
  • Sobel算子实战:用OpenCV 4.x给老旧照片‘描边’,实现一键卡通化/素描风效果
  • 告别阈值烦恼:用Halcon的MLP分类器搞定复杂场景下的颜色识别(附完整代码)
  • 【AI笔记】环境配置
  • 告别零碎作业:留学生如何把大学四年代码重构为可交付全栈「蒸汽求职分享」
  • 铜箔胶带电路制作:LED发光蝙蝠的串联电路实践
  • 10.使用requests库爬取网易云音乐
  • 高级实时数据编辑方案:COM3D2.MaidFiddler架构深度解析
  • 全球特价机票深度指南:从武汉圣擎航空服务看南非、法国航线如何买到最划算的公务舱与紧急售后保障 - 土星买买买
  • 西安卖黄金别再被扣损耗,2026金条变现拒绝压价套路避雷指南TOP10 - 西安闲转记
  • 从 Defense 到大学科研经费,再到政府预算,SAP Public Services 的业务底座到底在管什么
  • mootdx通达信数据接口:Python量化金融数据获取的现代化解决方案
  • AI模型漂移导致SPC失控?——实时质量监控系统失效的4类根源及12小时热修复方案
  • 为什么92%的AI项目卡在实验阶段?——揭秘头部科技公司私有化实验管理平台的5个核心模块
  • 叉臂提升机厂家推荐:金拓机械在智能物料提升系统中的应用与优势
  • 终极英雄联盟智能工具包:5大突破性功能让你轻松提升游戏体验
  • 【题解】CF2232C2
  • 学Simulink--交错并联 Buck 变换器的均流控制与热应力分析仿真
  • 如何在Windows上实现完全离线的实时语音识别与会议转录
  • 岗位干货|测试岗位全解析:小白 0-1 落地指南(职责拆解 + 环境搭建 + 实战避坑 + 面试题库)