OUI-10058错误
OUI-10058: The OUI Inventory on this system does not exits or is not writable .[@more@]今天在CentOS5.3上安装oracle的时候,到最后报了如下错误:OUI-10058: The OUI Inventory on this system does not exits or is not writable .1-The /opt/oracle/oraInventory/orainstRoot.sh script was not executed with root privileges,or an error occurred during execution;2-You are not a member of the specified installer group查了下网络,一般导致这个的原因是由于 用oracle用户执行了 orainstRoot.sh 和 root.sh但是我的情况是
一次ORA-00704的处理
一次ORA-00704的处理[@more@]今天早上,发现有个数据库无法启动了,错误信息如下:oracle@mas238 102db]$ sqlplus "/as sysdba" SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 10月 18 00:18:27 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. 已连接到空闲例程。 SQL> startup ORACLE 例程已经启动。 Total System Global Area 536870912 bytes Fixed Size 1220432 bytes Variable Size 150995120 bytes Database Buffers 381681664 bytes Redo Buffers
Per语言入门第4版学习笔记-第四章子程序
第四章子程序4.1 定义一个子程序4.2 调用子程序4.3 返回值4.4 参数(Arguments)4.5 子程序中的私有变量4.6 参数列表的长度4.6.1 更好的&max 程序4.6.2 空参数列表4.7my 变量的注释4.8 使用strict Pragma4.9 返回操作4.9.1 省略符号&4.10 非标量返回值[@more@]第四章子程序4.1 定义一个子程序要定义自己的子程序,使用关键字sub,子程序的名字sub marine {$n + = 1; #全局变量$nprint “Hello, sailor number $n!n”;}事实上,到现在为止所出现的所有变量均是全局的4.2 调用子程序可以使用子程序的名字(带有&)来调用子程序&
ORA-00474
ORA-00474: SMON process terminated with error[@more@]客户反映数据库异常down了Sat Aug 8 20:41:03 2009Errors in file /u01/oracle/10gdb/admin/masprod/bdump/masprod_pmon_4970.trc:ORA-00474: SMON process terminated with errorSat Aug 8 20:41:03 2009PMON: terminating instance due to error 474Instance terminated by PMON, pid = 4970.tre 文件的内容error 474 detected in background processORA-00474: SMON process terminated with errordmesg 的结果:oom-killer: gfp_mask=0xd0Mem-info:DMA per-cpu:cpu 0 hot: lo
Per语言入门第4版学习笔记-第三章列表和数组
第三章列表和数组3.1 访问数组元素3.2 特殊的数组索引3.3 列表3.3.1 qw 简写3.4 列表赋值3.4.1 pop 和push 操作3.4.2 shift 和unshift 操作3.5 将数组插入字符串3.6 foreach 控制结构3.6.1 Perl 最常用的默认变量:$_3.6.2 reverse 操作3.6.3 sort 操作3.7 标量和列表上下文3.7.1 在标量Context 中使用List-Producing 表达式3.7.2 在列表Context 中使用Scalar-Producing 表达式3.7.3 强制转换为标量Context3.8 <STDIN>在列表Context 中3.9 练习[@more@]第三章列表和数组列表是标量的有序集。数组是包含列表的变量。在Perl 中这个两个
Per语言入门第4版学习笔记-第二章标量数据
第二章标量数据2.1数字2.2 字符串2.3 Perl内嵌的警告2.4 标量变量2.5 print输出 2.6 if控制结构2.7 用户输入2.8 chomp 操作2.9 while控制结构2.10 undef 值2.11 defined 函数[@more@]第二章标量数据Perl 也有数据类型—标量。标量是Perl 中最简单的数据类型。大多数的标量是数字(如255 或3.25e20)或者字符串(如hello◆或者盖茨堡地址)。Perl 几乎以相同的观点来看待它们。2.1数字2.1.1 所有数字内部格式是一致的对Perl来说,所有整数和浮点数都被当作双精度浮点数来处理。2.1.2 浮点数1.25
统计session 打开的游标数目
v$open_cursor 中纪录的不光是打开的游标数目,还有cached 的游标所以要统计真实的打开的游标数据,需要查看select * from v$sesstat a,v$statname bwhere a.STATISTIC#=b.STATISTIC# and b.NAME='opened cursors current';[@more@]v$open_cursor 中纪录的不光是打开的游标数目,还有cached 的游标所以要统计真实的打开的游标数据,需要查看select * from v$sesstat a,v$statname bwhere a.STATISTIC#=b.STATISTIC# and b.NAME='opened cursors current';
ORA-00942
能访问的表,却抱 ORA-00942[@more@]今天写了个function:create or replace function show_pkg (name in varchar2) return varchar2isv_code varchar(1000);cursor c_code isselect a.text from sys.dba_source a where a.owner='MAS9I' and a.name=upper(name) and a.type='PACKAGE BODY';beginopen c_code;loopfetch c_code into v_code;exit when c_code%notfound;dbms_output.put_line(v_code);end loop;end;编译的时候抱错:ORA-00942: table or view does not exist ,可是用该用户是可以访问 DBA_SOURCE的,为啥写到function会抱错
sqlplus失去响应
今天突然发现用sqlplus一连接数据库就死在那里了。[@more@]现象:今天本地装了个10g的数据库,用 sqlplus xxx/xxx@aaa 来连接数据库,然后就死掉了,没有反应,但是用 sqlplus "/ as sysdba" 可以正常连接数据库,用 @xxx 的方法连接别的地方的数据库正常。分析:发现数据库的udump目录下,每次一连接就会有一个.trc文件生成,里面的内容是 opiino: Attach failed! error=-1 ifvp=00000000sqlnet.log 文件里面也发现抱错;TNS-12560: TNS:协议适配器出现错误上网查了一下,意思就是 用了9i的listener来连接了10g的数据库。可是我
物化试图日志过大
发现一张物化试图日志表达到了2G。...[@more@]1. 远程试图使用的rowid刷新,可我的日志用的是主键创建的,所以fast刷新失败,结果使用了完全刷新,导致日志表一直增加。顺便看了下物化视图刷新的顺序。更新的顺序是先删除后更新,最后插入。首先查询出需要删除的数据:SELECT /*+ remote_mapped(MASPROD104.CIMC.COM) */DISTINCT M_ROW$$FROM (SELECT M_ROW$$FROM "MAS9I"."MLOG$_ACTION_TEST1"@MASPROD104.CIMC.COM MLOG$WHERE "SNAPTIME$$" > :1AND ("DMLTYPE$$" != 'I')) LOG$WHERE (M_ROW
[转贴]Skip Scan Index
今天用STA,叫我用Skip Scan Index ,转个贴记录了一下[@more@]在Oracle9i中,有一个新的特性:跳跃式索引(Skip Scan Index)。当表有一个复合索引,而在查询中有除了索引中第一列的其他列作为条件,并且优化器模式为CBO,这时候查询计划就有可能使用到SS。此外,还可以通过使用提示index_ss(CBO下)来强制使用SS。强制使用ss的方法: select /*+index_ss(test1 test_idx1)*/* from test1 a where b ='a';但并不是任何情况下都会使用到SS。在Oracle的官方文档中,除了提到需要CBO,并且对表进行过分析外,还需要保证第一列的distinct valu
enq: DX - contention
今天用addm检查数据库的时候,报了一个enq: DX - contention的过多等待。[@more@]enq: DX - contention 是分布式事务所使用的锁。select * from v$lock where type='DX'发现C0000001380D5D00 C0000001380D5D20 2833 DX 16 0 1 0 1121192 0C0000001380E76C8 C0000001380E76E8 2234 DX 51 0 4 0 4150509 1C0000001380E7B08 C0000001380E7B28 2784 DX 51 0 0 6 4150445 0这些锁的时间可不小啊,原来是2234堵住了2784,而且时间很久了,杀掉2234后,正常不过 DX 这个锁是如何发生的呢,做了一个小测试数据库A,数据库B 数据库A上有 dblinkB 连
ORA-03106
ORA-03106的错误。[@more@]客户半个月以前曾经碰到过一个问题,有个job抱错,执行的内容是通过 dblink 往对方的数据库插数据,一直跑得好好的,突然就开始出错了。ORA-12012: 自动执行作业 82 出错ORA-03106: 致命的双工通信协议错误ORA-02063: 紧接着line(源于HRMS.CIMC.COM)ORA-06512: 在"xxxxxxxx", line 399ORA-06512: 在line 1因为以前一直跑得很好,所以怎么也想不通为啥抱错,于是先重现问题发现抱错,没什么办法,无聊之下多执行了几次,发现了一个奇怪的现象,就是抱错的行数一直在增大,就是说这次抱错在399 行 ,下
windows通过samba访问aix的共享目录
windows通过samba访问aix的共享目录的配置方法 [@more@]一、Samba基础1、 简介1).SMB协议 SMB(Server Message Block,服务器信息块)协议可以看作是局域网上的共享文件/打印机的一种协议,它可以为网络内部的其它Windows和Linux机器提供文件系统、打印服务或是其他一些信息。 SMB的工作原理是让NetBIOS(Win95网络邻居通信协议)与SMB这两种协议运行在TCP/IP的通信协议上,且使用NetBIOS nameserver让用户的Linux机器可以在Windows的网络邻居里被看到,所以就可以和Win95/NT主机在网络上相互沟通,共享文件与服务了。 目前Micros
dbms_system.set_sql_trace_in_session 无效
用 dbms_system.set_sql_trace_in_session 设置了sql trace,可是无效。 [@more@]今天需要追踪下别人的sql,用exec dbms_system.set_sql_trace_in_session(11,13,true);执行成功,可是看 v$session 字段里面的SQL_TRACE还是DISABLED 阿,奇怪是sys用户阿,执行也没有抱错,后来才发现,原来要用户做下操作,该字段才会被刷新的,虽然字段还没有改过来,其实已经生效了。
ORA-00932
form6i在读取blob的时候 抱错 ORA-00932:数据类型不一致[@more@]公司的HR系统还是form6i的,最近数据库升级到了10g (10.2.0.1.0) ,结果在读取blob字段的时候,抱错了 ORA-00932:数据类型不一致,应为 ,但却获得 一样的程序在9i和8i都正常的,估计是6i不支持10g的blob。找了下资料,原来是个bughttp://forums.oracle.com/forums/thread.jspa?threadID=370746,说把form 6i 打到patch 17 就可以了, metalink上说是bug ,bug号 1883920 ,不过说是15patch就解决了,可是出问题的就是打到15 patch的form 6i ,奇怪,估计他们搞错了吧,反正是
11g新特性之结果集缓存
11g新特性之结果集缓存[@more@]结果集缓存(Result Set Caching)缓存是提高性能的一个常用手段,可以说在Oracle数据库中,Cache无处不在。Result Cache进一步又可以分为:Server Result Cache 和 Client Result Cache。前者通过服务器端SGA来缓存结果集,后者通过客户端来缓存结果集。Client Result Cache:在使用OCI应用程序时,可以通过客户端内存来缓存查询的结果集,缓存结果可以在所有session间共享,当查询反复执行时,查询结果可以直接从客户段的缓存中获得,从而极大地提高应用效率。客户端结果集缓存并不使用服务器端的内存,不会
TRIM & LTRIM & RTRIM
TRIM & LTRIM & RTRIM 的用法。真的和你想得一样的简单吗?[@more@]LTRIM(char [, set ]) PurposeLTRIM removes from the left end of char all of the characters contained in set. If you do not specify set, it defaults to a single blank. If char is a character literal, then you must enclose it in single quotes. Oracle Database begins scanning char from its first character and removes all characters that appear in set until reaching a character not in set and then returns the result.Both char and
排序的迷惑
排序的迷惑,请教! create table cust( cust_id number(10),cust_name varchar2(50));insert into cust values(1 ,'aaa');insert into cust values(2 ,'bbb');insert into cust values(3 ,'ccc');insert into cust values(4 ,'ddd');insert into cust values(5 ,'eee');====SQL> select * from (2 SELECT cust_name,MAX(cust_id) OVER ( order by cust_id desc ) cc3 FROM cust) where rownum=14 /CUST_NAME CC------------------ ----------eee 5SQL> select cust_name from (2 SELECT cust_name,MAX(cust_id) OVER ( order by c
[转]分析函数 last_value的使用
分析函数 last_value的使用 今日,一同事使用了last_value来获取本组的最后一行的值,但是结果与预期的不同,如下: create table t_last_value (id number , sal number) ;insert into t_last_value values (1,1) ;insert into t_last_value values (1,2) ;insert into t_last_value values (1,3) ;insert into t_last_value values (2,3) ;insert into t_last_value values (2,4) ;insert into t_last_value values (2,5) ;commit ; SQL> select id , 2 last_value(sal) over(partition by id order by sal) last_value 3 from t