网站首页 > 技术文章 正文
概述
记录一次生产环境中同事在做imp导入某张表的时候窗口不小心关闭了,导致imp进程中断。在针对该表的操作提示资源繁忙,下面主要提供下整体的解决思路。
误操作命令:
imp xx/xx file=t_ksgl_sjmbtxglb.dmp ignore=y full=y
问题:由于在imp导入某个表的时候会话窗口不小心关了,然后想要drop表重来,但是数据库会话级别删不了。
解决过程:
1、查询数据库中的锁
select /*+rule*/s.sid,p.spid,l.type,round(max(l.ctime)/60,0) lock_min,s.sql_id,s.USERNAME,b.owner,b.object_type,b.object_name from v$session s, v$process p,v$lock l,v$locked_object o,dba_objects b where o.SESSION_ID=s.sid and s.sid=l.sid and o.OBJECT_ID=b.OBJECT_ID and s.paddr = p.addr and l.ctime >100 and l.type in ('TX','TM','FB') group by s.sid,p.spid,l.type,s.sql_id,s.USERNAME,b.owner,b.object_type,b.object_name order by 9,1,3,4;
这里可以发现sid是3570,spid是118034(实际上操作系统进程就是118034)
2、查看相关信息
SELECT 'kill -9 ' || p.spid, /*p.spid,p.pid,*/ s.sid, s.username, s.machine, s.sql_hash_value, s.last_call_et 秒, s.last_call_et / 60 运行时间, s.client_info, p.program "OSProgram", 'alter system kill session ''' || s.SID || ',' || s.SERIAL# || ''';', s.MACHINE FROM v$session s, v$process p where (s.status = 'ACTIVE' ) AND ((s.username IS NOT NULL) AND (NVL (s.osuser, 'x') <> 'SYSTEM') AND (s.TYPE <> 'BACKGROUND')) AND (p.addr(+) = s.paddr) and s.sid = '3570'
3、操作系统层面删除会话
数据库层面无法删除会话:alter system kill session '3570,16331';
操作系统层面删除:kill -9 118034
另一个解决方法:
上面实际上是通过查数据库锁来定位到相关进程,实际上也可以在操作系统层面去查询进程:
ps -ef|grep LOCAL=NO|grep ORACLE_SID|grep -v grep
说明:
LOCAL=NO :非本地连接,即网络连接。 它是通过Listener 连接到服务器的。 客户端的应用通过客户端的监听向服务器的监听发送请求,服务器的监听接收后,在与数据库连接,执行相关操作,在把结果返回给客户端。 这是通过监听的流程。 所以在客户端需要配置监听,即配置tnsnames.ora。
LOCAL=YES:本地连接。 本地连接不走监听,所以在服务监听没有启动的情况下,通过本地的sqlplus 还是可以连上数据库的。
因为imp是直接在操作系统上运行的,所以实际上从操作系统去查询就可以知道是哪个进程了。
这里主要是提供两个解决思路去处理关于imp中断方面的问题,后面会分享更多关于DBA方面的内容,感兴趣的朋友可以关注下!!
猜你喜欢
- 2025-07-28 Datapump数据迁移前的准备工作(数据迁移流程图)
- 2025-07-28 Spring Boot JDBC JTA分布式事务(springboot+jdbc)
- 2025-07-28 Spring Boot 分布式事务实现简单得超乎想象
- 2024-10-29 【服务器数据恢复】服务器硬盘坏道掉线怎么恢复数据?
- 2024-10-29 ORACLE常见问题-100问(系列二) oracle常见错误
- 2024-10-29 Linux面试题Oracle oracle面试题及答案
- 2024-10-29 oracle静默安装的详解 oracle19c静默安装实例
- 2024-10-29 Oracle 不是有效的导出文件,标头验证失败 解决方法
- 2024-10-29 生产环境中imp导入强制中断问题解决
- 2024-10-29 数据库笔试面试149——imp工具的ignore参数有什么作用?
你 发表评论:
欢迎- 635℃几个Oracle空值处理函数 oracle处理null值的函数
- 628℃Oracle分析函数之Lag和Lead()使用
- 615℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 612℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 608℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 602℃【数据统计分析】详解Oracle分组函数之CUBE
- 589℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 575℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)