1、监控 Oracle 中长时间运行的操作sql
SELECT sl.sid "会话ID", sl.serial# "序列号", sl.opname "操作名称", sl.sofar "已完成", sl.totalwork "总计", ROUND(sl.sofar/sl.totalwork*100,2) "完成百分比(%)", sl.units "单位", TO_CHAR(TRUNC(SYSDATE)+sl.elapsed_seconds/86400,'HH24:MI:SS') "已耗时", TO_CHAR(TRUNC(SYSDATE)+sl.time_remaining/86400,'HH24:MI:SS') "剩余时间", SUBSTR(s.sql_text,1,60) "当前SQL" FROM v$session_longops sl, v$sql s WHERE sl.sql_id=s.sql_id ORDER BY sl.elapsed_seconds DESC;
2通过impdp [用户名/密码@数据库服务名] ATTACH=[Data Pump 作业名]导入查看进度
例如:
impdp system/YinhaiSX202500oo@hispdb ATTACH=SYS_IMPORT_SCHEMA_03 查看导入进度
impdp 交互模式常用命令一览表
| 命令 | 语法示例 | 功能说明 | 是否可逆 | 建议使用场景 |
|---|---|---|---|---|
| 查看状态 | Import> STATUS |
显示当前作业的详细进度信息(状态、已处理数据、当前对象等) | ✅ 是 | 日常查看进度 |
| 自动刷新状态 | Import> STATUS=5 |
每 5 秒自动刷新一次状态(数字可调,如 STATUS=10) |
✅ 是 | 实时动态监控导入过程 |
| 暂停作业 | Import> STOP_JOB=IMMEDIATE |
立即停止当前作业,但保留作业元数据,可后续恢复 | ✅ 是(可恢复) | 需要临时中断(如维护) |
| 恢复作业 | Import> START_JOB |
重新启动被 STOP_JOB 暂停的作业 |
✅ 是 | 暂停后继续导入 |
| 彻底终止作业 | Import> KILL_JOB |
永久删除作业及其元数据,不可恢复 | ❌ 否 | 确认不再需要该导入任务 |
| 退出客户端 | Import> EXIT_CLIENT |
退出命令行客户端,但作业在后台继续运行 | ✅ 是 | 关闭终端但仍让导入继续 |
浙公网安备 33010602011771号