如何查找其他session级alter session set修改的参数? Oracle 和Kingbase/HighgoDB(PostgreSQL)
ALTER SESSION命令会更改运行时配置参数,仅影响当前会话使用的值,对其他会话或系统级没有影响,有时需要知道某个会话当前的session级参数,在oracle中比较方便,目前postgresql及基于postgresql的国产库如Kingbase、Highgodb中不太容易,这里我演示gdb的方法。
提供综合数据库运维服务与优化方案(不限Oracle、MySQL、PG及国产数据库), 微信/Tel:(+86)134-365-60330
数据库oracle
ALTER SESSION命令会更改运行时配置参数,仅影响当前会话使用的值,对其他会话或系统级没有影响,有时需要知道某个会话当前的session级参数,在oracle中比较方便,目前postgresql及基于postgresql的国产库如Kingbase、Highgodb中不太容易,这里我演示gdb的方法。
最近有个项目上oracle迁移到ocenabase,但是应用中使用Oracle的数据库内加密函数,数据库中存储的是加密数据,这里有两个注意事项,首先是对于加密函数是否兼容,其次是数据库内的加密数据,如何同步及同步到目标库后已加密码数据能否解密的问题。
前不久整理了一《HighgoDB (PostgreSQL) %SYS CPU newfstatat() high 调优一例》, 这个问题还在持续,并且原因并不只是一个,从调了文件系统级atime,到调整wal size减少日志被动清理,还有在验证temp 文件,这里后来又发现了sysdate函数的timezone调用,简单记录。前面有提到是newfsatat()函数产生的system CPU, 用于文件验证…
最近有个客户在1个40多TB的AIX 平台Oracle国产化改造项目中,配合创建Oracle dataguard 时失败,当使用 RMAN 进行数据库复制(duplicate)操作时出现此错误,提示 ORA-17628 19505 ORA-27040错误,ORA-27040 错误是 Oracle 数据库在尝试访问文件时遇到的 I/O 相关错误,简单记录。
最近有个客户的oracle 19c 3nodes RAC 有一个节点意外crash ORA-600 kjblpgorm:!antilock, 启动时报ORA-600[kfmdPriRegRclient04],并启动过程中重导致之前的幸存节点hang并且重启,Oracle 的基础版本bug 比较多,找我分析并临时解决了该问题,简单记录该问题。
在使用PostgreSQL JDBC处理大型结果集时,正确配置fetch size对于优化性能和内存使用至关重要。最近我们在国产化改造过程中总有一些差异导致应用性能问题,有时不只在数据库还可能在驱动中,如分页查询或其他OLTP场景,我们总希望尽快的返回结果,这里我分享一下Oracle和Postgresql JDBC 默认fetchsize 从服务向客户端发送数据的差异。
oracle支持一些异构平台的dataguard,如Windows 到Linux, 在做了平台迁移后可能会出现一些PLSQL 对象执行报错的现象,如ora-7445 type: SIGsEGv, Address not mapped to object或ORA-600 [PL/SQL Native Code: Wrong Platform] Errors, 是因为plsql对象在Windows是可能已编译为NATIVE本地机器码,换平台后不认证,简单记录解决方法
今天一个客户的oracle 19c(19.17)环境显示top event中出现了一个比较稀奇的event ‘gc index operation’, 也可能是12cR2 RAC新特性”fast index split wait”引入的相同问题, 19c前已知bug常发生成 BASICFILE LOB 对象上,仅记录.
我们可以使用datapump进行 Oracle 的 AUDIT 审计记录导出到其它库,但是导出时有一些限制,使用expdp或exp可能会提示ORA-39166或EXP-00064错误, 如之前审计记录在sys.aud$,使用了统一审计后,记录在audsys.AUD$UNIFIED。导出方法一样,仅记录。
好久没有关注oracle database服务支持周期,最初还是到2025年结束,今年就要过期了吗?显然数据库发展已经进入了成熟期,或没有那么多的新功能需求,大版本的更新周期延长终止了过去每4年一个大版本的神话,oracle 19c发布已经6年了,最近才发现oracle一个重要更新,自 2024 年 11 月 19 日起, Oracle Database 19c 的支持时间表已进行调整。查看MOS 说明:742060.1 – 当前数据库版本的发布时间表,19c又延长了服务支持周期到2029-12-31, ES 到2032年
在服务器运维中,由于未配置NTP服务或存在CPU时钟精度问题,操作系统时间常会逐渐产生偏差。当需要修正这类时间差异时,通常希望在不停库的前提下完成操作以避免影响业务。
对于采用本地文件系统的Oracle单实例数据库,时间修正主要风险在于业务逻辑中若直接调用SYSDATE函数,可能导致事务时间戳跳跃(如业务单据时间异常),但一般不会影响数据库可用性。然而在Oracle RAC(Real Application Clusters)环境中,时间同步问题可能引发更严重的后果——包括集群实例崩溃和强制重启。
继续oracle “killed” 状态的session无法释放的问题,持有的锁可能会堵塞业务,之前有几种情况可以尝试,也有需要要重启实例才能解决的,这里再记录一种oracle 19c RAC的case, “killed” session在操作系统层的进程已不存在。在数据库中尝试kill session也无法正常清理,后台清理进程无法自动清理。
最近一个比较新鲜的案例,环境ORACLE 2-nodes RAC,有3个PDB 多租户架构,在节点2在仅做了某1个PDB级的PGA大小参数后,实例2 crash,并且,重启node2 db instance后,逐个open PDB, 仅当open 此PDB时,实例2会再次crash, 并提示错误:
2025-04-15T12:33:53.433625+08:00
Errors in file /u01/app/oracle/diag/rdbms/anbob/anbob1/trace/anbob1_lmon_50145.trc:
ORA-29740: evicted by instance number 2, group incarnation 121
Exporting BasicFile LOBs can be quite a pain. If your maintenance window is too short, here is a way to make the export faster.When Data Pump starts to export a table with a BasicFile LOB, only one worker will be assigned (due to the limited parallel access methods). If you have a large table, it will take a lot of time for that one worker to process the table.
最近一个客户的数据库出现了短暂1分钟左右的高负载,环境为oracle 11.2.0.4 2nodes RAC , 看当时的top event主要是buffer busy wait和log file sync, 关于buffer busy wait 在Troubleshooting Oracle wait event ‘buffer busy wait’ 有记录过分析方法,是一种hot block现象, 而log file sync又是提交类的,当两者同时发生时,可能是后者影响前者,首先建议排查I/O, 而另1个节点此时正在做RMAN增量备份,简单记录该问题.
最近遇到一客户一套Oracle 19c(19.13) RAC 所有实例在提示ORA-00600 [krccfl_chunk] crash,并且无法启动,该问题发生前提是启用了Block Change Tracking,但并不是它的问题,而是前一天做了一个增加表空间的错误操作,如果有低于19.17的RAC数据库,并且启用了BCT时,注意这个未公开的bug,如果加文件人为失误. 可能会导致您所有的业务中断,这里简单记录。
最近一套oracle 19c的环境出现较高的cursor: mutex x等待,查询SQL ID有近4000+ version count, 从12c “_cursor_obsolete_threshold “参数值达8k,所以这么高的version也未过期,cursor: mutex x是因为version count高引起,哪什么引起high version count呢?MOS上有一篇比输全面的doc. 通过 v$sql_shared_cursor可以发现主要是USER_BIND_PEEK_MISMATCH和ROLL_INVALI
2025年初,DeepSeek 作为一家专注于大规模深度学习模型研发与部署的前沿企业,以其卓越的技术突破,推动了大模型智能应用在多个领域的蓬勃发展。其成功不仅证明了人工智能的强大潜力,众多大模型的崛起,也为AI与医疗的深度融合提供了更广阔的想象空间。如可以提高疾病诊断的精准度,加速药物研发,推动个性化治疗方案的发展等。此外,AI还能改善医疗管理效率,提升了医生的工作体验,同时增强了患者的就医体验。那AI医疗和数据库还有关吗?
oracle 的gateway透明网管支持像oracle dblink一样访问异构数据库如mysql, sql server等,在十四年前当时在维护oracle和sql server时,安装配置过还写了个整理了《安装透明网关 for sql server》,时间过的真快,没想到这次oracle的交接已经全面展开,在过渡阶段可能会存在一些异构数据库的访问,使用 Oracle ODBC 网关和异构服务技术从 Oracle 系统访问 MySQL 数据,本文介绍如何使用 ODBC Driver for MySQL 创建MySQL 和 Oracle 的数据库链接,并通过 SQL*Plus 工具查询 MySQL 数据。
这前总是通过 修改optimizer_feature_enable为不同版本,然后对比级联的参数变化,比较不同的数据库版本之间的参数差异,在Oracle 有个 ORAdiff app: https://oradiff.oracle.com/ 你也可以自己查询。