
日常运维
文章平均质量分 77
认真就输DBA
大家好,我叫黄廷忠,网名“认真就输”,目前担任 Oracle-CSS 的解决方案专家,专注于为企业客户提供高可用、高性能、安全可靠的数据库架构和运维服务。在过去十余年里,我深耕数据库领域,尤其擅长 Oracle 数据库的部署、优化、容灾、高可用架构设计及性能调优,同时也关注国产数据库如 OceanBase 的落地实践。
我的职业生涯始于 DBA 实战一线,曾在包括凡客诚品、兴迪资讯、威信泰克等企业担任 ORACLE DBA,积累了大量核心系统的运维与优化经验。之后在云和恩墨担任西区解决方案总经理,带领团队服务多个行业头部客户,并参与了数据库平台选型、架构评估与交付全过程。在 OceanBas
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Oracle问题诊断:如何诊断oracle listener相关问题
本文介绍了Oracle监听进程(listener)的工作原理及常见问题诊断方法。监听进程异常会导致应用无法连接数据库,其问题可能源于死循环、IO阻塞、等待子进程或信号量等。文章提供了多种诊断工具的使用方法,包括检查内存和CPU使用情况(pmap、top等)、查看调用栈(pstack、gdb等)以及跟踪进程(truss、strace等)。这些方法可帮助DBA快速定位监听进程挂起的原因,确保数据库连接正常。文章作者黄廷忠是Oracle中国高级服务团队专家,拥有丰富数据库运维经验。原创 2025-08-18 14:51:55 · 351 阅读 · 0 评论 -
故障处理:troubleshooting LGWR wait library cache lock instance lock on standby
摘要 本文分析了一起19c数据库备库LGWR进程被阻塞的故障案例。故障现象为每天8:40左右备库LGWR进程被阻塞,导致其他应用请求不到instance lock。通过systemstate dump分析发现: LGWR进程(SID:337)因library cache lock等待被阻塞,请求模式为X 最终阻塞者(final blocker)为SID 1976的会话 问题与实例锁(instance lock)竞争有关 案例来自真实金融客户环境,完整分析过程可前往微信公众号"IT民工的龙马人生&q原创 2025-08-07 17:23:29 · 809 阅读 · 0 评论 -
读书笔记:事务:让数据库操作更安全可靠
本文介绍了数据库事务的核心概念与应用。事务是将多个数据库操作打包为不可分割的工作单元,具备ACID四大特性(原子性、一致性、隔离性、持久性)。文章详细讲解了Oracle中事务的关键操作命令:COMMIT提交更改、ROLLBACK回滚操作、SAVEPOINT设置保存点等,并通过银行转账案例说明事务如何确保数据一致性。特别提醒开发者需显式结束事务以避免隐式行为带来的风险。本文为《Expert Oracle Database Architecture》学习笔记,完整内容可在作者博客和公众号查阅。原创 2025-08-07 17:20:16 · 630 阅读 · 0 评论 -
Oracle随笔:DDS 取消并行装载功能
本文详细介绍了Oracle DDS取消并行装载功能的具体操作步骤。首先需要按顺序停止源端和目标端DDS服务,然后修改tgt_que.cfg配置文件,删除ddstart文件中的多余dds_pput指令。启动DDS后,通过查看进程信息确认启动成功,最后进行DML语句测试验证功能。文章同步发布于微信公众号"IT民工的龙马人生"和个人博客网站(www.htz.pw),建议访问博客获取更佳代码阅读体验。原创 2025-08-07 17:18:20 · 279 阅读 · 0 评论 -
学习笔记:静默安装11G RAC(2)-数据库安装
本文介绍了Oracle 11g RAC数据库静默安装的第二部分——数据库安装步骤。主要包括三个关键环节:首先创建并配置安装目录/oracle,设置权限;其次配置oracle和grid用户的SSH等效性,包括密码设置和SSH互信配置;最后通过runcluvfy工具进行安装前检查,验证节点可达性、用户等效性和网络配置等。文章特别提示,由于包含大量代码,建议通过博客网站(www.htz.pw)浏览以获得更佳阅读体验。该技术文章同时在微信公众号"IT民工的龙马人生"同步更新,转载时需注明出处。原创 2025-08-06 15:45:05 · 338 阅读 · 0 评论 -
学习笔记:DDS 增加目标端节点
本文介绍了在DDS环境中增加目标端节点的详细操作步骤。首先在目标端2安装DDS软件,然后停止源端服务并修改配置文件tgt.cfg和map.cfg。启动目标端2同步后,通过vshms命令验证映射信息和目标端状态。测试阶段发现目标端2未能正常同步数据,经检查发现接收的dtf文件正常但未装载。文章详细记录了操作日志和问题排查过程,为DDS多节点配置提供了实用参考。完整内容请访问微信公众号【IT民工的龙马人生】或博客网站(www.htz.pw)查看。原创 2025-08-01 15:54:08 · 459 阅读 · 0 评论 -
故障处理:ADG环境ORA-04020导致数据库实例异常关闭
本文分析了Oracle ADG环境中因ORA-04020死锁导致数据库实例异常关闭的问题。环境为11.2.0.3 rac-single ADG,Linux系统。通过分析alert日志发现LGWR进程因死锁错误终止,进而导致实例关闭。进一步检查trace日志发现是SYS.htzadb对象上的DDL锁和解析锁发生循环等待,形成死锁链:进程A阻塞B,B阻塞C,C又阻塞A。日志详细记录了各个会话的锁请求模式(S/X)和等待关系。作者指出这种死锁通常由应用程序设计缺陷或并发语句执行不当引起,建议用户检查应用逻辑而非提原创 2025-08-01 15:49:20 · 434 阅读 · 0 评论 -
故障分析:dul处理long、clob、blob字段中有中文内容
本文介绍了使用DUL工具处理Oracle数据库中包含中文字符的LONG、CLOB和BLOB字段的方法。测试环境为Oracle 11.2.0.3数据库,演示了如何通过DUL导出包含中文的LONG字段数据并使用SQL*Loader重新导入,验证了中文内容完整保留。同时测试了BLOB字段的中文处理,展示了从DUL导出到重新导入BLOB数据的完整流程。文章强调这仅是测试环境验证,不建议直接用于生产环境,并提供了详细的命令行操作记录和编码验证过程。文章同步发布于微信公众号"IT民工的龙马人生"和个原创 2025-07-31 16:14:30 · 276 阅读 · 0 评论 -
学习笔记:MySQL:Innodb统计信息参数
本文介绍了MySQL中Innodb存储引擎的统计信息相关参数,包括innodb_stats_persistent(持久化统计信息)、innodb_stats_auto_recalc(自动重新计算统计信息)、innodb_stats_method(NULL值处理方式)等关键参数的功能和默认配置。作者黄廷忠(Oracle中国高级服务团队)通过实际案例说明这些参数对优化器选择执行计划的影响,并提供了参数配置建议。文章还包含作者联系方式和个人博客链接,供读者进一步交流学习。原创 2025-07-28 17:00:25 · 426 阅读 · 0 评论 -
学习笔记:MySQL :eq_range_index_dive_limit参数
MySQL优化器在评估rows时的精准性远超Oracle,尤其是在数据倾斜场景下。文章通过对比测试发现:Oracle完全依赖统计信息进行rows估算(如NUM_DISTINCT、DENSITY等公式),在字段值分布不均时偏差较大(如预测350行实际仅40行);而MySQL即使不依赖直方图,也能准确评估出实际数据量(如预测500行与实际完全一致)。关键参数eq_range_index_dive_limit控制是否通过索引下潜获取精确统计,这使MySQL在复杂查询中仍能保持高精度。案例表明MySQL的优化器策略原创 2025-07-27 11:22:40 · 652 阅读 · 0 评论 -
故障处理:ORA-00704 ORA-00604 ORA-01555处理过程
摘要: 本文记录了一个Oracle 10g RAC环境因CRS意外删除导致数据库崩溃的故障处理案例。当将RAC改为单机启动时,系统报错ORA-00704(引导进程失败)、ORA-00604(递归SQL错误)和ORA-01555(快照过旧)。通过配置10046和errorstack事件跟踪,分析块信息发现ITL 01状态异常,并定位到锁定行的记录。进一步查看SQL会话信息,发现涉及系统表OBJ$的查询操作。文章详细展示了错误日志分析、块信息提取以及SQL会话跟踪的过程,为类似故障排查提供参考。更多技术细节可访原创 2025-07-27 11:20:36 · 324 阅读 · 0 评论 -
读书笔记:Oracle数据库内存结构:系统全局区(SGA)详解
本文详解Oracle数据库核心内存结构SGA(系统全局区),包括其组成、查看方式和关键配置参数。SGA由共享池、缓冲区缓存、重做日志缓冲区等组件构成,以"颗粒"为单位分配内存。文章介绍了数据库块缓冲区缓存的三种区域(默认/保留/回收池)和多种块大小支持功能,强调了SGA对数据库性能的重要影响。作者黄廷忠(Oracle中国高级服务团队)分享了相关技术笔记,详细内容可通过微信公众号"IT民工的龙马人生"或个人博客(www.htz.pw)查看完整文章。原创 2025-07-27 11:18:22 · 660 阅读 · 0 评论 -
学习笔记:最小停机时间:给GRID/DB打PSU补丁或者UPDATE
本文介绍了通过克隆ORACLE_HOME目录实现最小停机时间的GRID/DB补丁升级方案。该方案适用于单机环境,通过复制ORACLE_HOME到新目录并升级后切换,可将GRID单节点PSU补丁时间从30分钟缩短至5分钟。文章详细演示了在Red Hat Enterprise Linux 5.8系统上,针对Oracle 11.2.0.3数据库的升级步骤,包括创建新GRID目录、文件复制、克隆GRID等操作流程。虽然此方法不适用于RAC环境(RAC可采用滚动升级),但为单机环境提供了高效解决方案。完整内容请访问微原创 2025-07-25 16:28:32 · 615 阅读 · 0 评论 -
故障处理:WIN平台ORACLE启动ORA-00604 ORA-01555 ORA-01173报错
文章摘要: 本文记录了在Windows平台下解决Oracle数据库启动时遇到的ORA-00604、ORA-01555和ORA-01173错误的过程。作者通过配置特殊参数(如_allow_resetlogs_corruption)并重建控制文件,但仍遇到SCN不足和回滚段问题。通过启用errorstack和10046跟踪事件分析故障原因,最终尝试使用RESETLOGS方式升级打开数据库。文章详细展示了错误重现、参数配置和故障排查过程,适合DBA参考处理类似问题。完整内容可在微信公众号"IT民工的龙马原创 2025-07-24 14:17:43 · 470 阅读 · 0 评论 -
故障处理:案例:ASM磁盘组数据分布不均衡
ASM磁盘组空间不足问题分析案例 某银行19c GI环境中的11g数据库遭遇ASM磁盘组空间异常问题:尽管datac1磁盘组仍有剩余空间,数据文件却无法扩展并报错ORA-15041。经排查发现: 该HIGH冗余磁盘组由144块1.7T磁盘组成,元数据无异常但空间分布严重失衡; 多数磁盘剩余约200G空间,少数磁盘free_mb接近0,最大剩余360G; 传统解决方案(添加磁盘/rebalance)失效,因rebalance要求每块盘至少300M空间; 深度分析显示最大最小磁盘间存在6000+ extent和原创 2025-07-09 21:55:18 · 926 阅读 · 0 评论 -
学习笔记:手动将10g单实例数据库转换为10g RAC(实时应用集群)
本文详细介绍了在Linux 5.8环境下将10g单实例Oracle数据库手动转换为10g RAC(实时应用集群)的完整过程。内容包括环境准备、主机规划、RAW存储配置、udev规则设置等关键步骤。通过修改主机名与IP地址映射、配置磁盘分区与RAW设备绑定、设置权限属主等操作,实现单机到RAC的转换。文中提供了具体的命令示例和配置细节,特别强调RAW设备的正确绑定与权限设置。完整内容请访问微信公众号[IT民工的龙马人生]或博客网站(www.htz.pw)查看,建议通过网页浏览以获得更好的代码显示效果。原创 2025-07-07 16:23:27 · 645 阅读 · 0 评论 -
学习笔记:oracle online系列:online move table
本文介绍了Oracle 12c新引入的online move table功能,通过测试验证其实现原理。在12c之前,move table是离线操作会阻塞DML,而在线重定义操作步骤繁琐。12.2的online move table通过创建JOURNAL表(IOT)和RMTAB_H表(堆表)作为中间表,将表锁模式从2号改为3号TM锁,实现表数据移动不阻塞DML。测试跟踪显示该功能简化了在线表重组操作,但仍无法完全替代在线重定义的所有场景。原创 2025-07-07 16:20:06 · 1012 阅读 · 0 评论 -
日常运维:11G RAC环境GRID目录及文件权限被篡改的修复
总结Oracle 11G RAC环境中GRID目录被篡改的修复方案,模拟极端的情况,从实践出发,带领大家一起探寻。原创 2025-06-28 08:29:18 · 1036 阅读 · 0 评论