oracle 导入攻略,oracle10g下expdp自动导出并上传全攻略
需求:
两台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自动导出并上传全攻略相关推荐
- PHP 文件上传全攻略
PHP文件上传功能一般都是大家使用事先封装好的函数,要用的时候直接使用已封装的函数就完了,但有时候不能使用封装函数,还真不大能记住PHP的上传相关的东西,在此做个总结,以备后用. 1.表单部分 允许用 ...
- 企业上云要几步?中拓互联奉送企业上云全攻略
企业上云要几步?中拓互联奉送企业上云全攻略 不论是国家倡导的"上云用数赋智",还是由疫情引发的强烈需求,这两年成长型企业上云,可谓是如火如荼. 图片来源于:人民政府网 虚无缥缈的一 ...
- mysql定时备份并上传ftp_Linux下定时任务实现mysql自动备份并上传远程ftp
Linux下定时任务实现mysql自动备份并上传远程ftp 1.创建保存备份文件的目录:/home/mysql_data cd /home mkdir mysql_data 2.创建备份脚本文件:/h ...
- mysql远程定时任务_Linux下定时任务实现mysql自动备份并上传远程ftp
Linux下定时任务实现mysql自动备份并上传远程ftp 1.创建保存备份文件的目录:/home/mysql_data cd /home mkdir mysql_data 2.创建备份脚本文件:/h ...
- 哔哩哔哩自动生成视频上传,B站发布软件使用教程
哔哩哔哩自动生成视频上传,B站发布软件使用教程,全自动引流发帖软件介绍#引流发帖软件#全自动引流发帖#引流推广#拓客引流#爆粉软件 大家好,我是百收编辑狂潮老师,下面给大家讲一下 b 站上传软件它的一 ...
- Centos配置Jenkins实现Android自动打包并上传到蒲公英
本篇文章来自 徐永红 的投稿,给大家讲解Centos配置Jenkins实现Android自动打包并上传到蒲公英,希望对大家有所帮助. 徐永红 的博客地址: https://xuyonghong.cn ...
- android 实现自动拍照,android 调用摄像头自动拍照 并上传到YEELINK
前几天看到yeelink这个网站很感兴趣,注册了个图像传感器,就想着写个程序调用安卓摄像头并上传照片 程序很简单这个还是记录一下 首先是权限,分别是联网,相机,文件读取,照相和自动对焦的权限 然后是代 ...
- ThinkPHP自动化为已经上传的图片添加「 响应式」水印(数据库字段部分)
版权属于: Postbird - There I am , in the world more exciting! 原文地址: http://www.ptbird.cn/thinkphp-image- ...
- linux 备份mysql并上传_实现Linux中Mysql数据库自动备份并上传到远程FTP服务器
这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到 ...
- iOS架构-自动打包并上传到App Store(python)(21)
这里是摘自一篇用python 语法写的脚本,这里只是为了更好的理解自动化打包上传App Store的原理的. 一. iOS 自动打包并上传到App Store(python) 我们平时大都是用Appl ...
最新文章
- 浅析关键词与搜索引擎之间不得不说的关系
- python快速排序解析_快速排序python实现总结
- Vscode配置C语言问题
- html head
- window.onload 和 body.onload 相互覆盖的本质
- process.cwd __dirname __filename 区别
- 浅谈Spring注解
- SpringBoot—CORS跨域问题详解和解决方案
- 三.redis 排序
- Factory Pattern工厂模式
- win10系统如何安装SQL服务器,win10系统下怎样安装SQL2005 EXPRESS版|SQL2005 EXPRESS版的安装方法...
- 【回炉重造】—— 异常
- unity零基础开始学习做游戏(四)biu~biu~biu发射子弹打飞机
- ActiveMQ 源码学习 2:从 CommandTypes 谈常量接口反模式
- A1489. 抽奖(乔明达)
- 2021年施工员-设备方向-岗位技能(施工员)考试试卷及施工员-设备方向-岗位技能(施工员)证考试
- 《让子弹飞》系列——小六子之死
- Elasticsearch之批量处理。
- 查询同学选修mysql课程的成绩_mysql-练习题 - osc_wy5qpqnh的个人空间 - OSCHINA - 中文开源技术交流社区...
- 优秀字体 —(设计)
热门文章
- 让devcpp支持c++11
- Win10-64位上编译CodeLite13.0.0源码
- 变压器励磁模型 Matlab simulink 可用于模拟电压暂降等电能质量问题
- 计算机准备打印却没动静,打印机显示正在打印但是没反应怎么办?
- php后台登录页,后台登录页面模板源码
- iOS Swift之RxSwift初探
- 过原点回归的两条性质的理解
- matlab 用m_map画地形水深图
- C++实现http客户端连接服务端及客户端json数据的解析
- 字节架构师发布“绝版”Java并发实现原理剖析JDK源码