9I下的db和client版本问题DBMS_EXPORT_EXTENSION"."FUNC_INDEX_DEFAULT无法exp-升级db
记载一次数据库版本低于软件版本导致无法exp。最近安装数据库和weblogic应用后,软件中嵌套的导出功能报错,查看如下的报错信息。Weblogic报错信息:java.lang.Exception: EXP/ORACLE命令在本地系统中执行失败:Export: Release 9.2.0.8.0 - Production on 星期四 2月 23 14:19:42 2012Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.连接到: Oracle9i Enterprise Edition Release 9.2.0.8.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.8.0 - Production已导出
windows上的又一次ora-07445
又遇到了windows 32位sys用户长时间不响应。发现数据库可能又Cmd>sqlplus /nologAlert_xiaoyu.log警告日志的部分内容Errors in file d:oracleproduct10.2.0db_1rdbmstracexiaoyu_ora_1992.trc:ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [unable_to_trans_pc] [PC:0x7C931669] [ADDR:0x0] [UNABLE_TO_READ] []Errors in file d:oracleproduct10.2.0adminxiaoyuudumpxiaoyu_ora_1916.trc:………………又是ora-07445是因为核心转储失败导致,也是bug引起,sga和windows服务器上的病毒等因素导致,由于之前没有调整
Awr和statspack中的execute to parse和session_cached_cursors
Awr和statspack中的execute to parse自己对于awr和statspack并不是很了解,在pub中看到一个网友的awr信息,查看发现其中有execute to parse这个统计信息Buffer Nowait %:100.00Redo NoWait %:100.00Buffer Hit %:99.54In-memory Sort %:100.00Library Hit %:83.33Soft Parse %:70.75Execute to Parse %:25.10Latch Hit %:99.37Parse CPU to Parse Elapsd %:98.63% Non-Parse CPU:Execute to parse%应该是如下的执行与解析的方面Execute to Parse = round(100*(1-rse/:exe),2) prse = select value from v$sysstat w
exp工具的direct和query冲突以及进程补充
Exp中虽然使用direct工具绕过sga直接从磁盘导入到uga端,可以加快exp导出速度,但是exp工具中无法用direct和query一起使用,不然会出现direct的模式冲突。C:Documents and Settings0990753>exp xiaoyu/xiaoyu file=d:test01.dmp log=d:test01.log tables=test03 query="where id=11" buffer=800000 direct=yExport: Release 10.2.0.1.0 - Production on 星期四 2月 16 13:58:30 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Productio
一些常用的oracle进程
其实关于Oracle的主要进程都多多少少了解,还是有些遗漏的细节整理下 PMON进程监视器:连接异常的清理工作,释放资源,Pmon会回滚未提交的工作,为失败的进程分配sga资源 清除后台失败的进程,当出现后台进程失败后,pmon会重启进程或者关闭实例,后台进程失败是一种很严重的oracle错误,最好把error呈递给oracle support 向tns 监听器注册实例,实例启动时,pmon询问公认的端口地址1521是否有监听器,如果不在默认的1521端口,需要显示的设置LOCAL_LISTENER参数指定监听器地址。(数据库启动时有监听器运行,pmon会与监听器通信,传递参数
tom 9I-10G的sga的多缓存池 多块和dual表的一点分析
Sga共享内存区,在nomount阶段已经分配,每个oracle进程都会访问其中的某一点。在unix操作系统上,sga是一个物理实体,进程可以附加到这段独立的内存上。[oracle@localhost ~]$ ipcs -m|grep ora0x01b9ced8 65537 oracle 640 1612709888 771Windows上,oracle会作为一个地址空间单个进程执行,sga将作为专用内存分配给oracle.exe进程,无法查看sga分配内存固定sga固定sga是sga一个组件,其大小跟平台版本有关,安装数据库时,固定sga会编译到二进制执行文件中。固定sga中保存了各sga组件的变量和参数,通常很小无法调整用于
tom 9I-10g中关于dmp和数据磊文件以及pga的一点分析
Exp和imp的dmp:关于oracle的导入 导出工具跟oracle的版本的概念关系一直是迷迷糊糊的,跟网友们的讨论一样:高版本兼容低版本。这个解释应该是export的导出版本应该低于或等于imp的导入版本。例如oracle 9i的数据库服务器无法用oracle 10g的客户端导出,由于dmp文件的imp是9I的,但是需要exp的版本却是10g的,同样还有10g客户端导出的dmp文件无法导入到oracle 9I的数据库中。Dmp文件是平台独立的二进制文件,里面存储元数据(create和alert语句)和数据本身,只要是oracle版本允许可以导入导出到任何平台,但是由于在windows和文件ftp传输
深入浅出数据字典摘要
Eygle深入浅出的数据字典摘要:Oracle数据字典存储的是oracle内部的元数据,而数据字典一般是只读的,由4部分组成:内部rbdms(x$)表,数据字典表,动态性能(v$)视图和数据字典视图。X$表是oracle运行基础,在数据库启动时由oracle应用程序创建。不允许授权其他sys用户访问,比较常见x$bh,x$ksmsp,x$kvit等。 SQL> grant select on x$kvit to xiaoyu; grant select on x$kvit to xiaoyu ORA-02030: 只能从固定的表/视图查询 不过使用autotrace、explain plan查看sql语句,常用的v视图执行计划的实质却是底层的x视图。SQL> explain p
spfile和pfile、ora-32004和undo_tablespace指定错误
关于spfile或者pfile参数的一点摘要:关于oracle的初始化参数可以分为推导参数sessions=(1.1*processes)+5,操作系统依赖参数db_cache_size受制于oracle使用内存大小,可变参数(例如open_cursors可以调整),但是一般来说个人更喜欢分类为隐含参数和非隐含参数,或者分类为动态参数和静态参数。初始化参数spfile和pfile,在oracle 9I前一直是使用的pfile文本文件存储初始化参数,pfile可以直接手动修改,但是由于每次修改都需要重新启动实例才能生效,oracle 9I推出了spfile,Spfile可以允许dba使用alter system方法修改而不需要手动去
深入浅出检查点和实例recovery
再次翻看eyle深入浅出,记录关于检查点和实例恢复的一些笔记oracle 8I的增量检查点主要是通过fast_start checkpointing特性来实现,oracle 8I开始,fast_start checkpointing特性,包含在oracle企业版本的fast_start fault recovery组件中。该组件还包括fast_start parallel rollback和fast_start on_demand rollback。fast_start checkpointing特性主要是通过fast_start_mttr_target(instance 恢复期望时间)参数来实现,表示instance crash恢复所需的时间增量检查点连续地进行,把checkpoint queue中最低的low rba写入disk中(dbwr会根据ch
oracle的官方文档链接
Oracle不同版本的官方文档在线参考和打包下载地址汇总,罗列在这里,供你我参考。1.9i Oracle官方文档1)在线浏览http://www.oracle.com/pls/db92/homepage2)下载在手,参考无忧Oracle9i Database Release 1 (9.0.1) Documentationhttp://www.oracle.com/technology/documentation/Oracle9i_arch_901.htmlOracle9i Database Release 2 (9.2) Documentationhttp://www.oracle.com/technology/documentation/oracle9i.html2.10g Oracle官方文档1)在线浏览http://www.oracle.com/pls/db102/homepage2)下载在手,参考无忧Oracle Database 1
license的几个参数限制user
users,默认的为create users的限制 ---------- SQL> create user xiaoyu02 identified by xiaoyu02 3 temporary tablespace temp default tablespace users LICENSE_MAX_USERS 参数而无法创建用户可以看出由于超过了create user。session连接数,不包含restricted session的用户,默认为License_sessions_warning参数用于警告日志中记录,默认为SQL> show parameter license_sessions_warning;NAME TYPE VALUElicense_sessions_warning integer 0
profile限制user连接session数
看完tom的9I-10G编程第一章,在其中主要阐述鼓励去了解学习oracle,而且应该一直坚持学习下去,例如说到的一个限制user最大session连接数,则可以用profile资源限制很轻松的现实。例如:限制quhz这个user最多只能有4个session,利用oracle内置的profile可以实现。下面用一些简单的sql语句实现如上功能SQL> drop profile one_session cascade; Profile dropped SQL> create profile four_session limit sessions_per_user 4; Profile created SQL> alter user quhz profile four_session; User altered SQL> alter system set
深入浅出等待事件和性能诊断05
明天就是公司年终晚会,这大半个月来天天练舞也够累的,突然发现自己在ITPUB有大半个月没有发帖子也没去关注了,快点调整自己吧也希望明天的年会表演都还顺利,不虚度每一个年华吧,毕竟练舞还是付出了很多时间的,特别是对于自己这种手脚不是很灵活的同志,比学oracle还难。关于autotrace开启查询sql执行计划时,其实原session用于sql查询输出,另外内嵌了一个session来统计信息Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> set autotrace off;S
深入浅出等待事件和性能诊断04
下面再摘要几个关于log的等待事件Log file switch日志文件切换,数据库进行日志切换时,LGWR需要关闭当前日志组,切换至下一日志组,切换中数据库的所有dml操作都会停止直至切换完成。Log file switch又包含两个子事件:1) log file switch(checkpoint incomplete)检查点尚未完成,如果此时数据库没有完成写出这个redo log所记录的所有dirty block,该等待事件出现。Dbwr写出速度太慢或I /O存在问题,可以考虑增加db_writer_processes参数,不过该参数一般不需要增加,db_writer_process一般设置和cpu数量相等,也可以增加日志组或日
深入浅出等待事件和性能诊断记载03
近段时间在忙于年会舞蹈和过年回家的事情,主要是火车票难买,公司的年假又批得迟,搞得俺这些漂泊在外的人纠结啊,学习习惯也有点懒散了,收心!先摘要记录几个等待事件Db file sequential read(数据文件顺序读取)是个非常常见的I/O相关的等待事件,通常显示于单个数据块相关读取操作,读取索引块或者通过索引块读取数据块时,可能会记录这个等待事件。SQL> col name for a20SQL> col parameter1 for a20SQL> col parameter2 for a20SQL> col parameter3 for a20SQL> col wait_class for a20SQL> select name,parame
深入浅出等待事件和性能诊断02
在oracle 10g中,新增v$session_wait_history视图记录的是数据库的历史状态及session的历史等待信息等数据,也就是活动session的最近十次的等待事件,同期oracle又推出了ASH新特性,活动session历史信息记录active session history ASH。ASH以v$session为基础,每秒钟采样一次,采样工作由oracle 10g新引入的后台进程mmnl完成,可以查看v$process视图或者通过警告日志来查看具体的mmnl进程信息。Ash功能默认是开启的,由隐含参数_ash_enable控制SQL> col ksppinm for a20SQL> col ksppdesc for a20SQL> col ksppstvl for a20SQL&
深入浅出等待事件和性能诊断01
最近都在培训舞蹈,oracle和os上很久没有去看了,年底也快忙完了电还是要冲的,还是回归oracle世界吧!终于算是初步把eygle的深入浅出全部读完了,就深入浅出的最后两章等待事件和sql性能诊断方面记载一二。数据库性能瓶颈方面,可能第一反应便是oracle的等待事件,而v$event_name视图记录了当前数据库支持的等待事件及其基本信息,parameter1,parameter2,parameter3对于不同的等待事件的意思各不相同。Oracle等待事件分为:既空闲idle等待事件和非空闲non-idle等待事件。空闲等待事件指oracle正等待某种工作,在诊断和优化数据库的时候,
深入浅出undo记载02
继续理解eygle深入浅出的undo回滚于撤销的重要细节知识点,先说一下以前blog中就提到的关于块清除的知识点。(块清除是个及其复杂的过程,这里因为个人理解只能整理出如下要点) Ora-01555快照过久,oracle经典错误,主要由以下三种情况构成1 查询scn小于block的scn需要undo构造cr块实现一致性读,回滚段被覆盖 2 延迟块清除,查询触发延迟块清除需要从回滚段获得事务提交的scn,如果事务前镜像已经被覆盖,并且查询scn小于回滚段中最小提交的scn,那么oracle将无法判断查询scn和事务提交scn大小,出现ora-01555(这里还说一下极端的情况,
深入浅出undo记载01
初看eygle的深入浅出的关于回滚段undo,其实刚开始自认为对undo的理解还算清晰,undo的记录的信息,dml时undo如何和buffer cache联系(回滚段也是属于buffer cache),从AUM的管理,flashback利用undo来闪回,undo表空间的回滚段的自动扩展于回收,切换undo表空间,快速块清除,延迟块清除,回滚段过旧等,看了回滚这一章发现自己还是有颇多的理解误区和盲区。回滚段具体记录的是什么:在看冯春培的回滚段探究中提到了回滚段具体记载的是什么,同样eygle深入浅出中再次提到了回滚段的具体记录的是什么,自己也有误区认为回滚段会记录整个数