`
心杀心
  • 浏览: 30748 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

oracle常见问题汇总

阅读更多

 

1).Oracle游标超过设定值

问题情况:存储过程计算过程报错,使用游标数过多,系统游标设定太小,需要重新设置最大游标数  

1、查看Oracle最大游标数   

--oracle命令,以sys用户,dba连接

C:\Documents and Settings\Administrator>sqlplus "sys/admin@test151 as sysdba"   

--查看游标设置值 

SQL> show parameter open_cursors;   

NAME TYPE VALUE   

------------------------------------ ----------- -------------------   

open_cursors integer 300   

2、查看当前打开的游标数目   

SQL> select count(*) from v$open_cursor;   

COUNT(*)  

----------   

1321   

3、修改Oracle最大游标数   

SQL> alter system set open_cursors=2000 scope=both;   

系统已更改。  

--查看游标设置值 

SQL> show parameter open_cursors;   

NAME TYPE VALUE   

------------------------------------ ----------- --------------------   

open_cursors integer 2000

 

2)报错:ORA-01591锁定已被有问题的分配事务处理,重启数据库解决不了。

 

 

问题情况:当oracle数据库服务器需要往sqlserver2005上写点数据,通过建立透明网关使用dblink实现了功能,出现上述问题ORA-01591。

解决办法如下:

 

1、使用Oracle DBA用户,查询如下数据字典:select * from dba_2pc_pending

 

2、强制Rollback或者Commit该事务:

 

select 'commit force '''|| local_tran_id||''';' from dba_2pc_pending;

select 'rollback force '''|| local_tran_id||''';' from dba_2pc_pending;

 

 

 

执行查询出来的sql。

 

 

 

3)oracle存储过程死锁终止:

 

 

 

问题描述:在存储过程执行到一半时候,强行终止它,这个时候看session 是杀掉了,但存储过程还是不能重新编译,表明它还锁着。或者在存储过程执行时,进行修改编译,产生死锁。

windows下存储过程死锁终止:sqlplus "/as sysdba"

--1.查询被锁住的进程

SELECT * FROM V$DB_OBJECT_CACHE WHERE name='DEBT_YC_CHECK_PROC' AND LOCKS!='0';

--通过过程名查V$ACCESS视图,查到SID

select SID from V$ACCESS WHERE object='DEBT_YC_CHECK_PROC';

--2.查询会话(SESSION_ID,SERIAL#)

SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='885';

--查询库名及进程名

select spid, osuser, s.program 

from v$session s,v$process p

where s.paddr=p.addr and s.sid=885 ;

--3.先杀Oracle死锁进程-杀掉会话

--ALTER SYSTEM KILL SESSION 'sid,serial#';

alter system kill session '885,46883';

--4.如果还不能解决再杀操作系统进程,杀掉进程

orakill sid thread  

其中: 

sid:表示要杀死的进程属于的实例名 

thread:是要杀掉的线程号,即第2步查询出的spid

 

 

 

4)ora-00600错误,内部错误代码,参数: [kcratr1_lostwrt], [], [], [], [], [], [], []

 

 

问题情况:一次是正常关机后启动时报这样的错误,一次是非法关机后启动报这样的错误。

--dba用户输入,运行中sqlplus命令窗口

sqlplus "/ as sysdba"

--启动数据库

sql>startup mount

--恢复数据库

sql>recover database

--停止数据库

sql>stutdown immediate

--启动数据库

sql>startup

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics