
监控数据备份恢复完成进度(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 ssaddr=dsaddr;
补充一下,前面的sql命令行格式化有点问题,number型的字段应该用9999xxx(多个9) 而不是axx,否则会出现一串串的#。
2 attach参数
1)查看任务进度
当你使用crontab后台任务运行导入导出任务的时候,想查看任务进度,该参数很有用,可以让你再次连接到已经断开的会话中,再次接管导出或导入的任务,当然你得先用前面2个视图查到jobname。
2)中途想停止crontab后台任务
此时,该参数非常好用。因为你不这样做,就得杀进程,而那么多进程,通常都会出错,如此暴利的杀进程方式,强烈滴不推荐。
举例:
假如之前后台任务的脚本中,有类似命令:
expdp system/xxx DIRECTORY=DATA_PUMP_DIR2 parallel=32 DUMPFILE=xxxx-%UdmpATTACH参数解释:将你的数据泵取客户机会话加入到一个运行的作业中,并使你进行交互方式。此参数只能与用户名/密码组合一起使用。
此时你可以使用如下命令重新连接任务,并达到提前终止任务的目的:
expdp system/xxx attach=lurouexp
连接进去之后再执行help命令可以查到停止任务的命令,这里就不列出来了
3 longops视图
另也可以通过v$session_longops视图来监控长期运行的会话。
4通过语句查看impdp进度SELECT atablespace_name,
ROUND (atotal_size) "total_size(MB)",
ROUND (atotal_size) - ROUND (bfree_size, 3) "used_size(MB)",
ROUND (bfree_size, 3) "free_size(MB)",
ROUND (bfree_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
atablespace_name = btablespace_name(+);
二、查看RMAN备份进度
另外,查看rman的备份进度,可以用如下语句,记录备忘。
SELECT SID,OPNAME, SERIAL#, CONTEXT, SOFAR, TOTALWORK, ROUND(SOFAR/TOTALWORK100,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
使用数据泵备份;
echo 正在备份 中通钢构Oracle-CRM数据库,请稍等
expdp 用户名/密码 exclude=statistics parallel=6 dumpfile=文件名dmp logfile=文件名txt
打开Navicat
右击导出数据的oracle数据库,然后点击打开连接
点击数据泵,然后点击数据泵导出
在常规标签页,设置工作名、模式、内容、导出数据等
点击sql预览,预览sql语句
点击运行,信息日志标签页会显示数据泵导出过程
dmp是数据库导出的文件,用以备份数据库用,一般会用exp命令来导出,用imp命令来导入也就是恢复数据库。
导出数据库备份dmp文件
exp user/password@orcl file=d:\dataBak\oracledmp log=e:\logtxt full=y
导入数据库备份dmp文件
imp user/password@orcl file=d:\dataBak\oracledmp log=e:\logtxt ignore=y full=y
基本就用这些就可以了,我每次导出导入就只用了这些参数,都能满足需求的。
full=y就是全部,把表、存储过程、函数等一起导出,导入时也一样,导入中的ignore=y是忽略重复表,就是原来你存在这些表中的某个的话,会报错误信息,加上这个就不会了。
以上就是关于如何监控oracle数据库的备份全部的内容,包括:如何监控oracle数据库的备份、Oracle 11G进行数据库备份的时候,发生报错,备份失败。、navicat怎么导出oracle数据泵如何使用Navicat进行oracle数据泵导出啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)