2022年年终总结

Anbob建站跨进第14年年头,习惯性在次年春节前前总结一年的经历,这一年都很难, 大疫三年,时间也不短,当家里的小孩儿都不再唱雇佣者,听我说谢谢你变成尬舞,临近年末宣布疫情新入新阶段,但也无奈有些人可能无法熬过这个春节,因为疫情影响实在太大,“二舅”可能都没冶好的矫情,在不断“续杯”疫情防控封小区囤菜打回现实,放开后报复性消费击倒了“海克斯科技”的冷静。

Troubleshooting Oracle ORA-04031 Due To KGLH0 Heaps growth

KGLH0 associated with the SQL Area in the Shared Pool. Each child cursor consumes KGLH0. Large allocation in KGLH0 can occur due to many child cursors and a lack of sharing of the parent cursor.A library_cache dump(“library_cache level 16”) reveals that each child cursor is associated with one KGLH0 and one SQLA, where KGLH0 stores environment information, and SQLA parsing tree and xplan.

Oracle 12c后的安全增强查询sys.user$ ORA-01031

Oracle 12c后的安全增强可能会导致运维中出现些差异, 如有时需要非sys用户查询sys的user$、link$等基表,这些表是因为存有password hash值,在之前一些安全部门查询是否有弱密码时喜欢采集user$,之前授权select any dictionary系统权限或dba role可以,但在是12c后增强不再允许,还有像Toad这种第三方工具如11.6的老版本在连接数据库时还以检测select any dictionary 判断user$权限也提示ORA-1031错误

AIX 平台分析TOP CPU使用进程ps和topas差异

近日一客户应用反馈数据库使用较慢,每个数据库的性能分析应该先从操作系统负载分析开始,当CPU耗尽时,其它指标可能失真变的没有意义, 当系统缓慢时不应仅从DB里找原因,数据库中几乎无负载,查看OS层发现idle接近个位数, 操作系统为AIX, 从OS层定位top process的命令通常有topas, ps, vmstat,nmon -t等,发现ps和topas显示cpu占比存在较大差异,4%和90%. 简单记录一下。

如何恢复Truncate sys.IDL_UB1$?

近日一客户咨询truncate table sys.IDL_UB1$如何恢复, 为什么会有这样的需求?后来我在测试统计了一下system表空间的TOP 10的大对象,它确实在TOP 1。猜想应该是看到system表空间使用率高, 也未评估IDL_UB1$表的重要性,直接truncate释放了空间。 然后数据crash无法再启动。我找了个19c PDB测试库测试一下如何恢复?不要在生产库测试,也不要轻易删sys Schema下的对象。

Oracle迁移到PostgreSQL注意事项: to_date

近年来国家xc的推广,现阶段国产或开源库迁移逐渐列上日程,目前看已大势所趋, 在选择部分国产(基于)或开源数据库里安全健康的开源协议需要考虑, PostgreSQL是功能强大最接近Oracle的并有全球客户经过长期磨炼过生态健全的关系型数据库,最近有一个项目在原有一套Oracle的应用数据迁移到PG后,在两个PG环境中双数据源双写数据时,其中一套PG的数据库入库存在问题

Troubleshooting ORA-20 on ASM instance after ‘ntpdate’ change OS date

环境oracle 11.2.0.4 2-nodes RAC, 有一套ASM instance登录实例时总是提示ORA-20 进程数耗尽, 该错误常见于DB instance ,本次多台数据库同时出现该问题,但数据库实例暂时未挂,后发现所有机器有部署ntpdata crontab同步OS时间,最后一次错误向前调整了2年的时间后,又修改后出现的该问题,简单记录。

Oracle 23c 几个开发相关新特性

Oracle 23c是19c后又一个长期支持版本(long term release),因为疫情的影响和Oracle版本策略调整,19c后一直未发现可本地部署的版本,23c 目前还是beta版仅ACE Direct和合作伙伴等部分人员下载测试,今天10月份William Hardie发部了申请beta的申请方式,

How to config Hugepage when 1M hugepagesize on IBM LinuxOne

对于oracle、Postgresql都建议配置Hugepages, 通常RHEL linux上看到的hugepage size默认都是2M, 并且在Oracle 19c的db alert log中实例启动时有对于hugepage 使用个数的提示, 但是只有4k, 2M, 最近发现一客户IBM linuxone环境的Linux默认hugepage size为1MB(for IBM Z the hardware page size is 1 MB.), 那在配置hugepage时, DB alert log关于hugepage会如何显示?

How To fix Oracle 19c PDB clone cross differente RU CDB, Then PDB in restricted

几年前12c刚release时测试过一系列pdb的功能,其中有小测试一下12.2的pdb hot clone,最近看到一个案例是19c 在不同的RU版本的CDB之间通过PDB clone迁移的数据库,从19.6 clone到19.11后PDB 变为restricted受限模式,查询PDB_PLUG_IN_VIOLATIONS看到如下错误:
‘19.11.0.0.0 Release_Update 2104130040’ is installed in the CDB but ‘19.6.0.0.0 Release_Update 1912171550’ is installed in the PDB

Linux最佳实践for Postgresql/openGauss

Linux 内核提供了各种可能影响性能的配置选项,为了获得最佳性能,PostgreSQL 数据库取决于正确定义的操作系统参数。操作系统内核参数配置不当可能会导致数据库服务器性能下降与系统稳定。因此,必须根据数据库服务器及其工作负载配置这些参数。就像任何其他数据库一样,PostgreSQL依赖于Linux内核进行最佳配置。

“alter table ” modify column in Oracle、MySQL、PostGreSQL(数据库比较系列十三)

‘alter table’ DDL操作后期运维时比较常规的操作,但在oracle,MySQL,PostGreSQL中行为并不相同,Oracle还是三者中代价最低的,但是在Oracle DBA转向其它数据库运维时,以O的经验维护像MySQL、PostGreSQL时修改列的小动作可能会出现故障,比如空间耗尽、持续时间长、锁、执行计划变等现象。这篇分别测试一下三个数据库在ALTER TABLE modify column上的影响。

Troubleshooting ORA-00600: internal error code, arguments: [kcbbxsv_nwp] and opatch fail one-off patch

几年前在某个客户查看Oracle数据库 RAC补丁时发现节点间存在不一致的现象,当时在这篇《Using ‘opatch lsinventory’ show patched is real? (看到的补丁信息真的靠谱么?) 》记录过, 最近又遇到了一片“沼泽地”环境,运维人的窘境是无法要求建设阶段如何规范化,什么样的环境都要接,即使到处是坑。这里再分享一例有个ora-600错误引起的一系列问题。