以下转自:http://www.2cto.com/database/201307/230938.html
一、查看EXPDP/IMPDP的进度
1 两个视图
当你当如导出的时候,如果数据量比较大,中途有些人会着急,不免想看看进度如何,利用两个视图就可以看:
1
2
3
4
5
6
7
8
9
10
DBA_DATAPUBMP_JOBS和DBA_DATAPUMP_SESSIONS视图
col owner_name fora10
col job_name fora20
col operation fora10
col job_mode fora10
col state fora20
col degree fora10
col  ATTACHED_SESSIONS fora30
col DATAPUMP_SESSIONS fora30
setlinesize 200


格式化只是为了好看,也可以不用,直接用PL/SQL DEVELOPER图形工具。
可以使用DBA_DATAPUBMP_JOBS和DBA_DATAPUMP_SESSIONS视图来显示数据泵取作业的信息。
1
2
3
4
select* fromDBA_DATAPUBMP_JOBS;
select* fromDBA_DATAPUMP_SESSIONS;
selectsid,serial# fromv$session s,dba_datapump_sessions d wheres.saddr=d.saddr;


补充一下,前面的sql命令行格式化有点问题,number型的字段应该用9999xxx(多个9) 而不是axx,否则会出现一串串的#。
2 attach参数
1)查看任务进度
当你使用crontab后台任务运行导入导出任务的时候,想查看任务进度,该参数很有用,可以让你再次连接到已经断开的会话中,再次接管导出或导入的任务,当然你得先用前面2个视图查到jobname。
2)中途想停止crontab后台任务
此时,该参数非常好用。因为你不这样做,就得杀进程,而那么多进程,通常都会出错,如此暴利的杀进程方式,强烈滴不推荐。
举例:
假如之前后台任务的脚本中,有类似命令:
1
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进度
1
2
3
4
5
6
7
8
9
10
11
12
SELECTa.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(  SELECTtablespace_name, SUM(bytes) / 1024 / 1024 total_size
FROMdba_data_files
GROUPBYtablespace_name) a,
(  SELECTtablespace_name, SUM(bytes) / 1024 / 1024 free_size
FROMdba_free_space
GROUPBYtablespace_name) b
WHEREa.tablespace_name = b.tablespace_name(+);


二、查看RMAN备份进度
另外,查看rman的备份进度,可以用如下语句,记录备忘。
1
2
3
4
5
6
7
8
9
SELECTSID,OPNAME, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
FROMV$SESSION_LONGOPS
WHEREOPNAME LIKE'RMAN%'
ANDOPNAME NOTLIKE'%aggregate%'
ANDTOTALWORK != 0
ANDSOFAR <> TOTALWORK
orderby"%_COMPLETE"
desc