High wait event ‘row cache mutex’ in 12cR2、19c
In Oracle 12.2.0.1.0 (12cR2), “row cache mutex” replaced 12.1.0.2.0 (12cR1) and 11g “latch: row cache objects”, similar to “latch: library cache” substitution by “library cache: mutex X” in the previous release. High waits on “row cache mutex” when looking up user or role information in user row cache (dc_users)
Oracle 11g 升级 12c 、19c后改变 database trigger fail with ORA-01031
无论出于安全、特性、性能、支持周期都需要考虑升级数据库,但是也会导致有些功能改变而影响软件使用或管理方式,升级后经验格外重要,因为oracle官方提供的功能无法模拟各行业生产环境中所有的应用场景, 尤其是从最近要面临的11g升级19c大版本升级,防止踩雷,像wm_concat 在新版本不支持一样。
Oracle GoldenGate增加字段问题(下) replicat OGG-00918 Key column xx is missing from map
如果在有OGG的表上增加列,又未启用同步DDL ,操作流程不当会遇到很多麻烦, 这里记录replicat进程异常终止。
OGG-00918 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Key column NOTE is missing from map.
Oracle GoldenGate增加字段问题(上): Extract OGG-01028 Number of digits N+ exceeds max N on column
“酒虽好,不要贪杯” ! OGG在同步效率、安全、兼容性上一致做的很出色,广泛用于数据同步,支持异构, 但是在它的使用过程中也要严格按照流程使用,如何在OGG同步的表上做DDL操作有严格流程,如果任性的使用,后期维护必将带给诸多麻烦, 这里简单记录在OGG进程正在同步事务的情况下增加字段导致的抽取进程异常终止。
Redis学习01之安装Redis6 on Linux 7
Redis是一个速度非常快的非关系型内存数据库,最初由Salvatore Sanfilippo创建,可以存储Key与5种不同类型的Value之前映射,可以将内存键值持久化到硬盘,也可以使用复制特性扩展读性能,算是一个远程内存库,有强劲的性能,致力于帮助用户解决问题,并且开源,通过复制、持久化、分片可以扩展成一个包含数百GB数据,每秒处理上百万次请求的系统,所以在目前的高并发应用中普遍采用
Troubleshooting Oracle 19c RAC db crash with ORA-00600 [kcbbxsv_nwp]
ORA-00600: internal error code, arguments: [kcbbxsv_nwp], [], [], [], [], [], [], [], [], [], [], []
kge_experr : Found error ORA-600 not in expected list.
kge_experr: Dumping error frames [top = 1 : barrier top = 0]
kge_experr : [0] : Error = ORA-600 :
Call stack = ksedsts()+426<-kge_snap_callstack()+77<-kgeadse()+557<-kgerinv_internal()+44
<-kgerinv()+40<-kserin()+180<-kcbbxsv()+17478<-kcbb_coalesce_int()+326<-kcbb_coalesce()+438<
-kcbbwthc()+817<-kcbbdrv()+8765<-ksb_act_run_int()+117<-ksb_act_run()+130<-ksbcti()+18
升级Oracle 19c经验: TTS时ORA-39083和ORA-00942案例
上周在使用TTS传输表空间从11.2.0.4到19C, 在最后impdp metadata的环节提示ora-942 结果提示有大量索引没有创建成功,但是查看报错的表实际是存在的, 后来发现这是一个收权问题导致的。后分析这种场景是发生在如一开始给了一个用户如create ANY table/index的系统权限或者dba 角色或是on object上的权限,后来创建了跨SCHEMA的index(indexes and tables differenct owners)或FK 约束时,再后来安全整改收回大权限,就导致了这个问题。
How to disable DRM? Oracle 10G, 11G, 12C-19C
DRM is driven by the following
1.) _gc_affinity_time = Time in minutes at which statistics will be evaluated (default = 10 mins)
2.) _gc_affinity_limit = # of times a node accesses a file/object (default = 50)
3.) _gc_affinity_minimum = minimum # of times per minute a file/object is accessed before affinity kicks in
(default = 600 per minute per cpu )
4.) _lm_drm_disable = LEVEL disable drm in different level( default=0 )
Oracle Internal BLOCK CHANGE TRACKING
Oracle RMAN was able to take incremental backups already in 9i. However, prior to introduction of Oracle 10g block change tracking (BCT), RMAN had to scan the whole datafile to and filter out the blocks that were not changed since base incremental backup and overhead or incremental backup was as high as full backup.
升级Oracle 19c经验: TTS 在使用datapump导matadata时EXCLUDE=STATISTICS 不启作用
在使用TTS迁移一个8T 的11.2.04到19c PDB时,发现expdp和imdp元数据过程中statistic占用了约1个多小时的时间, 但是我检查了实时步骤中确实有写exclude=statistics,猜测是参数没启作用,不能忍. 结果发现这是一个预期行为
Oracle 12c 19c Automatic terminal/kill session feature& DCD
数据库会话同样会占用数据库资源,如客户端异常断开在客户端成为一个dead session会永远存在,如果客户端没有断开也没有活动就是一个idle session, 如果这个idle session做了一些修改未提交,然后下班或去吃饭、上WC、开会等,这时就会堵塞其他人对相同的数据做修改,这类会话可以叫做idle blocker session. 在自治数据库中这些session 都可以被释放或者kill / teminal 终结掉,下面对不同的session如何被释放
Oracle 11g 12c 18c 19c .. IMPDP Always Creates Indexes with Degree 1
From 12.2, DataPump import (impdp) will always use non-parallel index creation during import overriding parameter ‘parallel’ in command line or parameter file.
Troubleshooting ORA-27102: out of memory Linux-x86_64 Error: 12: Cannot allocate memory
Insufficent memory related errors (i.e: ORA-27xxx).ORA-27102 error may occur because of insufficient shared memory segments.
ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory
Troubleshooting Wait event: enq: HW – contention思路
HW enqueue根本存在目的是为了串行化对segment高水位线的移动以及回收lob segment中的空间。造成HW enqueue contention争用的根本原因多种多样,但最终HW enqueue总是只在数据段segment High Water Mark高水位线需要移动时才被持有。
Troubleshooting ORA-00600: internal error code [6006] corruption block
Oracle is undoing an index leaf key operation. If the key is not found, ORA-00600 [6006] is logged.
ORA-600[6006] is usually caused by a media corruption problem related to either a lost write to disk or a corruption on disk.
BBED simulates and fixes ORA-08102 error (Oracle 19c) (二)
方法一使用了bbed修改 index key的方法, 因为表列上只有这一个索引,所以只改一个索引就可以。这里还使用相同的方法模拟ora-8102,使用第二种方法,删除bootstrap$中的index I_OBJ4 记录解决。
BBED simulates and fixes ORA-08102 error (Oracle 19c)
Sometimes due to sudden power failure and other reasons, the database data dictionary is inconsistent, such as hits ora-8102, the indexes key and the table key value does not match, often delete the index, rebuild the index can be resolved, but if the object_id <60 bootstrap$ internal The index is damaged, and the normal situation needs to be backed up and restored, because some of the indexes in these bootstrap $ cannot be rebuilt by setting event 38003
Oracle数据库许可(License)
Oracle产品可从Oracle网站免费下载。但是,在使用它之前,您需要同意Oracle Technology Network(OTN)开发人员许可条款。最近几年虚拟化、云化环境的普及,Oracle的license许可有些疑惑,在这里特意整理一下。Oracle文档中关于此主题的信息确实很少,稍不注意可能会带了百万级的费用消耗, 前提是你有严格对待ORACLE的软件许可,当然还是以Oracle合同中指定条款为主。
DB Time 去哪了? Oracle 12C AWR 增加了on cpu runqueue
是否遇到过在分析AWR报告时,明明AAS很高,但从Top 10 Foreground Events by Total Wait Time 上看top event使用的百分比加起来离100%很远? 那DB TIME去哪了?下面我附一个11G(11.2.0.4 RAC on AIX) AWR 案例,这个问题在12c的AWR中提供了TOP EVENT。