Home  >  Article  >  Database  >  监控数据备份恢复完成进度(EXPDP/IMPDP/RMAN)

监控数据备份恢复完成进度(EXPDP/IMPDP/RMAN)

WBOY
WBOYOriginal
2016-06-07 17:30:591594browse

监控数据备份恢复完成进度(EXPDP/IMPDP/RMAN)

一、查看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=lurou.exp

ATTACH参数解释:将你的数据泵取客户机会话加入到一个运行的作业中,并使你进行交互方式。此参数只能与用户名/密码组合一起使用。

此时你可以使用如下命令重新连接任务,并达到提前终止任务的目的:

expdp system/xxx  attach=lurou.exp

连接进去之后再执行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

相关阅读:

通过expdp&impdp把11g的数据迁移到10g平台的要点

Oracle Data Pump使用范例及部分注意事项(expdp/impdp)

Oracle datapump expdp/impdp 导入导出数据库时hang住

expdp/impdp做Oracle 10g 到11g的数据迁移

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn