oracle 12cR2 新的权限组sysdg, sysbackup, sysrac, syskm

在许多公司中,各种与Oracle数据库相关的任务(如管理ASM和备份/恢复Oracle数据库)都有明确的职责分离。在过去都是使用sysdba管理所有权限如asm\DG\备份, 从Oracle Database 12c R1开始,可以使用SYSBACKUP,SYSDG和SYSKM管理权限。从Oracle Database 12cR2开始,新增加了SYSRAC管理权限..

Troubleshooting ORA-21780 during SMON to clean transient type

This issue happens on Oracle RAC environment 11.2.0.3 , db alert log show ora-21780 frequently caused by the SMON is not able to clean some objects, This short article simply record it. and how to fixed it. # db alert log Fri Nov 02 09:55:59 2018 Errors in file /oracle/app/oracle/diag/rdbms/anbob/anbob1/trace/anbob1_smon_12872.trc: ORA-21780: Maximum number of object … Read more

Oracle 12.2 Flex ASM安装RU后ASM、GIMR等资源未启动, 手动启动提示CRS-2549“it is not a valid candidate as per the placement policy”

今天遇到的一个案例,一套ORACLE 12.2 FLEX CLUSTER, 在安装了RU(20180417)后节点2的CRS启动正常,但是其它如ASM、DB、GIMR 等资源都未启动, GI alert log并未发现错误,手动使用srvctl启动ASM资源提示:
CRS-2549: Resource ‘ora.asm’ cannot be placed on ‘anbob02’ as it is not a valid candidate as per the placement policy

浅谈ORACLE免费数据库Oracle Database XE版

Oracle database XE发布过10G、 11G, 最近XE 18C 发布,而且是18.4版, 注意这里的版本不等同于ORACLE DATABASE EE的版本号。

ORACLE DATABASE XE 18C IS FREE For Me, FREE For You, FREE For Everyone! and Free to Download , Free to Use, Free to Deploy!
看到FREE无比的激动,她不只免费,而且较比之前的版本,是一个Full OPTION ON的版本

Oracle Database 18C (18.3) RPMs 安装方式

近日oracle发布了传说已久的RPMs安装版本18.3, 但不是oracle database core mini版, 安装文件有3.5GB左右大小。  业界这么关注是因为这是oracle database的第一个可以使用rpm方式安装的版本, 这样就简化了数据库的安装部署,降低了oracle安装的技术门槛, 目前可以去官方OTN下载 FOR Linux x86-64bit 版本。 安装介质 安装软件 开始前如果你使用OEL, 拥有ULN, 可以以root身份执行 yum -y install oracle-database-ee-18c 如果当前环境没有ULN需要下载率离线的安装包和oracle数据库的原装软件请求包preinstall,然后以root身份执行 yum install -y install oracle-database-preinstall-18c yum -y localinstall oracle-database-ee-18c-1.0-1.x86_64.rpm 如果是RHEL环境需要手动下载源文件,然后以root身份安装 # RHEL7 curl -o oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm yum -y localinstall oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm rm oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm # RHEL6 curl -o oracle-database-preinstall-18c-1.0-1.el6.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/getPackage/oracle-database-preinstall-18c-1.0-1.el6.x86_64.rpm yum -y localinstall … Read more

event “library cache: mutex X” caused by Long time dynamic sampling of large tables

一日数据库多个会话出现较长时间的等待, 等待event是”library cache: mutex X”, 关于这个等待事件以前在post记录过,发生在SQL的解析阶段,在申请libary cache的锁时产生的等待,当时是部分应用session 被一些监控会话堵塞,这些会话正在执行v$sql ,v$sqlarea的收集统计,同时又被一个应用UPDATE会话堵塞,该会话当前是ON CPU,且已经执行了有近2万秒,正在执行动态采样的SQL…

AIX 增加白名单(ipfilter)后导致的CRS启动失败(CRS-1612:Network communication xxx timeout )

本次故障是因为前期主机配置了白名单,安全扫描导致CRS 2节点crash, 在CRS自动重启中又因为白名单,网络通信异常,无法启动CRS进程。此时手动启动2节点甚至会导致1节点crash. 因为目前没有找到官方文档描述对123端口的描述…

Troubleshooting performance wait event ‘row cache lock’

Row Cache 或 Data Dictionary Cache 是共享池中的一个内存区域,用于保存数据字典信息以减少数据字典表的物理 I/O。行高速缓存锁主要用于序列化对数据字典的更改,当需要对数据字典高速缓存进行锁定时,将等待该锁,数据字典行上的锁称为row cache lock。等待此事件通常表示发生了某种形式的 DDL,或者可能是递归操作,例如存储管理和递增序列号。

Oracle Internal C functions (非官方)

anbob.com收集的一些ORACLE 数据库内部调用C函数,以后会一直更新下去,如果有不存在的可以提供发函数给我。 abort ==> No direct match action ==> No direct match adbdrv ==> alter database driver al ==> No direct match A ==> No direct match apadrv ==> SQL Access Path Analysis drive access path selection for a sql command assert ==> No direct match auddft ==> audit default function BackgroundThreadStart ==> No direct … Read more

Oracle Database 配置IPV6 (一)

Oracle 11.2中除了ORACLE RAC和Oracle Clusterware所有功能都支持IPV6, 还有也不支持ASM使用IPV6,支持IPV6和IPV4共存. 在ORACLE 12C中,Oracle支持IPV4和IPV6在同一个网络,同样也可以配置PLUBIC network(Public/vip)在IPV6和IPV4,但是确保同一集群中所有节点使用相同的IP协议。但12.1 时不支持WINDOWS和private newwork. 在12.2 版本中 ORACLE提供了完全的支持IPV6,包括WINDOWS平台,ASM, FAN, 所有平台中的ORACLE Clusterwarer的private network。

“Out of Range” 谓词越界 dbms_stats.copy_table_stats

BMS_STATS.COPY_TABLE_STATS存储过程通常用于大的分区表的统计信息复制,当增加一个新分区后,如果立即收集统计信息使用dbms_stats.gather_table_stats当前的数据又不能反应数据的真实分布,更容易因统计不准确出现错误的执行计划或out-of-range(越界)使CBO估算错误的Cardination, 所以可以使用dbms_stats.copy_table_stats直接复制上个分区的统计给新的分区

Troubleshooting Oracle wait event ‘buffer busy wait’

在许多情况下,数据块的Buffer busy waits是因为多个进程重复访问相同的块。例如,如果多个用户正在扫描同一个索引,则第一个会话会快速处理缓冲区缓存中已有的块。但是,当需要从磁盘读取某个块时,扫描同一索引的其他会话会赶上并也需要该块。因此,它们必须等待缓冲区缓存,因为另一个会话已在从磁盘读取该块。

Oracle 18.3 hidden undocumented parameter list

here is all of the Oracle 18c 18.3 on-premises hidden undocumented parameters: SQL> select n.ksppinm p_name, c.ksppstvl p_value 2 from sys.x$ksppi n, sys.x$ksppcv c 3 where n.indx=c.indx 4 and lower(n.ksppinm) like lower(‘\_%’) escape ‘\’; P_NAME P_VALUE ————————————————– ————————————————– _appqos_qt 10 _appqos_po_multiplier 1000 _appqos_cdb_setting 0 _ior_serialize_fault 0 _shutdown_completion_timeout_mins 60 _inject_startup_fault 0 _wait_outlier_detection_enable OFF _wait_outlier_event_names _wait_outlier_lambda_x1000 1500 … Read more

Troubleshoot DDL递归SQL触发的row cache lock deadlock(死锁)

两个同时启动的JOB, truncate 了不同的对象DDL, 递归触发了DDL trigger的审计操作,在insert DDL日志表时,遇到了回收站空间再利用,再次递归触发了drop table BIN$ purge, 又属于DDL操作, 并且申请的回收站对象的row cache enqueue时,在2个跨实例会话互相等待对方持有对象lock造成死锁