oracle expdp/impdp/rman 会话查看
博客专区 > 易野 的博客 > 博客详情
oracle expdp/impdp/rman 会话查看
易野 发表于7个月前
oracle expdp/impdp/rman 会话查看
  • 发表于 7个月前
  • 阅读 13
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

一、查看EXPDP/IMPDP的进度 
1 两个视图 
利用两个视图就可以看: 
DBA_DATAPUBMP_JOBS和DBA_DATAPUMP_SESSIONS视图

col owner_name for a10
col job_name for a20
col operation for a10
col job_mode for a10
col state for a20
col degree for a10
col  ATTACHED_SESSIONS for a30
col DATAPUMP_SESSIONS for a30
set linesize 200

格式化只是为了好看,也可以不用,直接用PL/SQL DEVELOPER图形工具。 
  
可以使用DBA_DATAPUBMP_JOBS和DBA_DATAPUMP_SESSIONS视图来显示数据泵取作业的信息。 
 

select * from DBA_DATAPUBMP_JOBS;
select * from DBA_DATAPUMP_SESSIONS;
 
select sid,serial# from v$session s,dba_datapump_sessions d where s.saddr=d.saddr;

  
补充一下,前面的sql命令行格式化有点问题,number型的字段应该用9999xxx(多个9) 而不是axx,否则会出现一串串的#。 
2 attach参数 
1)查看任务进度 
当你使用crontab后台任务运行导入导出任务的时候,想查看任务进度,该参数很有用,可以让你再次连接到已经断开的会话中,再次接管导出或导入的任务,当然你得先用前面2个视图查到jobname。 
2)中途想停止crontab后台任务 
此时,该参数非常好用。因为你不这样做,就得杀进程,而那么多进程,通常都会出错,如此暴利的杀进程方式,强烈滴不推荐。 
举例: 
假如之前后台任务的脚本中,有类似命令: 
  

 
expdp system/xxx   DIRECTORY=DATA_PUMP_DIR2  parallel=32  DUMPFILE=xxxx-%U.dmp  filesize=50G  LOGFILE=xxx.log SCHEMAS=xxx   job_name=expdp_2table 
ATTACH参数解释:将你的数据泵取客户机会话加入到一个运行的作业中,并使你进行交互方式。此参数只能与用户名/密码组合一起使用。 
  
此时你可以使用如下命令重新连接任务,并达到提前终止任务的目的: 
  
expdp \' / as sysdba \'  attach=expdp_2table 
连接进去之后再执行help命令可以查到停止任务的命令,这里就不列出来了 
3 longops视图 
另也可以通过v$session_longops视图来监控长期运行的会话。 
  
4.通过语句查看impdp进度 

 

SELECT   a.tablespace_name,
         ROUND (a.total_size) "total_size(MB)",
         ROUND (a.total_size) - ROUND (b.free_size, 3) "used_size(MB)",
         ROUND (b.free_size, 3) "free_size(MB)",
         ROUND (b.free_size / total_size * 100, 2) || '%' free_rate
  FROM   (  SELECT   tablespace_name, SUM (bytes) / 1024 / 1024 total_size
              FROM   dba_data_files
          GROUP BY   tablespace_name) a,
         (  SELECT   tablespace_name, SUM (bytes) / 1024 / 1024 free_size
              FROM   dba_free_space
          GROUP BY   tablespace_name) b
 WHERE   a.tablespace_name = b.tablespace_name(+);


二、查看RMAN备份进度 
另外,查看rman的备份进度,可以用如下语句,记录备忘。 

 

SELECT SID,OPNAME, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE 'RMAN%'
AND OPNAME NOT LIKE '%aggregate%'
AND TOTALWORK != 0
AND SOFAR <> TOTALWORK
order by "%_COMPLETE"
desc
 


 

标签: Oracle
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 111
码字总数 100053
×
易野
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: