审计ORACLE程序文件是否被修改

最近在迎接安全审计,其中有一条需求是: 文件完整性检测对应数据库为安装的程序文件、配置文件(排除数据文件、日志文件) 也就是需要定期对数据库软件的重要文件做内容校验,避免重要文件被篡改。 整体思路是: 1. 由于oracle的文件太多,我们假设重要的可执行文件目录为$ORACLE_HOME/bin和 […]

Continue Reading

Direct IO+asm引起css initialization

某数据库升级到12c后(应用代码也升级了),出现了大量css initialization的等待:

怀疑是否是12c的新特性导致。 CSS initialization 说明: 在RAC(或使用ASM的单实例)数据库环境下,当前台进程 […]

Continue Reading

not exists对外层查询的影响

又一个类似『12c比10g索引回表消耗增多的问题』的案例,同事在12c中跑的buffer get很高,但是在10g中跑的buffer很低。怀疑是不是12c的优化器有问题。 这个10g的环境和12c的环境,数据量大致一样,只是有很少部分的不同,但是就是这个很少部分不同,造成了not exists中的子 […]

Continue Reading

无法修改xs$null用户密码

修为安全审计的原因,发现数据库中有一个XS$NULL用户,尝试为其修改密码,发现报错。即使是sys用户也无法修改XS$NULL用户的密码:

在线文档说,这是一个内部的保留账户,它不是一个user,只允许oracle实例访问,无法通过外 […]

Continue Reading

SP2-0642: SQL*Plus internal error state 2130, context 0:0:0

今天一个10g的客户端,连接12c的数据库,报错:

而这个客户端连接其他12c的数据库是没有问题的。 这是因为建立的service已经是非标准的service,包含了failover type等参数。见下面的Test Case: [c […]

Continue Reading

10g之后支持中文逗号作为查询分隔符

客户的开发在12c的测试库发版本(SQL代码),能顺利发布,但是在10g库发布同样的一套代码,却报错ora-911了。发现是代码中带有中文的逗号。所以他们希望确认一下,为什么12c能用中文逗号做分隔符,而10g不支持。 这是12c的新特性吗?有官方文档支撑吗? 测试了一下,确实在10g报错,但是12 […]

Continue Reading

某客户核心数据库库升级前的问题处理和升级步骤

这个升级发生在1年前,客户的这个核心数据库可能是当时全球最大的9i OLTP数据库。有120多TB。 我的分享分成2部分,前一部分,讲讲这近1年来,帮助客户在升级测试中处理的一些问题。后面一部分,将他们的升级步骤,主要讲升级的架构变化,如何利用这个架构来减少风险。 (一)升级前的问题处理(那些年我们 […]

Continue Reading

12c无法按照预期修改parallel_max_servers

客户有个12c的环境,正在做xtts的迁移,从10g迁移到12c。其中一项要求是12c的一些初始化参数和10g一致,如parallel_max_servers。发现设置后,重启了数据库,还是无法达到预期的修改值。

打开其alertlo […]

Continue Reading