需求:

两台P550+DS4700架设oracle10g RAC,由于用户比较多、数据量比较大,通过exp导出需要的时间巨大(大约要24小时),时间窗不允许采用这样的备份方式,又没有备份软件进行自动备份,所以需要一种备份机制可以实现自动备份的前提下,用时也能控制在没有业务发生的时间内完成。

解决办法:

由于是oracle10g,我能想到的好办法是使用expdp方式在主机备份后、压缩并自动上传到FTP服务器,并删除服务器上的备份文件及上一次的压缩文件,以保持系统的可用空间。

下面是我的详细操作过程,记录下来备忘的同时希望能帮得到需要的朋友。

(1)先在操作系统上建立备份目录:/oracle/dpump_dir,给oracle:dba权限,赋于775权限

(2)通过oracle在数据库中建立备份目录:

>CREATE DIRECTORY DPUMP_DIR as '/oracle/dpump_dir';

查询创建了那些子目录:

>SELECT * FROM dba_directories;

(3)注意事项:

我这里是使用system用户来进行操作的。 如果是其他用户,那么就需要对这个用户进行赋权。

SQL> grant create any directory to system;

Grant succeeded.

#查看system用户的权限

SQL> select * from dba_sys_privs where grantee='SYSTEM';

grantee        privilege                       adm

------------------------------ ----------------------------  ------------

system        create any directory             no

system       global query rewrite              no

system       create materialized view          no

system       create table                     no

system       unlimited tablespace             yes

system       select any table                  no

如果是其他用户使用sys创建的目录,也需要进行赋权,如:

SQL> grant read, write on directory dpump_dir to system;

导出整个数据库,且使用并行导出方式

(4)建立备份脚本backup.sh,并给于775权限,脚本内容及说明如下:

=========================================================

#backup.sh文件。该文件先定义Oracle的环境变量,然后导出当天的数据,并创建相关的日志,然后把当天的数据和日志打包成.tar.gz文件。

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

#Oracle的字符集,Oracle数据库的中文字符集为AMERICAN_AMERICA.ZHS16GBK

export ORACLE_HOME=/oracle/db10g

#Oracle数据库的根目录

/oracle/db10g/bin/expdp system/password@orcl1 directory=DPUMP_DIR dumpfile=orcl_`date +%Y%m%d`_%u.dmp logfile=orcl_`date +%Y%m%d`.log parallel=6 full=yes

#导出当日的数据库的数据并写日志。如当为2012-12-17,数据文件为orcl_20121217_01.dmp,日志为orcl_20121217.log

cd /oracle/dpump_dir

tar -cf orcl_`date +%Y%m%d`.tar orcl_`date +%Y%m%d`_*.dmp orcl_`date +%Y%m%d`.log

#把数据文件和日志打包

rm -f orcl_`date +%Y%m%d`_*.dmp

rm -f orcl_`date +%Y%m%d`.log

#删除备份.dmp文件和.log日志

gzip orcl_`date +%Y%m%d`.tar

#把tar包压缩成.tar.gz包

cat orcl_`date +%Y%m%d`.log | mail -s 'jdt_orcl Web Backup' yuyulu@live.cn[/email]

#把当天日志发送到[email=yuyulu@live.cn]yuyulu@live.cn邮箱

mv orcl_`date +%Y%m%d`.tar.gz /svr

#把当前目录的.tar.gz包移动到/svr目录下

find /svr -type f -mtime +7 -exec rm -f {} ;

#删除上个星期前生成的备份文件

#通过FTP上传到备份服务器

cd /svr

ftp -v -n 192.168.100.7 << EOF

user test test

binary

hash

prompt

put orcl_`date +%Y%m%d`.tar.gz

bye

EOF

==========================================================

注意:该语句是采用6个线程的方式备份整个数据,备份文件名称自动加上01-06的编号!!!!expdp语句后面没有分号,如果是双机注意SID实例名是否正确。否则会出现 ORA-39001参数错误。如果出现ORA-39002,一般是由于没有建立备份目录造成的!!!!)

(5)将脚本添加到crontab自动运行

#crontab -e

(格式为minute  hour  day_of_month  month  weekday  command)

0 1 * * 6 /home/oracle/backup.sh  >/dev/null 2>&1 #backup database every weeky at saterday 1:00 am!

(6)数据泵的监控

1).查询dba_directories获得所创建的目录

2).可以查询dba_datapump_jobs来查看数据泵作业的运行情况,也可以利用ATTACH重新连接上还在进行的JOB

每个datapump可以通过job_name 参数来指定作业名称,如未指定,则系统使用默认的作业名称,如下面的视图中为

SYS_EXPORT_FULL_01

通过v$session_longops也可以查看长时间运行的datapump job的具体内容

SQL> select owner_name owr,job_name jbn,operation ope,job_mode jbm,state,degree,

attached_sessions atts,datapump_sessions dats

from dba_datapump_jobs;

OWR        JBN                  OPE                  JBM             STATE          DEGREE    ATTS      DATS

---------- -------------------- -------------------- --------------- ---------- ---------- ---------- ----------

SCOTT      SYS_EXPORT_FULL_01   EXPORT               FULL            COMPLETING          2    1          2

SQL> select sid, serial#,session_type from  v$session s, dba_datapump_sessions d where s.saddr = d.saddr;

SID    SERIAL# SESSION_TYPE

---------- ---------- --------------

143         10 DBMS_DATAPUMP

149         37 MASTER

132          3 WORKER

136          3 WORKER

135          4 WORKER

141          5 WORKER

128          2 WORKER

142          4 WORKER

3).监控数据泵的逻辑备份程度

>SELECT sid, serial#, context, sofar, totalwork,

ROUND(sofar/totalwork*100,2) "%_COMPLETE"

FROM v$session_longops

WHERE opname LIKE '%EXP%'

AND totalwork != 0

AND sofar <> totalwork;

SID SERIAL# CONTEXT SOFAR   TOTALWORK   %_COMPLETE

130 33     0       54          70       77.14

(7)数据恢复的方法,通过oracle用户进行恢复

$impdp system/password DIRECTORY=/oracle/dpump_dir DUMPFILE=orcl_20121212_01.dmp,orcl_20121212_02.dmp,orcl_20121212_03.dmp SQLFILE=aa.sql

使用这种方法的impdp,可以从dp出来的dmp文件中提取对象的DDL语句,这样的impdp并不把数据导入数据库中,只是创建DDL语句文件,导入时不要使用parallel参数

(8)如果单独导出数据,在运行expdp后,按下exit组合,退出数据导出模式,进入交互模式

Export>

Export> status

(9)停止作业

Export> stop_job

是否确实要停止此作业 ([Y]/N): yes

...................

(10)用job_name再次连接到job

>expdp system/password attach=SYS_EXPORT_FULL_01

ATTACH用于在客户会话与已存在导出作用之间建立关联. 如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外

,不能指定任何其他选项。

Export: Release 10.2.0.4.0 - Production on 星期一 12月 27 15:26:14 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

作业: SYS_EXPORT_FULL_01

所有者: SYSTEM

操作: EXPORT

创建者权限: TRUE

GUID: 454A188F62AA4D578AA0DA4C35259CD8

开始时间: 星期一, 27 12月, 2012 15:26:16

模式: FULL

实例: orcl

...............................

(11)expdb的一个功能就是可以停止或是启动JOB(如果需要的话)

Export> start_job

查看状态

Export> status

.............................

oracle 导入攻略,oracle10g下expdp自动导出并上传全攻略相关推荐

  1. PHP 文件上传全攻略

    PHP文件上传功能一般都是大家使用事先封装好的函数,要用的时候直接使用已封装的函数就完了,但有时候不能使用封装函数,还真不大能记住PHP的上传相关的东西,在此做个总结,以备后用. 1.表单部分 允许用 ...

  2. 企业上云要几步?中拓互联奉送企业上云全攻略

    企业上云要几步?中拓互联奉送企业上云全攻略 不论是国家倡导的"上云用数赋智",还是由疫情引发的强烈需求,这两年成长型企业上云,可谓是如火如荼. 图片来源于:人民政府网 虚无缥缈的一 ...

  3. mysql定时备份并上传ftp_Linux下定时任务实现mysql自动备份并上传远程ftp

    Linux下定时任务实现mysql自动备份并上传远程ftp 1.创建保存备份文件的目录:/home/mysql_data cd /home mkdir mysql_data 2.创建备份脚本文件:/h ...

  4. mysql远程定时任务_Linux下定时任务实现mysql自动备份并上传远程ftp

    Linux下定时任务实现mysql自动备份并上传远程ftp 1.创建保存备份文件的目录:/home/mysql_data cd /home mkdir mysql_data 2.创建备份脚本文件:/h ...

  5. 哔哩哔哩自动生成视频上传,B站发布软件使用教程

    哔哩哔哩自动生成视频上传,B站发布软件使用教程,全自动引流发帖软件介绍#引流发帖软件#全自动引流发帖#引流推广#拓客引流#爆粉软件 大家好,我是百收编辑狂潮老师,下面给大家讲一下 b 站上传软件它的一 ...

  6. Centos配置Jenkins实现Android自动打包并上传到蒲公英

    本篇文章来自 徐永红  的投稿,给大家讲解Centos配置Jenkins实现Android自动打包并上传到蒲公英,希望对大家有所帮助. 徐永红 的博客地址: https://xuyonghong.cn ...

  7. android 实现自动拍照,android 调用摄像头自动拍照 并上传到YEELINK

    前几天看到yeelink这个网站很感兴趣,注册了个图像传感器,就想着写个程序调用安卓摄像头并上传照片 程序很简单这个还是记录一下 首先是权限,分别是联网,相机,文件读取,照相和自动对焦的权限 然后是代 ...

  8. ThinkPHP自动化为已经上传的图片添加「 响应式」水印(数据库字段部分)

    版权属于: Postbird - There I am , in the world more exciting! 原文地址: http://www.ptbird.cn/thinkphp-image- ...

  9. linux 备份mysql并上传_实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

    这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到 ...

  10. iOS架构-自动打包并上传到App Store(python)(21)

    这里是摘自一篇用python 语法写的脚本,这里只是为了更好的理解自动化打包上传App Store的原理的. 一. iOS 自动打包并上传到App Store(python) 我们平时大都是用Appl ...

最新文章

  1. 浅析关键词与搜索引擎之间不得不说的关系
  2. python快速排序解析_快速排序python实现总结
  3. Vscode配置C语言问题
  4. html head
  5. window.onload 和 body.onload 相互覆盖的本质
  6. process.cwd __dirname __filename 区别
  7. 浅谈Spring注解
  8. SpringBoot—CORS跨域问题详解和解决方案
  9. 三.redis 排序
  10. Factory Pattern工厂模式
  11. win10系统如何安装SQL服务器,win10系统下怎样安装SQL2005 EXPRESS版|SQL2005 EXPRESS版的安装方法...
  12. 【回炉重造】—— 异常
  13. unity零基础开始学习做游戏(四)biu~biu~biu发射子弹打飞机
  14. ActiveMQ 源码学习 2:从 CommandTypes 谈常量接口反模式
  15. A1489. 抽奖(乔明达)
  16. 2021年施工员-设备方向-岗位技能(施工员)考试试卷及施工员-设备方向-岗位技能(施工员)证考试
  17. 《让子弹飞》系列——小六子之死
  18. Elasticsearch之批量处理。
  19. 查询同学选修mysql课程的成绩_mysql-练习题 - osc_wy5qpqnh的个人空间 - OSCHINA - 中文开源技术交流社区...
  20. 优秀字体 —(设计)

热门文章

  1. 让devcpp支持c++11
  2. Win10-64位上编译CodeLite13.0.0源码
  3. 变压器励磁模型 Matlab simulink 可用于模拟电压暂降等电能质量问题
  4. 计算机准备打印却没动静,打印机显示正在打印但是没反应怎么办?
  5. php后台登录页,后台登录页面模板源码
  6. iOS Swift之RxSwift初探
  7. 过原点回归的两条性质的理解
  8. matlab 用m_map画地形水深图
  9. C++实现http客户端连接服务端及客户端json数据的解析
  10. 字节架构师发布“绝版”Java并发实现原理剖析JDK源码