处于 ACTIVE 状态的情况非常短 暂,一旦发现某个会话长时间 ACTIVE,会对整个
系统的性能产生较大影响。 (4)用以下语句查找互锁 select l.sid,serial#,username, decode(block,0,'NO','YES') blocker, decode(request,0,'NO','YES') waiter from v$lock l,v$session s where s.sid=l.sid and (request>0 or block>0) order by block desc; 16、出现死锁的原因是什么? 答:这种情况的产生,一是可能为较大的统计
查询,一般建议避开计算机应用的高峰 时间,当确实影响系统运行时,可以将此会话取消,并通知用户另选时间运行;二是用户在 运行操作中非正常退出程序,例如重新启动机器等,反复几次即有可能造成死锁;三是应用 程序本身有
问题,也可能导致此现象发生。 17、解决死锁的办法是什么? 答: (1)进入 Oracle 的 Instance Manager,在 Session 管理处,确定要取消的会话并选中 后,点右键,在弹出菜单中,选择 Disconnect,系统会立即取消该会话。 (2)select sid,serial#,username from v$session where username='死锁的用户名';
SID SERIAL# USERNAME ---------- ---------- ------------------------------
17
2887 RZG
alter system kill session '17,2887'; 17、ORACLE 数据库监听服务
程序无法启动怎么办?(来自崔莹) 答:这个问题一般有几种情况。 一种是我们的机器名是以中文的方式标注的,导致 ORACLE 不能识别出计算机的机 器名。解决方法:就是把计算机名以英文的形式填写。 一种是安装好 ORACLE 数据库后,又对
计算机名进行了改变。导致监听程序在启动 的时候找不到以前的计算机名而无法启动。解决方法:只要把 ORACLE 数据库下的 “ listener ” 文 件 进 行 更 改 就 可 以 了 路 径 D:\oracle\ora81\network\ADMIN\ listener 里的(HOST =计算机名)改为现在的计算机名,这样监听服务程序就可
以 启动了。 18、在 P4 电脑上如何安装 ORACLE 数据库(来自崔莹) 答:在 P4 的电脑上安装 ORACLE8 数据库是会出现错误的,数据库不能启动。主要原因就是 ORACLE8I 里的一个动态连接库“SYMCJITD..DLL”会引发这个问题。它里面好像是记录一些 关于 P4 的信息, 而导致启动 ORACLE8I 有问题。 我们只要把这个文件的名字给它改变一下问 题就解决了。 19、在安装多个数据库实例后当卸载一个实例后,SQLPLUS 不能启动并提示“协议适配器错 误” (前提两个 ORALCE 的服务都能打开) (来自崔莹) 答:这个问题是由于注册表里 ORACLE 数据库的“SID”名称没有被改变,它还记录着我 们已经删除的 ORACLE 数据库实例名。如:YASHEN 我们只需要把
注册表下的 HKEY_LOCAL_MACHINE SOFTWARE ORACLE HOMEO 里的 ORACLE_SID 的内容改成现 在 ORACLE 数据库现在正在用的数据库实例名就可以啦。 20、 导入导出表的时候两张表中的字段顺序不一样应该怎样正确的导入表中的信息呢? (马 良提问) 答:首先我们可以进入 SPL PLUS 利用 DESC +表名,列出字段顺序(复制) ,进入 PB 工具, 使用 SELECT +字段顺序(粘贴)+表名, (注:每个字段后面加逗号,最后一个字段不需要 逗号) ,意思为按照这种字段顺序来查看表的信息。执行后导出表信息,然后连接需要导入 数据的数据库, 还是使用刚才的 SELECT 语句, 执行后字段顺序自动按照 SELECT 查询顺序排 列,这样在把导出的数据导入就不会出现错误。 (李国宝解答,马良整理) 21、当程序出现 invalidate column(无效字段)时怎么办? 答:用跟踪程序跟踪。把跟踪出来的语句在 PB 中执行找出相应字段。然后用 alter table 表名 add 字段名 类型 例如:alter table in_or_out_rec order_abbr varchar2(20) 22、如何拷贝一个完全备份的数据库到你的电脑上? 答:首先停掉与 ORACLE 相关的所有服务。然后把数据文件、控制文件、联机重做日志文 件、归档文件