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”,解决方法是手动清理“瞬态表”后修改表的默认属性
一次存储链路抖动因I/O timeout不同在AIX和HPUX上的不同表现
去年一个故障案例经过时间的沉淀问题没在发生今天有时间简单的总结一下,当时正时午睡时分,突然告警4库8个实例同时不可用,这么大面积的故障多数是有共性的关连,当时查看数据库DB ALERT日志都是I/O错误写失败,后确认8个实例都是使用了存储层的同步容灾技术…
Oracle 补丁那些事儿(PS、PSU、CPU、SPU、BP、DBBP、RU、RUR、MRPs…)
当前ORACLE数据库提供两种方式的补丁一种是主动的Proactive Patches和另一种被动的Reactive Patches,其中Reactive Patches是指过去的ONE-OFF Patch,而过去的PSU,SPU/CPU,BP都是Proactive Patches。从12c(12.1.0.2)起数据库又提供了一个名为DBBP的补丁类型,在数据库安装选择补丁时建议是PSU,CPU,DBBP中的一种…
Oracle 12c RAC GI两大资源变化GIMR和ASM memory_target
现在老听到抱怨在VM安装12C RAC的资源需求太大,安装个12C GI就要几十G磁盘空间和4G的内存, 这些资源被哪用了?当然离不开GIMR和ASM target memory这两个的变化,这篇就简单的谈谈这两个变化及如何突破限制…
Oracle 12c R2新特性: Proxy PDB
这篇继续ORACLE 12.2的新特性, Proxy PDB顾名思义就是一种代理PDB也可以叫 referenced PDB, 实现的是像访问本地CDB中的PDB一样访问远程的PDB,简单可以说可以快捷方,它的应用场景是当一个程序在application Containers中需要调用两个不同CDB的数据源时..
安全扫描端口 8888风险 和ora.oc4j resource in ORACLE 11g r2
近期安全扫描发现数据库服务器主机存在端口8888暴露风险, 使用http访问该端口是Oracle Containers for J2EE (OC4J)的页面, OC4J是经过J2EE认证的应用程序服务器,提供JSP, EJB, Servlet等程序支持, 在主机上查看用户进程可以确认一个JVM的OC4J进程,是Oracle CRS自带的资源ora.oc4j调用。通常对于数据库没有什么用途,可以停止该服务。
注意: GoldenGate12.2不支持Oracle RDBMS 12.2 error OGG-06535
最新版的OGG 12.2还不支持ORACLE RDBMS 12.2, OGG 的版本是向前兼容的, 按ORACLE的计划会在OGG 12.3版本解决,支持从ORACLE 12.2 extract,(注意这里的OGG 12.3 不是OGG for Bigdata 12.3) , 并且会在2017年的6、7月份发布OGG 12.3, 并未说是否是所有平台。
Oracle 12c R2 : lsnrctl status show EM Express & PDB GUID service (PDB GUID服务)
在ORACLE 12.2版本中使用LSNRCTL STATUS或lsnrctl service查看监听信息时,如果启用了EM Express,从12.1版本增加了EM express的端口和访问信息;从12.2的版本起如果多租户环境,每个PDB增加了一个对应的GUID+DB_DOMAIN的服务名,无论PDB是open还是close都存在。该服务是数据库的internal service,使用该服务也可以访问PDB,但是不建议使用。
Troubleshooting: 实例被驱逐和”IP packet reassembles failed“增长 on Linux 6.6
数据库第二个节点被驱逐出集群,并且多次自动重启以失败告终,驱逐原因在GI Alert log显示是私网通信丢失,而重启失败也是因为ASM无法启动,ASM db alert显示IPC Send timeout. 当时ping和tracert并没发现什么异常,从OSW中的netstat -s查看IP packet reassembles failed时间段值大量增长, 这是一套oracle 11.2.0.4 2Nodes RAC on RHEL 6.6的环境
Scripts: 如何取正在执行SQL的绑定变量值
如果当前数据库正在执行的一个长SQL出现性能问题,想取得运行时的变量时,在之前的版本中可以使用Errorstack level 3 event dump该会话的cursor信息,从trace文件中取得变量。 在11g r2版本的SQL Monitoring 相关的视图V$SQL_MONITOR.BIND_XML也可以方便的取变量值
自动化运维工具之:dcli 批量管理主机
dcli 为Oracle Exadata Machine中提供的管理cell的工具,全名 Distributed Command Line Interface,在Exadata, Exalogic, Exalytics等系列一体机都自带这个工具, 该工具是一套python脚本,可以用文本工具直接查看编辑, 在当前的IT管理中批量管理几百台机器已不是什么稀奇的事, 所以在日常一些批量共性的常规检查和运维就需要一种维护工具自动实现或者叫自动化运维工具, 当前较流行的有puppet和ansible 产品
Oracle 12c R2 新特性: Per-PDB Character Sets (同一CDB中PDB可以使用不同的字符集)
在oracle12.1版本中,同一CDB中的所有PDB使用的都是相同的字符集从CDB继承而来,这样影响了PDB的迁移灵活性,从12.2起同一CDB中每个PDB可以使用不同的字符集, 如CDB是AL32UTF8,其中的PDB1为WE8ISO8859P1 , PDB2为ZHS16GBK, 从其它CDB plug-in一个JA16EUC字符集的PDB也是允许的,在plug-in PDB的过程中PDB会原封不动的进入目标CDB,过程中并不会转换字符集,并且以后新insert的数据是直接使用的原PDB的字符集。
Oracle 12c R2新特性: PDB级闪回(Flashback PDB)
闪回数据库在10G版本时引入,用于闪回数据库到指定时间点,在12C 多租户结构中增加了PDB概念,在恢复时通常为了节约时间和一致性做最小粒度的恢复,在12.1版本如果对CDB中的某个PDB做闪回时需要创建辅助实例和CDB,有些像表空间的基于时间点的恢复 ,在12C r2版本新特性引入了PDB级别的flashback,不再需要辅助实例。
Oracle 12cR2新特性: move table online
有时因为表空间转移或整理碎片的目的需要MOVE TABLE, 但是该操作在12.2之前如果有业务在运行中常常因为排它锁的原因而失败无法有时间点切入。或move 成功后会导致索引无效而又影响了业务,move table online在12C R2版本引入解决了这个问题..
Oracle 12cR2新特性: 使用DBMS_TNS package 在数据库中tnsping
数据库中的dblink创建时如果使用了tnsnames.ora中的别名,那么在日后梳理数据库中所有的DBLINK 与哪些主机的数据库有连接时?通过DBA_DB_DBLINKS视图可能无法直接取到数据库源端地址, 通常需要登录数据库主机使用tnsping 别名的方式来解析IP, 但是如果当时创建dblink时在session级使用了非默认的tnsnames.ora如指定了TNS_ADMIN,查找对应的tnsnames.ora和解析工作变的更佳复杂。所幸在oracle 12.2版本中提供了新的package DBMS_TNS, 可以不登录主机(终端)在数据库内部就可以解析。
Oracle 12c R2 注意事项:login.sql 改变
日常工作中sqlplus是维护数据库使用最多的工具, 通常把一切配置到login.sql中在sqlplus调用时自动运行,以前都是通过SQLPATH或当前目录的方式, 12.2 因为安全特性的原因,如果没有配置ORACLE_PATH环境变量指定,当前目录中的login.sql默认不再自动执行。