impdp的ORA-39125
Impdp时出现如下错误,感觉虽然没有影响使用,还是对这个问题探索下。 Starting “CESHI”.”SYS_IMPORT_FULL_02″: ceshi/******** directory=back dumpfile=20120912_zebra.dmp logfile=impdp.log remap_schema=zebra:ceshi Processing object type SCHEMA_EXPORT/USER ORA-39125: Worker unexpected fatal error in KUPW$WORKER.PUT_DDLS while calling DBMS_METADATA.CONVERT [TABLE_STATISTICS] ORA-06502: PL/SQL: numeric or value error LPX-00225: end-element tag “HIST_GRAM_LIST_ITEM” does not match star
再次接触tts的特性
可传输表空间tts用于平台数据传递,在10g中可以用于不同的平台传递,当两个平台的字节顺序不同时,也可以利用rman转换而后传递 ,相对数据库层面的导入导出 数据泵 sqlldr等来说采用的os的复制迁移,然后倒入元数据到目标数据库,效率上提高了许多。SQL> conn xiaoyu/xiaoyuConnected.SQL> create tablespace tts datafile '/nfs/data/tts01.dbf' size 100m;Tablespace created.SQL> create table tts01 tablespace tts as select * from dba_objects;Table created.SQL> col directory_path for a30SQL> select directory
oracle小版本升级patch过程和分析
看过很多篇关于oracle数据库升级的文章,也做过相应的测试和生产环境中的实施,下面自己动手测试的一则比较完整的数据库的10.2.0.1升级到10.2.0.5的步奏和分析,虽然不是很难,但是还是愿意分析一下自己的思路。当然这种实施的还是推荐大家自己多动手,相信很快能掌握其中的要领[root@localhost ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda1 12G 8.5G 2.7G 77% //dev/sda2 1.9G 40M 1.8G 3% /hometmpfs 385M 0 385M 0% /dev/shm/dev/sdb1
索引组织表IOT
最近群里有讨论schemas的设计,技术手段还是比较多的,分区表,分区索引(本地分区索引和全局分区索引),b tree和bitmap tree,物化视图,临时表,cluster。这里还有一个比较重要的是IOT表,也就是常说的索引组织表。对于索引组织表用的还是比较少,仅自己的理解说下,一门技术手段需要知道其缘由,然后用在合适的地方,说来简单,其实能融会贯通并不容易,上面所说的技术手段也是需要长期的用例和维护才能理解的。应用透明:IOT存储在索引结构中的表,普通的表(也就是所说的堆表)存放数据都是无组织的,也就是能存储的空间随机利用,I
ora-00600[1433],[60]
先是node1 alert日志下出现大量的 ARC0: Identified other thread error ARC0: Identified other thread error 在metalink上并没有发现此类的信息描述,个人理解另一个归档进程出现错误。上述错误大量爆出后后续就出现无法连接数据库的下列情形。 [oracle@rac101 ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Thu Aug 16 16:50:33 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edit
v$resource_limit视图
超过最大连接数,成产库中常常可能因为processes连接参数过小,导致新的进程无法连接,当然常规的可以用ps –ef|grep oracle|wc –l、查看v$process视图,也可以查看另一个很好用的oracle视图v$resource_limit。SQL> desc v$resource_limit Name Null? Type ----------------------------------------- -------- ---------------------------- RESOURCE_NAME VARCHAR2(30) CURRENT_UTILIZATION NUMBER MAX_UTILIZATION
lob字段类型转换ora-22858
程序中出现错误,缘于是因为blob字段缺省值为null,需要修改blob字段的缺省值为empty_blob() SQL> desc t_lob001; Name Null? Type ----------------------------------------- -------- ---------------------------- ID NUMBER CONTENT BLOB SQL> alter table t_lob001 modify(content blob default empty_blob()); alter table t_lob001 modify(c
ora-01000和tablespace不足推断
已经很多次碰见了ora-01000超过最大游标打开数,其实对于此种错误,dba能解决的方案很少,除了增加参数还真想不出什么方法。 Caused by: java.sql.SQLException: ORA-01000: maximum open cursors exceeded SQL> show parameter open_cursors; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ open_cursors integer 300 查看v$open_session视图来获取session中打开c
library cache pin和library cache lock的诊断分析
最近运行一个分批删除数据的procedure,感觉运行比较慢,临时取消了该job,然后再次重建procedure时,session hang住了,应该是library cache pin的等待事件了,oracle用两种结构pin和lock来控制shared pool的并发访问控制。 访问一个对象将其pin到内存中,在pin之前需要先获取该对象的handle的锁定,lock的索引主要有null share exclusive,当然pin该对象也有上述三种状态。 Session a :execute delete_data 临时取消了该procedure的运行,实际进程并没有马上释放该对象的pin Session b: SQL> crea
ora-3136 client认证失败
查看alert日志中出现如下警告: Fri Aug 3 14:46:26 2012 WARNING: inbound connection timed out (ORA-3136) Fri Aug 3 14:46:26 2012 WARNING: inbound connection timed out (ORA-3136) oracle@server135 ~]$ oerr ora 3136 03136, 00000, "inbound connection timed out" // *Cause: Inbound connection was timed out by the server because // user authentication was not completed within the given time // specified by SQLNET.INBOUND_CONNECT_TIME
并行直接加载和系统调整的一点思路
并行执行一个在OLAP系统经常出现的技术,这个可以简单描述的是处理一个sql语句时,任务被并行协调进程划分为多个并行处理单元,然后交给相应的并行服务进程,而后并行协调进程又分配其他 的并行处理单元,直到处理完所有的单元都完成,最后协调进程把所有的并行服务处理的单位合并起为一个集合交互给客户端。 为什么说多用于OLAP系统了,因为OLTP系统大多都是高效的索引读取,而高效的索引读取 完全没有必要开启并行。而并行利用多个cpu单位来共享完成任务,更多用于cpu空闲的系统, 由于OLAP系统中并发较少,cpu相对比较空
审计初记载
Oracle提供了审计功能,其实说到审计也只能说是oracle用来记录数据库对象的操作,例如什么时候、什么用户对什么对象的进行的操作,也就是对操作做信息记录而已。 SQL> show parameter audit_trail; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ audit_trail string NONE SQL> show parameter audit_file_dest; NAME TYPE
字符集修改引起的expdp impdp需要重新运行proc加载
用impdp导入dmp文件出现如下错误 [oracle@localhost ~]$ impdp zebra/zebra directory=back dumpfile=zebra20120420.dmp Import: Release 10.2.0.1.0 - 64bit Production on Monday, 23 July, 2012 11:33:25 Copyright 2003, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options ORA-39006: internal error ORA-39213: Metadata processing is not available [oracle@l
动态和静态监听注册-小鱼的理解
关于网络上的动态和静态监听注册,自己也是迷糊的,如果判断动态和静态相信大家都清楚,监听程序自己也一直是停留在能用就行的地步,对于其中的原理也很难以理解透彻。 结合自己的测试谈谈自己的理解: 注册:其实可以简单的理解为把数据库的服务注册到监听程序中,因为客户端连接数据库需要通过定位主机,然后查看主机的监听程序上的端口上面是否存在数据库服务,然后核对用户名和密码,这个才是一次完整连接所要经历的步奏。 那么注册正是把服务注册到监听程序中,让其可以通过监听程序去对客户端和服务器端做一个相
materialized view的fast和日志分析和一则案例
物化视图多用户数据仓库,数据复制等环境,自己接触的还是主要是用于简单的查询,让其利用所谓的空间换取时间,提高系统的性能。刷新机制和查询重写是物化视图最重要的功能。下面结合自己碰到的一则物化视图的ora处理来简要说一下物化视图和日志和fast刷新机制。mview_tab01表是主表,下面的mv01是mview_tab01的物化视图。先来看看下面的物化视图日志的表的结构。SQL> alter table mview_tab01 add primary key(id); Table altered SQL> create materialized view log on mview_tab01; Materialized view log createdSQL> create
expdp到nfs磁盘的一次糟糕记忆
公司要分离业务,需要对数据进行一个快照的备份,准备走物理备份,可以由于数据文件创建太多 太乱琐碎就不利用cp,就考虑走逻辑备份,800g的数据准备用expdp开启并行倒是很轻松的可以在简短的时间完成的,不过由于晚上应用又再次重启导致备份了12个小时才备份了1/3而已。简要记载一下这次expdp的过程,有些东西看起来简单单实际过程中并不是这么顺利。Nfs挂载的磁盘root用户开始无法写入,然后做了一系列的改动后发现还是存在问题,root用户虽然能写入了,但是oracle用户无法写入,没办法准备添加root用户到dba组完成expdp,不过发现了虽然
compress表段压缩基础记载
从oracle推出symbol table)的指针,相同的数据其实真正存储在符号表内。表段压缩技术可以有效减少compress表段的访问也需要消耗SQL> create table t_comp01 as select rownum id ,a.* from dba_objects a;Table createdSQL> insert into t_comp01 select * from t_comp01; t_comp01,下面分别采取nocompress的创建表 SQL> analyze table t_comp01 compute statistics;Table analyzed blocks ---------- ---------- ------------ ------------------------------ 313908 1701 91 T_COMP02compress创建
坏块处理10231(不过会丢失数据)
在alter日志中发现如下错误:ORA-01578: ORACLE data block corrupted (file # 41, block # 1830)ORA-01110: data file 41: '/db/oracle10g/oradata/hnst/hnst38.dbf'同样用dbv也检索到file 41的一个坏块,不过由于之前已经检索过,坏块的具体信息没有全部标示出来,而这个dba 171968294具体的组成成分是哪些也是个人比较疑惑的地方,按理是文件号和块号,不过这里详细的划分方法自己还是很迷惑的。期待大牛解答。[oracle@hns_hy_hn_xwb_tomora ~]$ dbv file='/db/oracle10g/oradata/hnst/hnst38.dbf' blocksize=8192 logfile='/home/orac
磁盘坏道引起的ora-01242 media failure
早上连接生产库发现出现错误,数据库意外关闭了。Alert和sqlplus中提示如下错误:Errors in file /db/oracle10g/admin/benguo/bdump/benguo_dbw0_2029.trc:ORA-01242: data file suffered media failure: database in NOARCHIVELOG modeORA-01114: IO error writing block to file 2 (block # 36874)ORA-01110: data file 2: '/db/oracle10g/oradata/benguo/undotbs01.dbf'ORA-27072: File I/O errorLinux-x86_64 Error: 5: Input/output error其实根据最后的Linux-x86_64 Error: 5: Input/output error是os上的IO出现错误,根据前面的ora
sample采样的一点记载
今天发现系统上线的有个sql语句用到了sample,也就是对表段的数据进行抽量采样。SQL> create table t_samp01 as select * from dba_objects;表已创建。SQL> set autotrace traceonlySQL> select * from t_samp01;已选择72073行。执行计划----------------------------------------------------------Plan hash value: 997462556------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time-------------------------------------------