《学习Oracle从这里开始》之解决错误篇
时间:2014-08-30 19:08 来源:linux.it.net.cn 作者:it
想把自己以往工作中遇到的问题和解决办法写下来,留作纪念:
问题一:ORA-00031
问题描述:在执行以下语句时,报的错误,标记要删去的会话,但会话kill不掉:
alter system kill session 'sid,serial#';
解决办法:
1、执行查询,将所有状态为KILLED的锁:
select a.spid,b.sid,b.serial#,b.username from v$process a,v$session b where a.addr=b.paddr and b.status='KILLED';
2、在服务器端执行orakill:
cmd==>orakill sid spid
问题二:ORA-00372
问题描述:数据无法写入。
解决办法:
1、查询当前为Readonly的表空间:
select a.TS#,a.ENABLED,a.NAME,b.NAME tablespacename from v$datafile a,v$tablespace b where a.ts#=b.ts# and a.ENABLED = 'READ ONLY';
2、在服务器端以sysdba登录(具体方法参见我的博客:http://blog.itpub.net/25357621/viewspace-1246635/),执行下面的命令:
alter tablespace tablespacename read wirte;
问题三:查看执行计划时为:'PLAN_TABLE' is old version
解决办法:
1、explain plan for select * from tablename;
2、select * from table(dbms_xplan.display);
如果不行,继续下面的步骤
3、drop table plan_table;
4、@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlxplan.sql
5、执行第一步和第二步,至此问题一般都解决了。
问题四:ORA-22812
解决办法:直接在报错的SQL语句上添加hint即可:
select /*+ nested_table_get_refs */ from tablename;
2014-08-08 14:35 补充:
问题五:ORA-28000 the account is locked
解决办法:以sysdba登录执行:alter user user_name account unlock;
模拟账户被锁现象:
1、conn /as sysdba
2、alter profile default limit failed_login_attempts 3;
3、连续登录失败三次,如:conn aa/bb;
4、conn /as sysdba
5、alter user jd account unlock;
6、解决办法:alter profile default limit failed_login_attempts unlimited;
自己在工作中也遇到了各种各样很多的问题,本来想把它写下来,留作纪念,在写的时候发现以往自己解决完问题后根本就没做记录,今天就先暂时写这么多,以后再遇到问题,再慢慢补充。
(责任编辑:IT)
想把自己以往工作中遇到的问题和解决办法写下来,留作纪念:
问题一:ORA-00031
2014-08-08 14:35 补充:
问题五:ORA-28000 the account is locked
自己在工作中也遇到了各种各样很多的问题,本来想把它写下来,留作纪念,在写的时候发现以往自己解决完问题后根本就没做记录,今天就先暂时写这么多,以后再遇到问题,再慢慢补充。 (责任编辑:IT) |