OCM成长之旅
写在前面的话 2016年7月,一个安静的午后,屋外夏日炎炎,连一向聒噪的知了都犯困噤了声。小憩的我,因为Oracle Certification Program发来的祝贺信打消了睡意。今日恰逢我的儿子,小YF,半岁,还有什么是比OCM证书更好的礼物呢?看着他睡着了还露出可爱的笑容,感觉屋里的空气都变得甜蜜起来,初为人父的我总希望...
11g Grid Control安装过程的一些“坑”
Oracle提供的图形化管理工具目前主要有三个版本: EMDC:Enterprise Manager Database Control EMGC:Enterprise Manager Grid Control EMCC:Enterprise Manager Cloud Control DC需要为每个实例创建一套,而GC则可以统一管理多实例,CC则运用了很火的“云”概念来做统一管理数据库,可谓是增强...
一个用户创建引发的权限控制问题
昨天开发同学提了一个需求,比较有意思。需求描述:要求开发库创建一个新用户A(默认表空间TBS_1),由于这库是共享库,还有其他schema(示例:表空间TBS_2)被其他组的开发人员使用,需要避免使用A用户的开发人员,利用create table t(col name) tablespace tbs_2通过指定表空间的方式在tbs_2上创建表,即禁止用户A可以...
impdp的TABLE_EXISTS_ACTION参数选项
impdp有一个参数选项TABLE_EXISTS_ACTION,help=y的解释为:Action to take if imported object already exists.Valid keywords are: APPEND, REPLACE, [SKIP] and TRUNCATE. 官方文档有句话:“Only objects created by the Import will be remapped. In particular, the tablespaces...
interval间隔分区STORE IN参数的作用范围
11g推出了interval间隔分区,以往的分区是需要手工或半自动化脚本实现分区扩展,但这种间隔分区的出现,将分区扩展的工作彻底解放出来,这里不讨论何为间隔分区,主要说一下创建间隔分区有一个STORE IN参数,官方文旦对其的介绍是:The optional STORE IN clause lets you specify one or more tablespaces...
EDB分区表的又一个“坑”
下周有一个应用上线,其中涉及一个夜维删除逻辑的应用,大体功能是按照时间删除一张表的历史数据,这张表的主键是另外一张时间分区表的外键,使用的是EDB(9.2)数据库,这次测试就意外发现了一个说是隐藏,也不算隐藏,至少和Oracle分区表有很大不同的地方,或者可以称他为KENG,“坑”。P.S. 这里不是贬低EDB,...
一个listener.ora配置细节的问题
今天做练习的时候,发现一个问题,可能是很小的细节问题,但确实稍微折腾了一下,记录于此,方便以后查阅。问题现象:1. 配置listener.ora静态监听。2. 使用静态监听创建EM。3. 使用sqlplus system/oracle@XXX或EZCONNECT方式,也提示错误:4. 使用sqlplus / as sysdba可以正常登录...
如何根据v$parameter查询Oracle隐含参数
Oracle的隐含参数在Oracle的官方文档中是不会出现的,这些参数主要是Oracle内部用于控制某些功能的开关,或者就像今天eygle讲的,Oracle牛逼之处就是可能几年前开发的一个功能就放到当时的版本中,让你“试用”,但你却不知道,如果碰巧因为遇见了这个问题的bug,Oracle会告诉你可以使用这个参数关掉,等用户“试用”了几...
寻找锁定数据库用户的真凶
前几天,一位兄弟部门的同事,提过来一个问题,有一台开发Oracle数据库服务器,修改了一个应用用户的密码,然后就发现这个账户隔几分钟就会被锁,需要手工unlock解锁才行,但没过一会又被锁了,问了一圈开发人员,基本都说使用这个账户的应用要么停了,要么跟着改了密码。很是挠人。从现象看,推测可能还是有未修改用...
外键要建立索引的原理和实验
项目中,我们要求凡是有主子关系的表都要使用外键约束,来保证主子表之间关系的正确,不推荐由应用自己控制这种关系。但发现有时开发人员提交SQL语句时未必会注意外键列需要定义索引,或者不清楚为什么外键列需要建立索引,网上一些所谓的“宝典”也会将外键列建索引作为其中的一条,包括TOM大师,曾说过:...
对象迁移空间对索引状态的影响
上篇文章介绍了迁移表、索引对象的操作: http://blog.itpub.net/7192724/viewspace-2040192/发现漏了一个细节,就是表、LOB对象移动后索引的状态。1.创建测试表CREATE TABLE tbl_able(id NUMBER PRIMARY KEY, con CLOB);该表有一个CLOB的大对象。SELECT * FROM user_tables WHERE table_name...
对象迁移表空间引出的三个小问题
我们有一个开发库,默认表空间是TEST_TBS,但今天查看开发库的时候,发现有些表和字段并不在用户默认使用的表空间中,而在USERS表空间,之所以可能是之前开发人员执行SQL是从其他库复制过来的,连通tablespace USERS名称一块复制了,为了规范,就需要将这些对象转移下表空间,期间碰见了几个常见的小问题,值得记录一下...
对象迁移表空间引出的三个小问题
我们有一个开发库,默认表空间是TEST_TBS,但今天查看开发库的时候,发现有些表和字段并不在用户默认使用的表空间中,而在USERS表空间,之所以可能是之前开发人员执行SQL是从其他库复制过来的,连通tablespace USERS名称一块复制了,为了规范,就需要将这些对象转移下表空间,期间碰见了几个常见的小问题,值得记录一下...
从NOT NULL完整性约束的介绍看Concept的强大
Oracle Concept是我们平日学习的官方宝典,之所以称为宝典,一个原因就是很多问题,归根结底可能都可以从Concept中找到一些说明和出处,记得有一次Kamus回答网友问题的时候(具体问题忘了),援引的就是Concept某一章节的一句话。另一个原因就是其内容表述言简意赅,一些使用上的细节用简单的几个单词或几句话就带出来了...
ORA-09817错误
今天来单位值班,碰巧登录一台开发数据库时报错: 从报错看提示的是由于设备上没有空闲空间,导致audit文件写入失败。顺着提示,再看下磁盘使用率: 很明显,空间使用率已经100%。接下来就需要清理磁盘空间,看了下目录占用率: 其中fast_recovery_area文件夹占用了2.3G,应该...
使用RMAN复制恢复开发库环境
最近为了不影响开发库的使用,打算复制创建一个备库,定时更新,防止开发库不能使用的情况下,可以临时使用备库,不影响进度。环境: 11.2.0.4的单实例库。 库1是源库(target),库2是备库(auxiliary)操作过程:1.库1执行全库备份[oracle@testvm002 duplicate]$ rman target /Recovery Manage...
我的小YF降生了
这是2016年的第一篇博文,虽然可能和Oracle没太大关系,但也算是开年之作。去年这个时候有幸被Oracle选入YEP项目,看着那么多位大神级人物入选,也是让我倍感激励,利用免费Voucher通过了OCP 11g升级认证,也算是之前学习的延续。在这个过程中,得到了leonard盛哥的帮助,不胜感激。去年还参加了很多个微信公众群,认...
11g中ADR管理下的监听trace文件路径问题
一个11g的开发库,打算打开sqlplus的trace,看下sqlplus登录的连接信息,但配置sqlnet.ora后没有找到trace文件,后来有一天发现磁盘空间不足,经过查询后发现如下路径下有几千个文件,占用了上G的空间:/u01/app/oracle/11.2.0.4/diag/clients/user_oracle/host_1347578259_80/trace1这些文件是什么?...
EDB和Oracle在分区剪裁实践上的一点差别
前两天碰到一个问题,在EDB数据库中创建的一张分区表,需要使用分区本地索引和分区剪裁,但查看执行计划发现没能用到分区剪裁的功能。创建分区表:CREATE TABLE test( id bigint NOT NULL, bag_id bigint, bp_airline_code character varying(3), bp_flight character varying(5), bp_flight_suffix cha...
外键值可为空
从感官上,外键用于限制主子表的关联关系,是一种强关联关系,那么子表的外键值不应该为空,而是都会关联到主表对应的记录上,但实际上,至少在Oracle中,外键是可以为空的,打个比方,班级是主表,学生是子表,一个班级有多名学生,一名学生肯定会关联到一个存在的班级,但来了一个转校生,还没有分班,他现在属于学生子...