SQL执行的时间,在正常情况下应该是稳定的。如果第一次快,第二次慢,那么可能就是由于cardinality feedback的缘故,我们可以设置”_OPTIMIZER_USE_FEEDBACK”= false来规避。但是这次遇到的问题却是执行过程两快一慢,执行过程是慢->快- […]
统计信息收集后不生效的问题
客户的某系统升级到11g之后,收集统计信息却不生效,查dba_tables看不到其LAST_ANALYZED。这其实是因为11g的一个新特性,延时发布统计信息。 我们看下面的测试案例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
--建立一个测试表: SQL> create table t_test as select * from dual; Table created. --检查这个publish属性,我们可以查系统级的熟悉和表级别的属性。在默认情况下,是true:即收集后立即发布: --系统级的publish属性是true,收集后立即发布: SQL> Select dbms_stats.GET_PREFS('PUBLISH') from dual; DBMS_STATS.GET_PREFS('PUBLISH') -------------------------------------------------------------------------------- TRUE --表级的publish属性是true,收集后立即发布: SQL> select dbms_stats.get_prefs('PUBLISH', 'TEST', 'T_TEST') publish from dual; PUBLISH -------------------------------------------------------------------------------- TRUE SQL> |
我们可以修改表的publish属性: [cray […]
关于带lob对象的分区表,移动表空间的问题
客户有个带lob对象的表空间,希望做表空间的move,可是等move之后,发现在dba_lobs里面查到的lob对象的表空间还是在原来的地方。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
CREATE TABLE SCES1INPUTS ( CODREQUEST VARCHAR2(9 BYTE) NOT NULL, LOBS1INPUT CLOB NOT NULL, CODLAYOUT VARCHAR2(20 BYTE) NOT NULL, DATINSERTION DATE DEFAULT SYSDATE NOT NULL, CODINSERTIONUSER VARCHAR2(10 BYTE) NOT NULL, CODINSERTIONFUNCTION VARCHAR2(5 BYTE) NOT NULL, DATHISTORY DATE DEFAULT SYSDATE NOT NULL, LOBS1INPUT_GZ BLOB ) LOB (LOBS1INPUT) STORE AS LOB1_SCES1INPUTS LOB (LOBS1INPUT_GZ) STORE AS LOB2_SCES1INPUTS PARTITION BY RANGE ( DATINSERTION ) ( PARTITION "SCES1INPUTS_200508" VALUES LESS THAN (to_date('01092005','ddmmyyyy')) , PARTITION "SCES1INPUTS_200509" VALUES LESS THAN (to_date('01102005','ddmmyyyy')) , PARTITION "SCES1INPUTS_200510" VALUES LESS THAN (to_date('01112005','ddmmyyyy')) , PARTITION "SCES1INPUTS_200511" VALUES LESS THAN (to_date('01122005','ddmmyyyy')) , PARTITION "SCES1INPUTS_200512" VALUES LESS THAN (to_date('01012006','ddmmyyyy')) ) / SQL> SELECT table_name,column_name,segment_name,tablespace_name,index_name 2 from Dba_Lobs WHERE table_name='SCES1INPUTS'; TABLE_NAME COLUMN_NAME SEGMENT_NAME TABLESPACE_NAME INDEX_NAME -------------------- -------------------- ------------------------------ -------------------- ---------------------------------------- SCES1INPUTS LOBS1INPUT LOB1_SCES1INPUTS USERS SYS_IL0000018502C00002$$ SCES1INPUTS LOBS1INPUT_GZ LOB2_SCES1INPUTS USERS SYS_IL0000018502C00008$$ SQL> --move tablespace: SQL> alter table SCES1INPUTS 2 move partition SCES1INPUTS_200508 tablespace USERS 3 lob (LOBS1INPUT) STORE as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE ) 4 lob (LOBS1INPUT_GZ) store as (tablespace tbs_ogg ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE ); Table altered. SQL> SQL> SELECT table_name,column_name,segment_name,tablespace_name,index_name 2 from Dba_Lobs WHERE table_name='SCES1INPUTS'; TABLE_NAME COLUMN_NAME SEGMENT_NAME TABLESPACE_NAME INDEX_NAME -------------------- -------------------- ------------------------------ -------------------- ---------------------------------------- SCES1INPUTS LOBS1INPUT LOB1_SCES1INPUTS USERS SYS_IL0000018502C00002$$ SCES1INPUTS LOBS1INPUT_GZ LOB2_SCES1INPUTS USERS SYS_IL0000018502C00008$$ SQL> |
这里其实存在一个误区,对于分区表的lob对象,我们不应该去查user_lobs,而是应该去 […]
迁移数据库后启动报错ora-600[25025]
迁移脚本的日志中报错RMAN-06571: datafile 78 does not have recoverable copy,经查看发现78号文件曾经被offline drop掉。于是重建控制文件,在控制文件中把78号文件去掉,重建控制后,数据库能够mount,mount后数据文件是一致,但是o […]
修复missing的datafile
在一次迁移中,原来的数据库中存在一些missing的datafile,如MISSING00006这样的datafile,这些数据文件经查已经在os上不存在,且该数据文件上的信息也已经不需要。一般情况下,我们是将仍旧需要表从这个表空间move到另外的表空间,再将这整个表空间drop掉。但是由于表空间中 […]
安装数据库软件时,找不到所有节点
某客户用runInstaller安装RAC软件时,在勾选节点的窗口找不到任何的节点。我们可以参考mos上的这个文档进行修复。 Database runInstaller “Nodes Selection” Window Does not Show Cluster Nodes […]
tahiti已死,docs接班
如果你近期访问著名的oracle在线文档的网站tahiti.oracle.com,你会发现这个网站已经不再提供服务,在网站上只留下一段话:
1 2 3 |
Tahiti index no longer available All Oracle documentation is at docs.oracle.com. |
从改版到小清新,到停止服务,让不少老oracle玩家唏嘘不已,目前所有的在线文档,都转移新的d […]
active dataguard用户解锁
有个用户,在备库尝试多次登录,都是密码错误登录不上,再去主库登录,还是登录不上。并且由于尝试过多次数的密码,账户被锁定了。 DBA帮助其在主库解锁后,在active dataguard却还是无法登陆。 在ADG端检查:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
SQL> select username ,account_status from dba_users where username='TEST'; USERNAME ACCOUNT_STATUS ------------------------------ -------------------------------- TEST OPEN SQL> SQL> SQL> SQL> conn test/test ERROR: ORA-28000: the account is locked Warning: You are no longer connected to ORACLE. SQL> SQL> |
在Primar […]
运行DBCA显示configure选项为灰色
运行dbca的时候,发现configure database选项为灰色。 处理方式为:
1 2 3 4 |
1. 如果在windows环境中: 1.1 开一个窗口。 1.2 set oracle_home=<directory path of the specific oracle home> 1.3 再次运行dbca |
2.如果在unix环境中:
1 2 3 4 |
2.1 如果是在solaris环境中,修改/var/opt/oracle下的oratab文件 如果是在其他unix环境,修改/etc下的oratab文件 2.2 修改oratab文件,在文件中添加:<database_sid>:<oracle_home_dir>:<Y|N > 2.3 再次运行dbca |
如果上面的情况还是没用,那么考虑是否 ORACLE_ […]
Oracle Database In-Memory 现场发布会视频
这是美国时间6月10日,拉里做的12c inmemory option的现场发布会。
inmemory option的简单介绍和测试
12c的inmemory option 已经在6月10日发布,预计会在7月份有正式的产品release,即在12.1.0.2中,你就可以看到这个新特性了。 下面我们来简单看看这个新特性的用法和体会一下其厉害之处。
1 2 3 4 5 6 7 8 |
SQL> show parameter inmem NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ inmemory_clause_default string inmemory_force string DEFAULT inmemory_query string ENABLE inmemory_size big integer 500M |
上面的几个参数和in […]
12c flex cluster小记(3)
好了,在安装完flex cluster和将leaf node转换为hub node之后,我们现在开始装2节点的rac。 先是安装数据库软件,这很容易,这边省略不讲了。我要讲的是安装完数据库软件之后,我用dbca建库,建库过程没报什么错,但是却发现完成后,2个节点只有一个节点有db instance, […]