linux环境下,oracle使用exp、expdp(数据泵)自动备份数据

     好记性不如烂笔头,小时候觉得这句话是扯淡,明明自己能记住干嘛要记,记在本子上,还得去翻本子;随着日子一天天过去,才发现记录很有必要。今天分享一下使用shell脚本备份数据库。

     备份数据库,可以使用 exp、expdp备份。

     exp示例:

     exp userid=scott/tiger direct=y recordlength=65535 buffer=104857600 file=mt_data/data/t_mt_20180104.dmp tables="(t_mt_20180104)"

     expdp示例:

     expdp 'scott/tiger directory=MT_BACKUP dumpfile=t_mt_20181022.dmp logfile=t_mt_20181022.log tables=scott.t_mt_20181022

     exp备份shell脚本:

#!/bin/bash
#:本脚本自动备份58天以前的mt表数据
#加载oracle的相关参数
#如果oracle参数不明确,请使用命令查看
# su - oracle
# echo $ORACLE_HOME
export ORACLE_BASE=/user/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=qxt
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
#oracle字符集
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#获取58天以前的时间,格式:20180313
#DATE=$(date +%Y%m%d)
DATE=$(date -d "58 days ago" +%Y%m%d)
#设置备份目录,
export DIR=/user/mt_data
echo $DIR
echo $DATE
#开始备份,此处采用exp方式导出,根据实际情况可选用expdb数据方式导出
echo 'Oracle backup...'
exp userid=scott/tiger direct=y recordlength=65535 buffer=104857600 file=$DIR'/t_mt_'$DATE'.dmp' tables='(t_mt_'$DATE')' log=$DIR'/t_mt_'$DATE'.log'
#exp userid=scott/tiger file=$DIR/$DATE'/t_mt_20180309.dmp' tables='(t_mt_20180309)'
#压缩文件
zip -rj $DIR'/t_mt_'$DATE'.zip' $DIR'/t_mt_'$DATE'.dmp'
#删除dmp文件
#rm -f '/user/mt_data/t_mt_'$DATE'.dmp'
echo 'Oracle backup t_mt_'$DATE'.dmp successfully.'

expdp备份shell脚本:

#!/bin/bash
#:本脚本自动备份58天以前的mt表数据
#加载oracle的相关参数
#如果oracle参数不明确,请使用命令查看
# su - oracle
# echo $ORACLE_HOME
export ORACLE_BASE=/user/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=qxt
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
#oracle字符集
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#获取58天以前的时间,格式:20180313
#DATE=$(date +%Y%m%d)
DATE=$(date -d "72 days ago" +%Y%m%d)
#设置备份目录,
export DIR=/user/mt_data
echo $DIR
echo $DATE
#开始备份,此处采用exp方式导出,根据实际情况可选用expdb数据方式导出
echo 'Oracle backup...'
expdp 'scott/tiger' directory=MY_DIR dumpfile='t_mt_'$DATE'_dp.dmp' logfile='t_mt_'$DATE'_dp.log' tables=scott.t_mt_$DATE
#压缩文件
zip -rj $DIR'/t_mt_'$DATE'_dp.zip' $DIR'/t_mt_'$DATE'_dp.dmp'
#删除dmp文件
#rm -f '/user/mt_data/t_mt_'$DATE'_dp.dmp'
echo 'Oracle backup t_mt_'$DATE'_dp.dmp successfully.'

  impdp导入shell脚本

#!/bin/bash
#:本脚本自动备份72天以前的mt表数据
#加载oracle的相关参数
#如果oracle参数不明确,请使用命令查看
# su - oracle 
# echo $ORACLE_HOME
export ORACLE_BASE=/user/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=qxt
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
#oracle字符集
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#获取73天以前的时间,格式:20180313
#DATE=$(date +%Y%m%d)
DATE=$(date -d "72 days ago" +%Y%m%d)
#设置备份目录,
#export DIR=/home/oracle/oradata_1t
#echo $DIR
echo $DATE
cd /home/oracle/oradata_1t
unzip 't_mt_'$DATE'_dp.zip'
chmod 755 't_mt_'$DATE'_dp.dmp'
#开始入库,此处采用impdp方式导出
echo 'Oracle insert...'
impdp 'scott/tiger' directory=EXP_DUMP dumpfile='t_mt_'$DATE'_dp.dmp' tables=scott.t_mt_$DATE remap_schema=scott:scott logfile=/log/'impdp_t_mt_'$DATE'_dp.log'
echo 'Oracle insert t_mt_'$DATE'_dp.dmp successfully.'

  备注:  必须要chmod 755 't_mt_'$DATE'_dp.dmp'授权文件才能导入成功

  否则会报以下错误

Import: Release 11.2.0.1.0 - Production on Fri Nov 9 09:47:40 2018

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

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

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

ORA-39001: invalid argument value

ORA-39000: bad dump file specification

ORA-31640: unable to open dump file "/home/oracle/oradata_1t/t_mt_20180829_dp.dmp" for read

ORA-27041: unable to open file

Linux-x86_64 Error: 13: Permission denied

Additional information: 9

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨轩and贝贝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值