- 博客(353)
- 资源 (6)
- 收藏
- 关注
原创 如果只安装一个 PostgreSQL 扩展,那就选 `pg_stat_statements`
在PostgreSQL的性能诊断中,是最值得安装的扩展。它会统计数据库服务器上 SQL 语句的执行信息,将相似语句归组,并通过视图提供调用次数、执行时间等指标。这有助于找出总耗时最长或执行最频繁的查询。。
2026-10-22 18:27:47
92
原创 PostgreSQL 服务启动故障排查
排查 PostgreSQL 启动故障时,先识别 systemd 服务,找到启动命令和数据目录,再以postgres用户在前台运行该命令。命令输出以及 PostgreSQL 和 systemd 日志通常可以定位原因,例如配置无效、端口冲突、数据目录错误、权限不足、PID 文件过期或文件系统问题。
2026-10-21 10:14:05
230
原创 对比测试了 openGauss、PostgreSQL、Oracle、MySQL 的CPU 指令数
我测试了在相同软硬件条件下,openGauss、PostgreSQL、Oracle 和 MySQL 的 CPU 指令数消耗对比,急着想知道结果的可以直接跳到最后一部分看结果。
2026-10-15 11:44:49
227
原创 Table of Contents: 试看我的英文专著 《Oracle Database Performance Tuning with AWR, ASH, and ADDM》
我的Oracle性能优化英文专著 《Oracle Database Performance Tuning with AWR, ASH, and ADDM》这本不久将由 Apress 出版,目前已进入制作(production)阶段。这篇文章和大家分享:Table of Contents。
2026-09-14 15:30:23
195
原创 How This Book Is Structured: 试看我的英文专著 《Oracle Database Performance Tuning with AWR, ASH, and ADDM》
《Oracle Database Performance Tuning with AWR, ASH, and ADDM》由Apress出版,共十一章,分四部分:详解ASH、AWR、ADDM三大诊断工具,并结合实战案例展示如何协同使用它们解决真实性能问题。内容涵盖数据采集、报告解读、SQL查询及典型场景分析,帮助DBA高效定位瓶颈,提升数据库性能。
2026-09-14 15:01:38
134
原创 Why I Write This Book: 试看我的英文专著 《Oracle Database Performance Tuning with AWR, ASH, and ADDM》
我的 Oracle 性能优化新书《Oracle Database Performance Tuning with AWR, ASH, and ADDM》(英文版),不久将由 Apress 出版,目前已进入制作(production)阶段。
2026-09-14 11:08:55
295
原创 诊断Oracle数据库中的CPU-Noisy Neighbors
通过对比操作系统总 CPU 使用量与 Oracle 消耗的 CPU 使用量,可以有效识别CPU-noisy neighbors。如果两者之间存在巨大的差值(Gap),则强烈暗示系统中存在抢占资源的非 Oracle 进程。在 Oracle 环境中,CPU-noisy neighbors是指那些消耗大量 CPU 资源,从而挤占数据库可用 CPU 的非 Oracle 进程。该方法的妙处在于,它仅仅依赖于 AWR 数据,因此在操作系统权限受限的环境中显得尤为实用。连接这两个数据集,生成 CPU 消耗的时间线。
2026-02-10 14:36:30
301
原创 Step-by-Step: 在 Linux 上使用 VMware 安装 Oracle 26ai RAC 数据库
然而,通过在 VMware ESXi 中配置具有 Multi-writer flag 的虚拟磁盘,我们可以模拟专业的存储环境。将其添加到新创建的 SCSI Controller 上,将磁盘设置为 Thick provisioned, eagerly zeroed 和 Independent – persistent,并将 Sharing 设置为 Multi-writer。为了确保节点间的毫秒级精度,将 AI261 配置为 Local Time Master,AI262 作为其 Client。
2026-02-04 18:47:43
1855
原创 ORA-01152 故障排查:当数据文件“穿越”到了未来
ORA-01152 并不意味着数据库没救了。它只是表示你的元数据(控制文件)滞后于你的物理数据。通过优先验证物理文件头,你可以安全地重建控制文件,让数据库重新上线。号主在certview.oracle.com网站上的证书清单截图。Oracle ACE(Oracle和MySQL数据库方向)华为云最有价值专家《MySQL 8.0运维与优化》的作者拥有数十项数据库认证曾任IBM公司数据库部门经理20+年DBA经验,服务2万+客户精通C和Java,发明两项计算机专利。
2025-12-09 15:14:02
1325
原创 脚本:使用AWR快照原始数据评估存储性能
然而,在许多企业环境中,DBA往往没有操作系统层面的访问权限,无法使用iostat或sar等工具。幸运的是,Oracle的AWR快照原始数据中保存了历史I/O性能指标,可以用来间接评估存储性能。因为它通常反映的是直接访问存储设备的物理读操作,往往绕过操作系统缓存。因此,它能更真实地反映I/O层面的存储性能,而不是被操作系统缓存机制所掩盖的延迟。结合两者,你可以在没有操作系统监控权限的情况下,通过AWR快照数据了解存储在真实工作负载下的表现。号主在certview.oracle.com网站上的证书清单截图。
2025-11-11 15:43:17
562
1
原创 Oracle AWR案例分析: 诊断‘enq: TX - row lock contention‘等待事件
持续更新中…在一个繁忙且健康的数据库环境中,多会话同时修改相同数据行是不可避免的。当这种情况发生时,一个会话必须等待另一个完成提交,这就引发了 “enq: TX - row lock contention” 等待事件。在高并发的数据库中,适度的行锁竞争是正常现象,但若竞争过度,则会严重影响系统的可扩展性。本节将通过一个实际案例来说明如何诊断这种等待事件。
2025-11-05 17:25:42
981
原创 Oracle AWR案例分析:精准定位SQL执行计划切换的时间点
本例展示了如何结合使用AWR和ASH,从宏观到微观,定位Oracle数据库的性能问题。号主在certview.oracle.com网站上的证书清单截图。Oracle ACE(Oracle和MySQL数据库方向)华为云最有价值专家《MySQL 8.0运维与优化》的作者拥有数十项数据库认证曾任IBM公司数据库部门经理20+年DBA经验,服务2万+客户精通C和Java,发明两项计算机专利两次获得国家部级奖。
2025-11-04 16:16:36
1045
1
原创 Oracle 如何计算 AWR 报告中的 Sessions 数量
这一点非常值得注意:AWR 报告中大多数指标(例如 CPU、IO、Redo 等)都是区间平均或累计的结果,而 Sessions 指标则仅代表快照生成瞬间的状态,因此在快照间隔期间它可能会有明显波动。在 Oracle AWR 报告的开头,有一个非常重要的指标——“Sessions”,它表示对应 Snap ID 创建快照时数据库中的会话数量。从实验结果可以看到,AWR 报告中的 “Sessions” 数值,实际上反映的是快照被创建时那一刻数据库中的会话数量。
2025-11-03 16:57:00
664
1
原创 Oracle如何计算Load Average?
通过简单的实验可以确认:Oracle AWR 报告中的 LOAD 值对应的是操作系统的 1 分钟负载平均值(ldavg-1)。因此不要被这个指标中的Average给误导了,这里的Average只是一分钟内的Average,而不是整个快照期间的Average。另外,需要说明这个LOAD在传统Unix(AIX,HP-UX, Solaris)上指的是CPU的LOAD,而在Linux指的是整个系统的LOAD。同样的负载,在Linux上统计的LOAD通常会比Unix大一些。
2025-11-03 15:56:33
563
原创 Oracle AWR案例分析:备库太慢,拖垮了主库性能
因此,“log file sync” 的缓慢并不是由存储问题引起的,除非log file和data file位于不同的磁盘。“LNS wait on SENDREQ” 是后台等待中最多的,这表示主库的 LNS(Log Network Server)进程在等待从库返回收到redo日志的确认。接着我查看了后台等待事件中的 “log file parallel write”,这个事件表示 LGWR 进程实际将重做日志写入磁盘的等待。从这两个高等待事件可以看出,性能瓶颈在于主库向备用库传输重做数据的过程中。
2025-11-03 11:19:33
875
原创 Oracle AWR 报告中的SQL来自哪儿?
AWR 报告末尾的 Complete List of SQL Text 不仅仅是展示完整 SQL 文本,它其实是 DBA 判断 SQL 来源、识别系统活动模式的一个“显微镜”。哪些 SQL 来自业务系统哪些 SQL 来自 PL/SQL哪些 SQL 属于 Oracle 内部操作以及它们是否受参数 CURSOR_SHARING 的影响这就是理解 AWR 中“这些 SQL 都是从哪儿来的”的关键。号主在certview.oracle.com网站上的证书清单截图。
2025-10-29 16:28:31
931
原创 解读 “SQL ordered by Physical Reads (UnOptimized)“
在 Oracle AWR 报告的 “SQL Statistics” 部分中,有一个名为 “SQL ordered by Physical Reads (UnOptimized)” 的列表,它展示了在执行过程中产生未优化读请求(UnOptimized Read Requests)最多的 SQL 语句。在上面的例子中,两者的数值几乎一致,说明 Oracle 每次 I/O 大约只读取一个数据块(即小块 I/O 模式)即使如此,该列表依然有价值,可用于识别 I/O 负载最高的 SQL 语句。
2025-10-28 18:39:10
892
原创 解读Oracle AWR报告系列:除了CPU和I/O,这些SQL都在忙什么?
启示:如果在AWR报告中发现某些SQL的 %CPU + %IO 远低于100%,那就意味着它在进行无效等待,这时可以试图从“Top Events”中找找是谁偷走了那段时间。这部分时间,这是在SQL层面上无法用CPU和I/O解释的“空白时间”。三者的总和为 19.9% + 3.3% + 1.4% = 24.6%,与我们在SQL层面计算出的 20.74% 缺口很接近。之和通常接近 100%,这说明它们的等待时间几乎全部由 CPU计算 和 I/O操作 构成,属于“健康”的SQL。但对于 INSERT 语句,
2025-10-24 16:04:28
732
原创 如何判断Oracle AWR报告中的SQL在多大程度能代表整个系统的负载?
在分析 Oracle AWR 报告中SQL Statistics部分的Top SQL之前,应先判断这些 SQL 对整体负载的代表性。如果捕获的SQL比例过低,继续分析往往没有意义,甚至可能得出误导性的结论。
2025-10-24 11:26:30
676
原创 解读“Time Model Statistics”中的“sql execute elapsed time”
这一事实可以通过动态性能视图(如V$SQL)中找不到COMMIT或ROLLBACK,以及AWR报告的“SQL Statistics”部分中没有这些操作的记录得到证实。那么,这一差距的来源是什么?在“Top Events”部分,约30%的DB Time被“log file sync”等待事件占用,这一比例与观察到的差距高度吻合,从而支持了这一假设。在这个例子中,“sql execute elapsed time”仅占DB Time的68%,这表明COMMIT操作可能是剩余32%的主要组成部分。
2025-10-22 15:00:17
511
原创 解读Time Model Statistics中的PL/SQL 和 SQL执行时间
Oracle AWR报告中的"Time Model Statistics"显示SQL执行时间占68%,PL/SQL仅占3%,但后续"SQL Statistics"显示PL/SQL中的SQL语句占67.5%的DB Time。这看似矛盾的数据源于Oracle的统计方式:PL/SQL执行时间仅统计引擎本身开销(如循环、条件语句),而其中嵌入的SQL语句执行时间被计入SQL执行时间。作者姚远是Oracle ACE、华为云MVP,拥有20年DBA经验,持有多项Oracle认证,
2025-10-21 17:51:25
483
原创 AWR 报告怎么读?高手只看这几页
别再通篇看 AWR 报告了。掌握从 Report Header 到 Time Model Statistics 的分析方法,就能快速定位性能问题。
2025-10-21 11:18:37
345
原创 Oracle AWR报告分析:诊断RAC Global cache log flush性能故障
在健康的 RAC 系统中,CR(一致性读)和 Current(当前块)接收时间通常小于 1 毫秒,但这里的数值却明显偏高。在 Top Event 中,log file sync 的平均等待时间高达 396 毫秒,这在正常系统中是极其罕见的。这说明,问题并不是 RAC 节点之间传输的块太多,而是块在传输过程中的争用和延迟非常严重。存放 Redo Log 的磁盘组出现故障,导致写入延迟异常,从而引发了整个集群的性能瓶颈。我收到一份客户提供的 Oracle AWR 报告,对方抱怨系统性能“慢得无法忍受”。
2025-10-15 17:36:48
569
原创 解读Oracle AWR报告:Global Cache and Enqueue Services - Workload Characteristics
AWR 报告中的“Global Cache and Enqueue Services - Workload Characteristic”部分反映了 Oracle RAC 节点通过全局缓存服务 (GCS) 和全局入队服务 (GES) 协调块访问的效率。换句话说,它告诉我们节点之间块传输的速度,以及互连和块管理是否健康或存在争用。
2025-10-14 17:52:18
909
原创 Oracle RAC Global Cache Load Profile
2.4 MB/sec 的互联流量 —— 对于一个中型 RAC 系统来说,这属于相对安静(quiet) 的水平,远低于可能导致互联瓶颈的 1–10 GB/sec 区间。在 AWR 报告中,Oracle RAC Global Cache Load Profile 用于观察 RAC 节点之间互联通信(interconnect)的效率。“received” 和 “served” 两项与 Load Profile 部分中的块统计是一致的。这个估算值与报告中的 2,441.02 KB/sec 几乎完全一致。
2025-10-13 16:58:12
613
原创 源码:Oracle AWR报告Time Mode Statistics部分
目前号主在certview.oracle.com网站上的证书清单截图。
2025-10-13 14:51:27
264
原创 源码:Oracle AWR报告之Top 10 Foreground Events by Total Wait Time
目前号主在certview.oracle.com网站上的证书清单截图。
2025-10-13 14:44:18
236
原创 又考了两个Oracle认证:RAC和DataGuard,文末送资料
号主姚远目前已经拥有Oracle的认证超过20个了,最近又考了两个Oracle 19c的认证,是RAC和DataGuard。其实内容和12c没有太大的区别,但题目依然很难,很多选项模拟两可,需要对相关概念非常清楚才能通过考试。姚远的运气不错,以超过及格线不多的分数通过了考试。目前号主在certview.oracle.com网站上的证书清单截图,需要这两个课程的资料可以联系我。
2024-09-09 13:34:45
1324
2
原创 合法的使用Oracle的 AWR 和 ASH
为了控制对 Oracle 诊断包和 Oracle 调优包的访问,Oracle 提供了一个名为 CONTROL_MANAGEMENT_PACK_ACCESS 的初始化参数。很多人都没有考虑过Oracle的 AWR(自动工作负载存储库)和 ASH(活动会话历史记录的合法性,实际上使用Oracle的 AWR 和 ASH有严格的法律的要求。AWR 和 ASH 是诊断和调优包的一部分,这些是额外付费的选项,需要在 Oracle 数据库企业版基础上单独购买许可证。
2024-09-09 13:33:56
1047
原创 脚本:自动生成精准的Oracle AWR报告
很多朋友把AWR报告发过来让我帮忙分析Oracle数据库的性能,但很多报告都有一个共同的缺陷:就是这些报告覆盖的时间范围太广,导致性能问题的数据被严重稀释。为了解决这个问题,我开发了下面的脚本。这个脚本自动生成的AWR报告会保存在/tmp目录下,文件名中包括实例名和生成时间便于识别。
2024-08-06 10:33:00
1015
1
原创 在 Linux 9 上安装 Oracle 19c:克服兼容性问题 (INS-08101)
Oracle 数据库 19c 的基础版本 (19.3) 发布的时候还没有 Linux 9 ,因此在Linux 9上面安装Oracle 19c会遇到很多兼容性问题。本文将探讨如何解决这些问题。
2024-08-06 10:31:00
3011
原创 脚本: 监控Oracle数据库中正在运行的SQL(Oracle DBA的工作利器)
【代码】脚本: 监控Oracle数据库中正在运行的SQL(Oracle DBA的工作利器)
2024-07-30 13:40:36
967
1
原创 使用ASH诊断Oracle解析故障
解析,尤其是硬解析,是非生产性操作,会消耗大量系统资源,导致库缓存争用。ASH(Active Session History)可以通过其采样机制来诊断和分析过度的解析。本文探讨了如何有效地使用ASH来识别解析问题。
2024-07-30 11:41:54
1337
翻译 使用Oracle自带脚本awrextr.sql和awrload.sql进行AWR数据迁移(翻译)
Oracle的AWR保存了数据库性能数据供DBA分析数据库性能。然而,访问和分析这些数据可能既耗时又消耗资源。一种有效的解决方案是使用Oracle内置工具将AWR数据传输到单独的系统进行分析。这种方法允许技术人员在家中舒适地进行诊断和提供解决方案,而不会影响生产系统性能或数据保留。
2024-07-29 15:47:21
500
翻译 自动生成更专注的Oracle AWR报告的脚本(翻译)
分析来自客户的Oracle AWR报告是姚远每天的工作之一。一个常见的挑战是,这些报告通常涵盖的时间范围太宽,导致性能问题的严重性被稀释。为了解决这个问题,我开发了以下脚本,用于自动生成具有更窄焦点的AWR报告。当客户没有具体的时间段来进行诊断时,他们可以使用这个
2024-07-29 15:45:14
309
原创 Oracle 23ai的Windows平台版本发布了
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#db_free
2024-06-25 11:03:45
3400
2
原创 Oracle最终会扼杀MySQL?(译)
自从Oracle收购了MySQL后,很多人怀疑Oracle对开源MySQL的善意,这篇percona的文章深入分析了Oracle已经和将要对MySQL采取的措施,并预测了MySQL的未来。
2024-06-12 17:41:05
1773
4
GoldenGate19.1 Oracle单向dml配置全过程.pdf
2020-10-15
mysql-enterprise-backup-4.1-en.pdf
2020-05-16
BackupAndRestoreOfOracleDataGuardWhitePaper.pdf
2020-09-30
Virtualbox安装Oracle 19c 升级到19.8(Oracle Restart和数据库)完整步骤
2020-10-13
Oracle DataGuard备份恢复最佳实践
2020-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅