-
Recent Posts
Recent Comments
- yangtingkun on 非空字段空值对查询的影响
- Eric Zong on 非空字段空值对查询的影响
- Kamus on Oracle Ace Director
- 设置全局死锁优先级 | yangtingkun on RAC全局死锁检测时间
- ORA-600(krbounotread_noctx)错误 | yangtingkun on ORA-600(krboReadBitmap_badbitmap)错误
Archives
- December 2020
- February 2019
- December 2018
- November 2018
- October 2018
- July 2018
- June 2018
- May 2018
- July 2016
- July 2013
- June 2013
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
Categories
Meta
Author Archives: yangtingkun
物化视图快速刷新不支持标准外联接写法
发现对于REFRESH FAST ON COMMIT物化视图,并不支持标准外连接的写法,而Oracle特有的(+)方式则没有问题。 Oracle对于标准外联接的写法支持的并不好,类似的bug已经不是第一次碰到了。 SQL> CREATE TABLE T_P (ID NUMBER PRIMARY KEY, NAME VARCHAR2(30)); 表已创建。 SQL> CREATE TABLE T_F (ID NUMBER PRIMARY KEY, FID NUMBER); 表已创建。 SQL> CREATE MATERIALIZED VIEW LOG ON T_P 2 WITH ROWID (ID); 实体化视图日志已创建。 SQL> … Continue reading
Posted in ORACLE
Tagged ansi sql, Materialized view, on commit, outer join, refresh fast
Leave a comment
EXP无法导出延迟段创建的表
对于11g中使用了延迟段创建方式创建的表,如果导出时刻表的段没有被创建,那么EXP不会导出这张表。 检查测试如下: SQL> CREATE TABLE t_defer (id NUMBER, name varchar2(30)); TABLE created. SQL> CREATE TABLE t_imme (id NUMBER, name varchar2(30)) segment creation immediate; TABLE created. SQL> SELECT TABLE_NAME, segment_created FROM user_tables; TABLE_NAME SEG —————————— — T_IMME YES T_DEFER NOSQL> create … Continue reading
ROWNUM固化外部表结果集存在问题
在客户的11.2.0.2环境中碰到了这个问题,Oracle在处理包含ROWNUM固化的外部表加载数据时返回错误的结果。 外部表构造描述可以参考:利用外部表读取告警日志文件 客户环境中创建的外部表和上面链接中的例子几乎完全一致: SQL> CREATE TABLE T_ALERT 2 (TEXT VARCHAR2(4000) 3 ) 4 ORGANIZATION EXTERNAL 5 (TYPE ORACLE_LOADER 6 DEFAULT DIRECTORY D_ALERT 7 ACCESS PARAMETERS 8 (RECORDS DELIMITED BY NEWLINE 9 FIELDS (TEXT (1:255) CHAR)) 10 LOCATION (’alert_xshdb1.log’)); TABLE created. … Continue reading
利用外部表读取告警日志文件
数据库的告警日志以文本的格式保存到文件系统中,虽然可以很方便的通过操作系统命令进行查看,而且11g中Oracle甚至还提供了专门的adrci工具,但是对于只能通过SQLPLUS或者其他查询工具连接到数据库的人而言,还是非常不方便。 不过其实这个问题可以很容易的通过外部表的方式解决。最简单的办法就是将alert文件中的每一行记录都当做表中一个VARCHAR2(4000)类型列的一行记录,这样就可以轻松的通过SQL的方式来访问告警日志了。 在创建外部表之前,需要创建一个DIRECTORY,这个目录的位置就是background_dump_dest初始化参数指定的位置。 SQL> SHOW parameter background_dump_dest NAME TYPE VALUE ———————————— ———– —————————— background_dump_dest string D:\ORACLE\PRODUCT\ADMIN\YTK102\BDUMP SQL> CREATE directory d_alert AS ‘D:\ORACLE\PRODUCT\ADMIN\YTK102\BDUMP’;SQL> show parameter background_dump_dest NAME TYPE VALUE ———————————— ———– —————————— background_dump_dest string D:\ORACLE\PRODUCT\ADMIN\YTK102\BDUMP SQL> create directory d_alert as ‘D:\ORACLE\PRODUCT\ADMIN\YTK102\BDUMP’; … Continue reading
PSU补丁安装不全的问题
对于PSU补丁的安装,不是简单的opatch apply之后就完成了,还需要运行特定的sql。 在客户数据库中检查补丁情况,发现安装PSU只完成了第一步: fgms:/fgms/oracle/tru64_setupFile/OPatch > ./opatch lsinventory Invoking OPatch 10.2.0.5.0 Oracle Interim Patch Installer version 10.2.0.5.0 Copyright (c) 2010, Oracle Corporation. All rights reserved. Oracle Home : /fgms/oracle10g/db Central Inventory : /fgms/oracle/oraInventory from : /var/opt/oracle/oraInst.loc OPatch version : 10.2.0.5.0 OUI … Continue reading
TRUNCATE模式SQLLDR导致SECUREFILE的LOB空间不断增长
测试LOB的SECUREFILE存储方式时发现,如果利用SQLLDR的TRUNCATE方式导入数据,随着测试次数的增加,LOB对象占用的空间也会逐步增加。 创建表的脚本很简单: CREATE TABLE t_load_4m_sf (id NUMBER, full_name varchar2(100), create_date DATE, contents BLOB, CONSTRAINT pk_t_load_4m_sf PRIMARY KEY(id)) lob (contents) store AS securefile;create table t_load_4m_sf (id number, full_name varchar2(100), create_date date, contents blob, constraint pk_t_load_4m_sf primary key(id)) lob (contents) store as … Continue reading
CRONTAB调用的备份脚本
EXP备份是DBA常规操作之一,尤其是10g以前的版本没有EXPDP,所有的逻辑备份都是通过EXP来实现。而将EXP写成SHELL脚本,使之可以调用也并没有什么特别之处。不过如果并非oracle用户执行,而是需要CRONTAB自动允许,那么备份的脚本就有一些要求了。 客户环境使用RMAN CATALOG方式备份,而RMAN的CATALOG数据库采用EXP进行逻辑备份。部署了一个每天7点运行的CRONTAB,调用执行EXP的SHELL。巡检时发现这个脚本从未真正运行过。 /app/oracle10g> crontab -l 0 7 * * * /app/oracle10g/rman_catalog_dmp/exp_by_date.sh /app/oracle10g/rman_catalog_dmp> more exp_by_date.sh export ORACLE_SID=RMANDB export ORACLE_BASE=/app/oracle10g export ORACLE_HOME=$ORACLE_BASE/product/10.2.0 export NLS_LANG=American_America.ZHS16CGB231280 EXP parfile=EXP.par file=./rman_catalog.dmp log=./rman_catalog.log/app/oracle10g> crontab -l 0 7 * * * /app/oracle10g/rman_catalog_dmp/exp_by_date.sh /app/oracle10g/rman_catalog_dmp> more exp_by_date.sh export ORACLE_SID=RMANDB … Continue reading
检查数据库CPU和PSU补丁信息
简单描述如何检查当前数据库的CPU和PSU补丁安装情况。 正常情况下有两种方法,一种是登录数据库检查DBA_REGISTRY_HIST视图: MODDB2:[/home/oracle]$sqlplus / AS sysdba SQL*Plus: Release 10.2.0.4.0 – Production ON Thu Aug 18 13:04:43 2011 Copyright (c) 1982, 2007, Oracle. ALL Rights Reserved. Connected TO: Oracle DATABASE 10g Enterprise Edition Release 10.2.0.4.0 – 64bit Production WITH the Partitioning, … Continue reading
个人主页
我的个人主页在Kamus的大力忽悠下,终于面世了。 感谢Kamus在各方面的支持,使得我这个菜鸟也可以在一个小时之内搞定这个主页,感谢ITPUB长久以来的硬件、软件的支持,今后很长一段时间内,我的博客还会在ITPUB上的BLOG同时发布。 以往的博客,肯定会迁移到这个主页上,但是由于数据量太大,迁移操作可能花费很长的时间,而且由于以往博客中包含了大量的链接,完全修改到新的环境中工作量难以估量,如果找不到一个很方便的方法,则不会尝试进行更新了。 主页地址:https://yangtingkun.net
Posted in NEWS
13 Comments