- 博客(161)
- 资源 (11)
- 收藏
- 关注
原创 Oracle 19c RAC登录风暴引发library cache lock生产故障分析
业务侧触发登录风暴:1 秒内 500 + 会话同时登录数据库,大量新建连接并发执行 Oracle 内部更新user$;触发 Oracle 内核 Bug33121934,引发与连锁锁等待;仅批量登录的应用用户被阻塞,其他账号访问不受影响,并非数据库整体宕机。该故障有很强迷惑性:容易把排错方向带到账号权限、硬解析问题,忽略 Oracle 内部基表更新逻辑。很多生产故障不是业务 SQL、索引问题,而是业务流量场景刚好踩中 Oracle 内核 Bug。本次故障最值得吸取经验:遇到大量。
2026-08-24 09:21:03
354
原创 Oracle 19c数据库内存耗尽故障的排查
误区正解用合计判断 OS 内存占用严重偏低,必须以 OS 层pstoppmap的 RSS 为准能管住所有进程内存只管 Oracle 记账的 PGA + MGA,不管进程基础开销和不记账内存一个连接的内存全是 PGA空连接几乎没有业务 PGA,但进程壳子本身就有 6~10MB连接池越大越好3000 连接中 99% 闲置,纯耗内存不是数据库 bug,而是连接管理不当 + Oracle 内存统计口径的认知盲区共同导致的内存耗尽。业务必须正确关闭连接池——这是根因;监控不能只看。
2026-08-21 10:32:44
490
原创 max_string_size 参数修改对vchar2字段的影响
Oracle 数据库参数从默认的STANDARD修改为EXTENDED的完整操作流程。该修改旨在突破VARCHAR2类型 4000 字节的长度限制,但修改完支持超过4000字节的varchar2类型。
2026-08-21 09:34:19
313
原创 Oracle生产300多万SYSTP%临时TYPE对象根因分析与处理
11.2.0.4](11.2.0.4) 环境语法会源源不断生成SYSTP%/ST%内部临时 TYPE,SMON 默认不会自动回收,大量堆积会引发字典性能问题。event 22834 用来控增量,不适合清理巨量历史存量;存量巨大直接开启会导致 SMON CPU 飙升;低峰分批限速清理存量 → 存量下降后开启 event 22834,使用较大 level 降低扫描频率;禁止定时 job 循环 drop;业务 SQL 改写或者版本升级可以彻底规避该现象。
2026-08-20 17:05:49
308
原创 RAC数据库OS进程消失,GV$SESSION长期残留KILLED僵尸会话处理
客户日常运维执行强制终止会话后,遇到诡异现象:操作系统服务进程已经彻底消失,但gv$session中会话长期停留在KILLED状态:滞留1 小时以上无法自动清理KILLED仅为会话状态标记,资源回收由 PMON 异步执行,短时残留属于 Oracle 正常机制;进程消失、TADDR 为空、无锁、滞留超 1 小时的僵尸会话,两大核心诱因:RAC 集群 GES 全局同步阻塞 / XA 分布式事务多分支未全部清理(MOS KB151805);
2026-07-24 16:53:28
337
原创 Oracle 19c PDB架构DG故障ORA-01110/ORA-01111与归档 GAP 问题
Oracle 19c PDB 模式下 DG 出现UNNAMED数据文件,禁止使用 11g 直接创建语法,优先采用 RMAN 数据文件副本、切换方案;数据文件修复后,务必检查归档 GAP,缺失归档需手动注册后重启 MRP;备库操作全程保持在 mount 状态,避免直接 open 导致异常;日常巡检需关注参数,防止归档信息过早过期引发 GAP。
2026-07-21 17:13:14
365
原创 Windows 安装 Proctorio Secure Companion App 报错 0x800B010A
oracle认证考试要求下载安装Secure Companion App,发现下载后,安装按钮是灰色的,不能安装,折腾了半个小时,差点就错过考试了这个软件是,报错0x800B010A含义:Windows 无法校验软件签名证书链,导致安装按钮灰色不可点击。
2026-07-03 18:02:49
217
原创 su - oracle切换到oracle用户卡住
压测实验结束后,仅删除了编译源码与临时文件,未清理全局 LD_LIBRARY_PATH 变量、未删除残留安装目录,导致系统动态链接器每次执行 su 切换用户时,遍历无效库路径反复重试,最终造成命令卡死。sudo 具备安全净化机制,默认自动清空、过滤高危环境变量,主动丢弃错误的 LD_LIBRARY_PATH,不会遍历无效目录,因此仅轻微延迟、可以正常进入用户环境。依次重启 dbus、systemd-logind、nscd 等会话与解析服务,清空登录缓存,调整用户资源限制,故障均未恢复。
2026-06-30 14:02:07
234
原创 Oracle19c补丁问题导致expdp导出报错ORA-31626
日志文件位置:/oracle/app/product/19.3.0/db_1/cfgtoollogs/opatch/opatch2026-06-15_17-35-12下午_1.log。来自 :/oracle/app/product/19.3.0/db_1/oraInst.loc。Oracle 主目录 :/oracle/app/product/19.3.0/db_1。ORA-31626/31638:数据泵任务不存在、无法挂载导出任务,也就是根本没生成任务;
2026-06-22 15:02:34
180
原创 生僻字乱码解决方案,NVARCHAR2改造踩坑记录
库字符集为 ZHS16GBK 时,生僻字存储最优方案:VARCHAR2→NVARCHAR2;NVARCHAR2 修改不可逆,上线前务必备份全量数据表;改造后重点排查 WM_CONCAT、UNION 多表拼接等 SQL,提前做类型转换适配;PL/SQL 客户端开启 Unicode 配置,解决客户端可视化乱码问题。
2026-06-05 17:51:09
320
原创 数据库私网性能瓶颈排查,从AWR报告到网络层丢包的全链路分析
数据库性能问题未必是“数据库本身”的锅。当AWR显示集群等待事件突出时,需跳出“SQL调优”的惯性,向下穿透到操作系统、网络甚至硬件层,才能找到真正的根因。
2026-06-04 11:23:44
605
原创 ORA-02049:超时:分布式事务处理等待锁处理详细
摘要:Oracle数据库出现ORA-02049分布式事务锁超时问题,表现为两个节点在执行视图操作时发生锁等待超过60秒。经排查发现是分布式事务未及时提交导致TX行锁竞争,通过跟踪日志和查询锁会话信息,确认存在相互阻塞的会话(740与880会话)。最终通过kill阻塞会话解决。分析表明,当会话执行带dblink的SQL后即开启分布式事务,若前次操作未提交,后续操作会触发锁超时。建议业务处理dblink操作后立即提交事务,避免锁冲突。典型解决方案包括查询gv$lock视图定位阻塞源头,通过kill会话或提交事务
2026-06-03 09:37:48
194
原创 主库数据文件含空格导致搭建dg失败
通过多轮参数调整,终于定位到核心规则,db_file_name_convert遵循“先配置先匹配”原则,也是从前往后匹配的,只要匹配上了,后面的转换参数就不会再去匹配了,精确文件规则(带空格)优先于模糊前缀规则,不会被后续规则覆盖,从而实现全量文件的正确转换。排查后发现,db_file_name_convert 按参数配置顺序匹配,前面文件路径/oracle/app/oradata/ORCL/datafile/跟+DATA/匹配上了,就不会对后面单个文件再做匹配,带空格的文件被前缀规则覆盖,空格未被剔除。
2026-06-03 09:30:46
181
原创 MySQL 从库临时目录空间不足故障及解决
问题这就很明了了,根源是ALTER TABLE操作会在tmpdir目录创建临时文件,当tmpdir所在磁盘空间耗尽时,临时文件写入失败,就会触发空间不足错误。ROUND((DATA_LENGTH + INDEX_LENGTH)/1024/1024/1024, 2) AS '总大小(GB)',1、当存储引擎一致时,可以通过SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1跳过失败事务,恢复同步;对大表执行ALTER TABLE前,先预估临时文件大小,确保tmpdir空间充足;
2026-06-03 09:20:42
378
原创 Oracle19c内存限制,SGA+PGA内存限制70%
实际分配内存8G,显示内存7.6G,按分配内存来算接近70%(8*0.7=5.6G),按实际内存来算70%(7821M*0.7=5474.7M,5474.7M-4*1024=1378M),sga分配4G,pga分配1471M可以,分配1472M不行,总分配内存5567M。在 Oracle 19c 运维过程中,我们常遵循 “SGA+PGA 总内存不超过物理内存 70%” 的最佳实践,但实际配置时却遇到了内存阈值计算的细节问题,本文记录核心问题与解决过程。:虽然分配了 8G,但 OS (
2026-06-03 09:14:48
417
原创 rman清理归档日志物理文件未清理
那么是什么情况造成RMAN删除命令执行了,物理文件却还在。---------------------------------略-----------------------------------------------只有当控制文件的这部分空间被占满,需要写入新的恢复记录(如新归档、新备份)时,才会从最旧的记录开始清理,优先清理超过 CFRKT 的归档元数据。按道理,超过15天的归档日志会被自动删除,但实际情况是磁盘空间持续飙升,登录服务器后发现,归档目录下堆积了大量超期的物理文件。
2026-01-14 16:06:04
763
原创 oracle数据文件大小异常故障处理
1、数据文件大小必须是逻辑块大小的整数倍2、oracle数据库启动校验比较严格,除了数据大小是要求数据块的整数倍,还有所有的数据文件的scn要一致,,才能正常启动。3、通过追加空白数据块可修复文件大小异常但需要通过recover应用归档日志和在线重做日志来恢复数据一致性。
2025-11-24 17:37:31
1034
原创 WebLogic 12.1.3 补丁升级的坑
检查当前服务器中的版本,初始已安装补丁32345262(WLS PATCH SET UPDATE [12.1.3.0](12.1.3.0).210420”),后续升级的补丁33494824是其超集,安装时会自动回滚旧补丁。补丁安装需严格遵循“关闭服务→安装补丁→验证结果”的流程,当前目标是安装2022年1月的PSU补丁33494824,过程中需先处理依赖补丁问题,再解决组件冲突报错。:遇到XML差分报错时,优先检查组件下的旧补丁目录,按官方文档备份并删除冲突目录,再重新安装。
2025-10-21 09:26:33
1008
1
原创 JAVA脚本程序测试RAC TAC方案
本次JAVA TAC测试验证了Java程序在Oracle RAC环境下的连接稳定性。测试环境为CentOS 7.9、Oracle 19c RAC和Java 1.8,通过两种连接方式验证数据库连接。结果显示,在节点故障时应用无法自动重连,需手动重启应用。为此,建议在应用层配置重连机制,并提供了包含重连逻辑的Java测试脚本示例,以实现业务连续性。测试还展示了服务双节点配置情况,但节点停机仍会导致业务中断。测试为完善高可用方案提供了重要参考依据。
2025-09-28 15:35:43
1118
原创 Oracle Database 23ai 内置 SQL 防火墙启用
在正式启用拦截功能前,建议先开启观察模式。该模式下,防火墙会对所有 SQL 语句进行验证,若发现违规行为(如 SQL 注入语句、非授权 IP 地址访问等),仅记录违规日志,不阻止 SQL 执行,便于管理员进一步优化白名单,避免误拦截正常业务操作。执行该命令后,若有用户发出与白名单不匹配的 SQL 语句(如 SQL 注入语句)或从非授权连接路径访问数据库,防火墙将直接阻断 SQL 执行,并报错 “ORA-47605 SQL Firewall violation”,同时记录详细违规日志。
2025-09-16 18:14:08
1211
原创 23ai数据库通过SQLcl生成AWR报告
不过用新的命令方式相对来说比较简便一些,感觉少了很多交互,输出的结果内容还是一样的。生成快照为794-795的HTML格式awr报告。当然用原来老的方式也还是可以的。
2025-09-05 18:15:06
1253
原创 3 个 ASM 磁盘故障案例,从故障诊断到解决方案
风险类型典型场景规避策略Oracle Bug 风险添加磁盘触发 Rebalance,误报元数据损坏1. 操作前查询 Oracle 官方 Bug 库,确认当前 ASM 版本无相关 Bug;2. 优先创建新磁盘组,避免在生产磁盘组直接添加;3. 操作前验证备份与容灾有效性,确保可快速恢复磁盘资源冲突新增磁盘已被文件系统、逻辑卷占用1. 新增磁盘前,通过lsblk检查分区状态、df -h检查挂载情况;2. 使用(grid 用户)确认 ASM 已识别磁盘,且无其他进程占用;
2025-09-05 11:42:30
1054
原创 优化器从RBO到CBO,为什么性能不行了?
CBO 依赖高质量统计信息:CBO 的决策基础是统计信息,对于数据倾斜的列(如本例中 fypb=0 的记录占比极低),必须生成柱状图才能准确反映数据分布。默认的配置无法满足需求,需针对性设置method_opt参数。驱动表选择决定关联性能:嵌套循环连接(Nested Loop)中,驱动表应选择筛选后。
2025-09-05 11:04:55
1150
原创 分区表改造导致查询性能下降分析
本次性能下降的核心原因是分区表改造后,查询未有效利用分区特性,仍执行全表扫描导致大量 I/O 等待。通过更新统计信息、优化sql对分区的使用,查询性能显著提升。所以在改造分区表的过程中,建议优先检查查询语句中的分区键过滤条件,确保分区功能正常生效。
2025-09-03 17:06:05
864
原创 Oracle参数PARALLEL_THREADS_PER_CPU深度解析与调优指南
Oracle数据库的PARALLEL_THREADS_PER_CPU参数是性能调优的关键,它通过优化CPU与I/O资源匹配来提升系统效率。该参数直接影响并行度设置,根据硬件规模建议配置:小型系统4,中型2-4,大型2。最佳实践强调先使用默认值再逐步调整,并通过监控资源使用情况来优化参数。合理的设置能有效平衡工作负载,使数据库在复杂环境下保持最佳性能。
2025-09-03 15:57:45
355
原创 Oracle跟踪及分析方法
当一个 SQL 出现性能问题时,可以使用 SQL_TRACE 或者 10046 事件来跟踪 SQL,通过生成的 trace 来了解 SQL 的执行过程。10046 事件 Oracle 提供的内部跟踪事件,是对 SQL_TRACE 的增强,通过10046 可以知道 Oracle 内部执行的 SQL_TRACE 的跟踪操作。通过设置 SQL_TRACE 可以启用或禁用 SQL 跟踪工具,设置 SQL_TRACE 为 true 可以收集信息用于性能优化或问题诊断;
2025-08-26 18:16:19
638
原创 升级openssh后ORACLE RAC EM 安装失败处理
手工去scp文件都能正常传过去,说明问题不在em的安装手法上。后来想到openssh的版本问题,默认版本openssh有漏洞,所以就从7.4p1版本升级到了9.6p1版本,怀疑openssh高版本的兼容性导致,所以进行了重新安装做降级操作。
2025-08-25 16:16:18
482
原创 sys.dbms_xa dist_txn_sync执行频繁导致性能问题
sys.dbms_xa.dist_txn_sync是Oracle数据库中用于分布式事务同步的一个功能模块,属于DBMS_XA包的一部分。还有高频调用SQL bn4nkxhy47yr3 (BEGIN sys.dbms_xa.dist_txn_sync;sys.dbms_xa.dist_txn_sync是oracle 内置存储过程,用于恢复应用了RAC类型oracle数据库的事务一致性。随着undo表空间增大,sys.dbms_xa.dist_txn_sync执行越来越慢,特别是节点3的undo暴增。
2025-08-20 10:21:40
655
原创 物化视图优先迁移大表,缩短逻辑迁移时间
impdp 账号/密码 network_link=CUTEINFO1 directory=backup logfile=impdp_cuteinfo.log PARALLEL=2 exclude=table:"in('T_EC_EVENT')" exclude=MATERIALIZED_VIEW_LOG:"in('MLOG$_T_EC_EVENT')" TABLE_EXISTS_ACTION=REPLACE schemas=cuteinfo remap_schema=cuteinfo:cuteinfo。
2025-08-14 15:20:35
498
原创 windows 19.18 配置nts本地连接dg传输问题
备库默认配置SQLNET.AUTHENTICATION_SERVICES = (NTS)时,主库的归档传不过来,备库的sqlplus/as sysdb可以登陆,SQLNET.AUTHENTICATION_SERVICES不设置时或设置成none,主库的归档可以传过来,但备库的sqlplus/as sysdb不能登陆。其中有个参数NO_NTLM正常连接的时候是0,异常的时候是1,true,sqlnet.ora种尝试设置一下NO_NTLM,客户端设置。发现连接正常了,mos上查了一下NO_NTLM,发现。
2025-07-23 16:57:43
1086
原创 windows 19c数据库oracle主目录用户选择的区别
windows下19c多了这么多选项主要还在于安全方面的考虑,前面三项都有对安全做了限制,包括访问等,虚拟账号有点类似域账号,没有真正的本地账号,自己创建的本地账号没有管理员权限,只有最后一项选windows内置账户才是系统权限,最高权限。创建新windows用户,这个口令在dbca建库、netca创建监听的时候还要用,主要是服务使用了oracle用户,没有密码不能正常启动,其实使用现有windows用户和创建新windows用户是同一类,一个有现成账号,另外一个是新建账号。默认安装,使用虚拟账户。
2025-07-23 14:07:41
849
原创 数据库rac多实例监控
我们可以把检查脚本配置到crontab中,没分钟检查一次,当发生异常时,可以及时收到邮件。2025-07-18 09:09:55 [ERROR] orcl1 PMON进程不存在。2025-07-18 09:19:04 [INFO] orcl1 状态正常(OPEN)2025-07-18 09:09:55 [ERROR] orcl1 PMON进程不存在。2025-07-18 09:19:04 [INFO] orcl1 状态正常(OPEN)数据库rac多实例监控,当发生异常宕机,可以邮件发送出来。
2025-07-18 09:34:36
339
原创 oracle rac自动表空间自动扩展脚本
2025-07-17 11:09:18] ===== 开始表空间检查 =====[2025-07-17 11:36:23] ===== 开始表空间检查 =====[2025-07-17 11:14:55] ===== 开始表空间检查 =====[2025-07-17 11:09:19] ===== 检查完成 =====[2025-07-17 11:36:48] ===== 检查完成 =====[2025-07-17 11:14:57] ===== 检查完成 =====最后把脚本添加到contab中。
2025-07-17 11:53:13
477
原创 oracle没耗CPU,CPU消耗在哪里
从表面上看没有其他异常,但想到是不是中病毒了,以前也有发生过挖矿病毒耗尽cpu的事情,但能从top里就能看出是哪个进程占用。这里却没有cpu高耗的进程。数据库层面,从生成最新的AWR报告进行分析,并未发现CPU使用率高的sql情况,数据库负载也不高,所以还是在操作系统层面。通过perf top -s comm,pid,symbol命令,动态显示系统中占用 CPU 资源最多的函数或代码段。客户反应业务系统很卡,CPU总体使用率为100%,load average负载很高,具体进程的CPU使用率都很低。
2025-07-14 14:13:00
194
原创 rac高可用测试私网中断为什么不会立即重启服务器?
《《 RAC集群中的一个节点无法与其他节点通信,为保持集群完整性,该节点将自动关闭,触发的保护性措施,防止"脑裂"现象发生。《《《 网络通信丢失已达到超时间隔的50%,若持续丢失,将在14.85秒后将该节点从集群中移除。《《《 网络通信丢失已达到超时间隔的75%,若持续丢失,将在6.850秒后将该节点从集群中移除。《《《 网络通信丢失已达到超时间隔的90%,若持续丢失,将在2.850秒后将该节点从集群中移除。从日志看是到35s之后集群才完成停止。集群alert日志记录。
2025-07-14 14:08:15
711
原创 物理升级awr报告性能比较
调用的DATA PUMP导出,备份完成,生成数据文件和日志文件。升级后的数据库,进行恢复数据,调用的DATA PUMP恢复数据。检查awr20250220.log日志是否都正常导入。TEST --输入一个不存在的用户名称,临时使用。如sql执行时间比较。
2025-07-08 16:55:08
799
原创 Weblogic12.2.1.4集群部署
基于点对点的TCP/IP协议,通过直接建立TCP连接实现集群成员间通信,无需依赖特定网络硬件,配置简单且兼容性更强。注意:如果和控制台在同一台机子,需要保证端口不能和控制台端口一样,不然会冲突。类型选择普通,监听地址选择一节点地址,创建第二台计算机时,监听地址为二节点地址。进入控制台界面后,进入环境→计算机,点击左上角的锁定并编辑后,新建添加计算机。进入控制台界面后,进入环境→集群,点击左上角的锁定并编辑后,新建集群。设置服务器名称,方便识别是哪台机器的,监听地址,监听端口,选择集群。
2025-07-08 16:54:30
898
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅