Exadata Instance crash ORA-600 [ksz_cln_proc1] and restart fail due to breakdown of one CellServer (案例)
cell03存储主机的文件系统异常,导致ASM Hang,数据库实例crash, 虽然是NORMAL级别的冗余,但是数据库实例此时不能于ASM通信,重启CRS进程恢复,可使用剩余的2条CELL继续为数据库提供服务。 在延长了disk_repair_time时间后,等待时间后强置重启CELL03主机操作系统后,一切恢复。
12c R2 RAC instance crash due to CKPT is hung, using Multipathing
12C R2 3Nodes RAC on Linux using multipath 环境的crash总是不定时的crash(几天一次), 使用的是LINUX的多路径软件的默认配置。从日志看是CKPT进程hang超过了70秒所以LMON进程终止了实例, 从CKPT的trace文件中Call Stack看I/O的可能性较大。
案例: RAC Hang wait ‘library cache lock’ & ‘latch: row cache objects’ 在做了大量的表分区DDL后
点1的活动会话已接近4000,几乎全是Library cache lock的会话,blocker session 在等待DFS lock handle ,当shared pool里的对象需要为新的对象释放空间时如sql cursor, LCK进程降低Row Cache 大小期间使数据库临时hang, 因为在RAC环境中LCK进程负责释放持有row cache的用户进程协调工作及Library cache 的请求, 如果LCK出现性能问题也就会导致library cache object无法请求和会话补KILL后的释放row cache堵塞。
ORA-600 [2252] & Know more about SCN
数据库当前的请求SCN大于当前最大允许SCN时会提示ORA-600[2252], 最大允许SCN是有本地系统时间决定。一个可能性是本地库主机时间向前调了,还有个可能性是通过DBLINK 分布式事务同步SCN时,远程库 SCN大于本地允许的最大scn.
How to choose “non recommended” character sets(US7ASCII、WE8ISO8859P1) in DBCA 11G, 12C or later
We limit the default display of database character sets that can be used for a new database in Oracle Database 11 via DBCA (Database Creation Assistant) based on the recommended list.
Oracle 12.2 DB alert show “WARNING: too many parse errors” or “__Oracle_JDBC_internal_ROWID__” in sql
alert log中出现了大量的”WARNING: too many parse errors”,是以前的版本中从未见过,这也是12.2的新特性,自动生成解析失败的信息写入db alert log, 即使没有在数据库启用event 10035,当JDBC 中scroll sensitive resultset 启用时,JDBC驱动就会在用户SQL中自动增加ROWID
Know more about V$BACKUP_CORRUPTION
The V$backup_corruption view shows corrupted blocks discovered during an RMAN backup. But once the corruption on this blocks has been fixed this view is not updated.
Troubleshooting alert log show “Oradism binary does not have root privilege”
alert log frequently show the below worning ———– […]
library cache: mutex X等待事件, blocker session on cpu
library cache: mutex X等待事件是当一个会话以 exclusive mode持有library cache mutex时,另一个会话当前无论何时申请此mutex时必须等待其释放。很多时候对 library cache做不同的操作时都需要申请一个mutex, 所以最重要的是确认mutex的位置”location”, 该位置有助于分析该类等待事件的原因
当DISK大于1T时,10.2.0.5 ASM错误的识别为4095T ON AIX
前几日在一客户搭建ASM环境,存储工程师为每个LUN划分了1TB大小,但是当创建ASM DISKGROUP时显示为每个ASM DISK约为4PB 大小, 当然不是存储工程师开的玩笑,也不是上帝的馈赠,实际是ASM在AIX 平台上的当ASM DISK LUN 在1T及以上的BUG.
Performance Tunning: cursor: mutex X & cursor: mutex S high wait after 12.2.0.1
朋友一套12C R2多组户架构3节点RAC数据库反应数据库响应缓慢,因远程不方便,只拿到事后一份AWR,数据库出现较高的cursor: mutex X 和cursor: mutex S,sql verison能达到7000多,并且high version的SQL都是递归内部SQL, 12.2的隐藏参数_CURSOR_OBSOLETE_THRESHOLD原来现在默认已加大到了8192,
Oracle 2017改变:新补丁更新(RU和RUR),新的版本(Release 18和19)
第一个是从2017年开始改变了季度更新的方式,改变了过去的PSU为RUR (Release Update Revision) ,和改变 ProactiveBP 为 RU (Release Update),第二个是oracle 12c的下一个版本不再延续12.2.0.2 和12.2.0.3的形式发布,从201708月更新MOS note#742060.1确认了计划分别与2018年年第1季度和2019年第1季度发现未来的两个版本oracle 18.1 和oracle 19.1
Oracle 12.2.0.2/Oracle 18.1 新特性: Sequence SCALE EXTEND ?
ORACLE12C的下一个版本是18.1(12.2.0.2),这里我要分享的这个新特性是12.2 已经悄悄引入但undocument的,这个特性因为没有某些原因在12.2中都没有公开,但是SQL语法已经可用,暂时称做Sequence SCALE EXTEND 。注意公开前不建议在用户应用中使用。
Oracle 12cR2新特性:Online Tablespace encryption (Transparent Data Encryption)
TDE是从Oracle 10g R2版本时引入,Transparent Tablespace Encryption对表空间的加密是在ORACLE 11G R1版本引入,但是只支持对新建表空间时指定加密码选项,对后新数据写入加密,在12CR1中可以对表空间OFFLINE后再加密,但是那样对于非常大数据库的数据库就意味着使用更多的时间维护窗口,从12C R2版本引入了online tablespace encryption的新特性,同时还引入了新的管理密钥的方法
Oracle 12c新特性:ORACLE自动维护的Schema或默认创建的USER
ORACLE 12c有些小特性非常的实用,如Oracle 12c New Feature: Last Login Time for Non-Sys Users,可以列出非SYS用户的最后登录时间,该数据可以做为清理用户里的依据, 如果找出哪些用户是ORACLE 系统用户在12C之前还是相对麻烦一些,因为我们可能知道像sys, system这些系统默认创建的用户,其它如果安装时选用较多的DB option时,往往不容易查找自动在创建数据库里脚本中创建的哪些用户。
ASM Disk Discovery 最佳实践
ASM实例的ASM_DISKSTRING初始化参数使用一个逗号分割的字符串限制ASM实例发现的DISK可以用于ASM DISK, 该字符串支持通配符如使用星号(*)表示LIKE,只有匹配了该字符串中的路径,ASM disk才会被发现;同样支持如果问号(?)为该字符串的第一个字符时,像sqlplus中一样表示的是ORACLE_HOME的路径。注意同一DISK不会因为路径多次匹配而显示多次
Troubleshooting ORA-600 [H_MK_WRITING_CR_BG] 11.2.0.3 standby instance crash
env: 11.2.0.3 RAC Dataguard ON Exadata x2, a standby instance crash, alert log show ora-600 internal error, ORA-00600: internal error code, arguments: [H_MK_WRITING_CR_BG], []
How to release still “killed“ status session in v$session? (释放killed的session) (三)
昨天数据库有3个session记录在v$session一直是KILLED状态,且已经好几个小时,当前的等待事件为”db file sequential read”, 其中有一个session是DML SQL,所以最后在事务结束前的行级锁一直未能释放,影响了操作相同记录的业务, 从数据库尝试kill [immeidate]没报错但是无法清理,手动weekup PMON检查PMON trace无报错, 通过操作系统层KILL -9 无报错仍无法清理
Troubleshooting ORA-00600: [kcladdle_1], [], [] in RAC 11.2.0.3
突然数据库出现了较高的enq: TX – row lock contention的等待事件,这是一个APPLICATION CLASS的wait event, 通常出现在DML事务级的行或块竞争,这次的MODE为6, 语句只是简单的delete xx where rowid=:bind; 但是查看数据库和应用日志都出现了ORA-600的错误, 判断问题就不再是简单的行事务竞争, 手动模拟语句也还原出问题,但并不是所有记录每次都能触发,现象为运行DELETE SQL时失败并出现ora-600 [kcladdle_1].
Troubleshooting ORA-00959: name is already used by an existing object 案例
这个问题就是TABLE默认的属性Tablespace已不存在,在Split IOT表失败,但是创建的递归“瞬态表”却留在了数据库中,需要人手动清理,如果不删除下次再次尝试时就会提示不同的错误信息“ORA-00959: name is already used by an existing object”,解决方法是手动清理“瞬态表”后修改表的默认属性