RMAN Fails With RMAN-20021: Database Not Set On Physical Standby

前段时间一套11.2.0.4环境standby db因为password file问题与primary db产生了一个月的Archivelog GAP,修复密码文件后Standby已同步跟上Primary db ,但是原备份软件在Standby上的备份任务从那天起一直失败报错RMAN-20021

,

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错误

如何恢复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 11.2.0.4 SDO ORDIM XDB CATPROC XQQ invalid after install ojvm psu

在安装oracle 11.2.0.4后在应用OJVM PSU后错误执行了readme中的exec dbms_java_dev.disable; 后,数据库多个之前的组件都失效(INVALID), 大量invalid对象,查看dba_registry显示如下,像SDO ORDIM XDB CATPROC XQQ.

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

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

oracle 如何调用 postgresql中的procedure、function?

在去O的过程中或当前多种数据库并存时,有些存在跨DB的调用,如可以使用gateway,dblink或fdw在oracle和postgresql间跨数据库访问数据,当前有个项目存在2个数据库存储过程的依赖调用,如果从oracle调用postgresql中的存储过程呢?

,

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

“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错误引起的一系列问题。

, ,

如何在Oracle 19c expdp/impdp 脚本中不使用密码?

MySQL中容易泄露数据库用户密码的地方,如shell、SQL的历史记录、主从复制等,当然也包括部署的一些数据库脚本,如逻辑导出,Oracle也不例外,好多用户在用户密码复杂度上很苛刻,但如在数据库中部署的如RMAN、EXPDP等脚本还是明文的密码那就比较不规范,

,

PCTFRR for index and HOW to find index blocks by key value?

pctfree常用于控制block中预留的空间,对于table insert是发现超过pctfree后分析新空间,但是对于index对象PCTFREE只是在创建索引时(create or rebuild)生效,平时的DML后并不会保留该空间甚至会耗尽做index block split, 之前写过一篇Oracle 12c: index treedump, 这里再延伸一篇,如果根据index key entry查看index block.

如何检查Oracle Dataguard Gap?

Oracle DataGuard是Oracle DATABASE的容灾方案,在负载不是极高的情况下,异步模式最大性能下确实像宣传的那样可以压秒级同步(async), 也有一些金融客户对容灾要求极高配置DG为同步(sync)最大可用模式,会牺牲一些提交时的性能确认standby 反馈后给应用进程完成commit。 那常用的异步最大性能模式如何查询primary与standby之前的gap时延差异,oracle提供了一些view

浅谈数据库与GPU?

最近有客户咨询数据库可不可以使用GPU (Graphics processing unit)来给数据库负载加速, GPU 是专用的高度并行硬件加速器,最初设计用于加速图像的创建。最近,人们一直在寻找GPU来加速其他工作负载, 对于GPU的非显卡使用场景最火的当属对于虚拟货币的挖矿,

,

Oracle Data Redaction 19c 数据脱敏

前几天见有客户咨询表列数据只让部分用户可见的访问控制问题,Oracle数据库在数据安全上的解决方案也是相当优秀的, 除了权限配置,还有加密与脱敏功能与组件,如列级TDE加密和Data masking对真实数据有修改,同时安全访问还有VPD、DV、 Data Redaction白皮书此类不修改原始数据。这里简单总结分享Data redaction功能特性。在EDB数据库发现同样实现了该功能。

RHEL7(Linux7)安装Oracle 12c RAC 问题小结

之前总结过一篇RHEL7(Linux7)安装Oracle 11g R2(11.2.0.4) RAC 问题小结, 这里记录一个12c安装姊妹篇, 现阶段oracle数据库版本虽然已经不在主推12c,但存在一些客户安装12c时的问题, 这个版本确实存在很多不成熟的地方,在DB安装OUI阶段可能就几个问题。

How to trace DB processes system calls using Strace -k

当前数据库种类较多,像oracle等闭源数据库在诊断特殊疑难问题时需要分析内部C函数的call stack, 目前的oradebug short_stack或errorstack,linux系统中的pstack只是dump当前的调用, 还有现在的开源数据库虽然可以查看源代码,但是没法较方便的方法在运行的进程过程中持续跟进多个内部调用的call stack. 增加了故障分析的复杂性和诊断时间, 这里看到了一种使用strace跟踪的方法记录一下。