ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_DDL"
在10g打完一个CPU后,在做export时发现以下错误:EXP-00008: ORACLE error 4063 encounteredORA-04063: package body "SYS.DBMS_DDL" has errorsORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_DDL"ORA-06512: at line 1EXP-00056: ORACLE error 1403 encounteredORA-01403: no data foundEXP-00000: Export terminated unsuccessfully[@more@]检查invalid的object数,发现多达90多个。以下是解决办法:$sqlplus "/as sysdba"SQL> startup upgradeSQL > @?/rdbms/admin/ca
青春是一阵路过的风
8月16日的午夜,点开了苏有朋与舒高的"一路顺风".平静的夜晚以及那一点淡淡的离愁别绪.想起了大学,想起了难忘的毕业.这首歌用bass做的间奏.悄悄的就过渡到了下一段.用这首歌纪念一下美好的青春.想念校园里那一缕缕透过梧桐的阳光,那些些必须用脚当刹车的单车.那踩上去沙沙作响的秋黄落叶,别在腰间的walkman,用牙咬过来延长电量的电池,巨大的五寸盘,我的turbo c,pascal教程,还有....那一曲曲纯净而羸弱得象纸一般的爱情.青春是一阵路过的风.当风吹过,谁不曾泪蒙蒙.我们是一些散落的歌.你是否在唱,你是否在听?[@more@]
广州印象
看了李承鹏的blog,讲到广州。写得不错。我爱广州。http://blog.sina.com.cn/s/blog_46e7ba41010005iw.html[@more@]
v$session的妙用(引用)
以下文章出处:http://www.oracle.com.cn/viewthread.php?tid=38191&extra=page%3D1%26amp%3Bfilter%3Ddigest&page=1在工作中,有时要给开发提供session的open_cursor,虽然在toad里面都能看到,但通过v$open_cursor也是很方便的。比如:select b.sid,a.sql_text from v$sql a,v$open_cursor b where a.hash_value in (select hash_value from v$open_cursor where sid=72) and b.sid=72 group by b.sid,a.sql_text[@more@]V$session 表的妙用^_^v$session 表中比较常用的几个字段说明^_^1. sid,serial#通过sid我们可以查询与这个s
左右外连接的一些小结
我们可以用select ....from table1 [left|right|inner|full] join table2 on table1.col1=table2.col2的方式来实行各种外连接。也可以用(+)来实现外连接。在用(+)来实现外连接时,有几点是需要注意的:[@more@]1.(+)操作符执行出现在where子句中,并且不能与outer join语法同时使用。2.当使用(+)操作符执行外连接时,如果where子句中包含多个条件,则必须在所有条件中都要包含(+)操作符。如:SELECT a.dname, b.ename FROM dept a, emp b WHERE a.deptno = b.deptno(+) AND b.deptno(+) = 10如果只出现在a.deptno = b.deptno(+) 而不
什么时候重建索引
在网上查找,现引用一下:[@more@]条件1在分析(analyze)指定索引之后,查询index_stats的height字段的值,如果这个值>=4 ,则最好重建(rebuild)这个索引。虽然这个规则不是总是正确,但如果这个值一直都是不变的,则这个索引也就不需重建。条件2在分析(analyze)指定索引之后,查询index_stats的del_lf_rows和lf_rows的值,如果(del_lf_rows/lf_rows)*100 > = 20,则这个索引也需要重建。例子:SQL > analyze index IND_PK validate structure;SQL > select name,height,del_lf_rows,lf_rows,(del_lf_rows/lf_rows) *100 from
oracle 10g的connect by bug修复
在系统升级到10g后,碰到了一些connect by的bug。如:select">select AvGroupLevel, AvGroupCode, AvGroupCodeParent2 from AvGroupCodeTable where SUBSTR(NLS_LOWER(DataAreaId),1,3) = SUBSTR(NLS_LOWER('845'),3 START WITH AvGroupCode = '110'4 CONNECT BY PRIOR AvGroupCodeParent = AvGroupCode5 and SUBSTR(NLS_LOWER(DataAreaId),1,3) = SUBSTR(NLS_LOWER('845'),1,3)6 order by AvGroupLevel DESC7 ;and SUBSTR(NLS_LOWER(DataAreaId),1,3) = SUBSTR(NLS_LOWER('845'),1,3)*ERROR at line 5:ORA-00600: internal error code
export中涉及到时区的问题
由于在一台server中既有美国的数据库,又有菲律宾的数据库,因此,就存在一个市区(TimeZone)的问题。现在服务器以美国的时间的为准,则菲律宾的db在重起listener及重起库时,需要加export TZ=GMT-8。同时,菲律宾的db备份采用export。在备份参数中,用了consistent=y。在备份log中却发现了以下错误:EXP-00056: ORACLE error 1466 encounteredORA-01466: unable to read data - table definition has changed这也是与timezone有关,解决方法有:1.去掉参数consistent=y2.在备份脚本中加export TZ=GMT-8[@more@]
Rman -按时间进行不完全恢复-restore archivelog
在日常恢复中,我们会遇到这样一种情况,当我们在脚本用set until time "to_date('20080520 12:00:00','YYYYMMDD hh24:mi:ss')";设置了restore controlfile,restore datafiles之后.我们怎么找到我们想恢复的archive log?[@more@]可以这样:1.在rman中,列出某个时间段所涉及到的archivelog: rman> list backup of archivelog time between "to_date('2008-05-20 00:00:00','yyyy-mm-dd hh24:mi:ss')" and "to_date('2008-05-20 12:00:00','yyyy-mm-dd hh24:mi:ss')";2.根据内容,在恢复脚本中列出所需要的arc
oracle 10g exp ORA-00932 错误
EXP-00056: ORACLE error 932 encounteredORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAREXP-00056: ORACLE error 932 encounteredORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAREXP-00000: Export terminated unsuccessfully要解决这个错误,需要运行2个脚本:1.sql>@?/rdbms/admin/catmetx.sql2.sql>@?/rdbms/admin/utlrp.sql 运行完问题解决。[@more@]
用optimizer_index_cost_adj让sql走索引
在OLTP系统中,设置参数optimizer_index_cost_adj的值从1-50,可以让oracle趋向于走索引。通过实践证明,it works[@more@]
10g 自动内存管理--当前各参数值的的大小
10g开始,内存参数如shared_pool_size,db_cache_size在sqlplus中用show parameters都会显示为0,那么在当前状态下如何获得各个pool的值呢?[@more@]1.data buffer pool:SQL> select current_size from v$buffer_pool;CURRENT_SIZE------------33122.其他的poolSQL> select pool,sum(bytes)/1024/1024 from v$sgastat group by pool;POOL SUM(BYTES)/1024/1024------------ --------------------3327.99767shared pool 736.00457large pool 16java pool 16
读后感:oracle性能调整 Shared pool深入分析及性能调整
今天在网上读了文章:oracle性能调整 Shared pool深入分析及性能调整。在这篇文章中,对以下问题做了比较深刻的解释:1.为什么程序中引用了绑定变量可以加快效率2.ORA-04031的成因[@more@]1.为什么程序中引用了绑定变量可以加快效率oracle 对sql语句的解析实际上生成执行计划。在生成执行计划时是需要消耗资源的。为了实现这一过程,oracle实际上对sql语句进行了概括与抽象。将sql语句分成静态与动态两部分。静态部分包括oracle的关键字,如select,from等,以及表名,列名等。而动态部分实际上就是数据。静态部分是有限的小部分,而数据是
unix 中的&&与||命令
在unix中,执行命令时我们希望有以下几种情况:1.当第一个命令成功时,才接着做下一个命令。2.当第一个命令失败时,才接着做下一个命令。对于1,可以在脚本中用&&命令实现:cp *.doc ./test&&rm *.doc对于2,可以在脚本中用||命令实现:mv *.doc ./test||mkdir test --如果不存在test目录,则创建。综合举例:mv *.doc ./test/||mkdir test&&mv *.doc ./test/意思是:将*.doc 移到./test目录中,如果不存在test目录就创建这个目录,再将*.doc文件移到test目录中。3.在脚本中连续执行命令:(命令1;命令2.....)[@
Windows平台 用邮件方式发送export备份情况
windows平台,对于export备份,希望能在备份结束后将出错信息发给相关人员。可以这么做:[@more@]1.写export的bat文件:set nls_lang=AMERICAN_AMERICA.WE8MSWIN1252EXP username/password@service_name FILE=*.dmp LOG=*.LOG FULL=Y COMPRESS=Ntype *.LOG | find "Export terminated successfully without warnings."IF ERRORLEVEL 1 GOTO SendAlertGOTO End:SendAlertcscript D:DBEXPBackupAlert.vbs:End2.BackupAlert.vbs:Option ExplicitDim objMessage, strReceiver, strSender, strSubject, strContent, strAttachmentst
对表归档的一个思路及方法
随着数据库的日渐庞大,有时需要进行归档。以下是一些思路:1.新建一个表空间存放各表的历史数据。1.1写一个存储过程搬数据,数据搬迁到历史表后,在基表中将搬迁的数据删除。2.定期将历史数据exp到磁带中去做永久保存。3.历史数据exp之后,可以清空各历史数据表。这样,表空间的大小实际上是很容易伸缩及控制的。在这个过程当中,我们可以看到基本的数据由于可以定期清理到历史数据表,继而再清理到磁带。因此,数据库不会越来越大。方便备份及减少查询时间。具体的实现过程如下:[@more@]procedure的思路是:1.创建临时表:CREATE GLOBA
10g的一个bug:'IN' IS NOT A VALID INTEGER VALUE
今天在调试一个procedure的时候,需要有这样的一个语句:insert into table_a select rowid from table_b where...调试过程中报'IN' IS NOT A VALID INTEGER VALUE错。以下是解决过程:[@more@]解决方法:1.以sys登陆,将view:ALL_ARGUMENTS 改名以做backup。2.运行以下sql:CREATE OR REPLACE VIEW ALL_ARGUMENTS (OWNER, OBJECT_NAME, PACKAGE_NAME, OBJECT_ID, OVERLOAD, ARGUMENT_NAME, POSITION, SEQUENCE, DATA_LEVEL, DATA_TYPE, DEFAULT_VALUE, DEFAULT_LENGTH, IN_OUT, DATA_LENGTH, DATA_PRECISION, DATA_SCALE, RADIX, CHARAC
Oracle Internet Directory 软件下载及文档
现在公司对OID的需求越来越迫切了。所以,在网上搜了搜。未果。还是通过metalink问support。反馈信息如下:[@more@] QUESTION========Where to download OID and get the corresponding documentations ?ANSWER======+ The latest version of OID is 10.1.4.0.1 which can be downloaded from the following pagehttp://www.oracle.com/technology/software/products/ias/htdocs/101401.htmlOID is available with the "Oracle Identity Management Infrastructure and Oracle IdentityFederation" suite(During the installat
Windows平台上9i与10g共存是listener的问题
当在一台 server上同时装9i与10g时,无法用9i的listener去监听10g的数据库。连接时报ora-12537。说tns连接关闭。解决方法:1.在services.msc中,关闭9i的listener.ora服务。并设为manual。2.用10g的net configuration assistant创建一个新的listener.ora.3.将9i的oracle_homenetworkadmin下的listerner.ora拷贝到10g的oracle_homenetworkadmin目录下。4.重起10g的listener服务。问题解决。说穿了就是兼容性不好。[@more@]