Linux下oracle数据库expdp备份脚本含异地备份


前言

日常运维工作中有很多要做数据库备份的工作,除rman备份外最常用的就数数据泵的导出了,下面就把我自己脚本做一个分析


提示:以下是本篇文章正文内容,下面案例可供参考

一、expdp备份脚本详解

vi /home/oracle/dmp_bak.sh

#!/bin/sh
# Oracle 设置环境变量
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1;  export ORACLE_HOME
ORACLE_SID=cxldb1; export ORACLE_SID 
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$ORACLE_BASE/scripts:$PATH
#在库中创建逻辑目录
#SQL>CREATE DIRECTORY dump_backup_dir as '/data2/oracle/backup';
#SQL>grant read,write on directory dump_backup_dir to public; 
#设置相应文件位置变量与名称
##dmp文件的导出目录
DATA_DIR=/data2/oracle/backup
##dmp文件的导出名称
DMP_FILE=bak_expdp_$(date +%Y%m%d).dmp
##log文件的导出名称
LOG_FILE=bak_expdp_$(date +%Y%m%d).log
##压缩文件名称(如数据库已有compression参数可不进行压缩,据实际情况)
FILE_NAME=bak_expdp_$(date +%Y%m%d)
#expdp导出数据库dmp文件(以下参数供参考)
expdp system/*****@192.168.10.111:1521/orcl schemas=username directory=dump_backup_dir DUMPFILE=$DMP_FILE logfile=$LOG_FILE compression=all parallel=3;
#切到dmp备份文件目录,将dmp与log文件进行打包,并生成$FILE_NAME.tar.gz文件
cd $DATA_DIR
tar czvf $FILE_NAME.tar.gz $DMP_FILE $LOG_FILE

#备份文件实现异地传输:注意修改密码,本测试机密码为p@ssw0rd
expect -c "
  spawn scp /data2/oracle/backup/$FILE_NAME.tar.gz root@192.168.10.222:/data2/oracle/backup
  expect {
    \"*assword\" {set timeout 300; send \"p@ssw0rd\r\";}
    \"yes/no\" {send \"yes\r\"; exp_continue;}
  }
  expect eof"
#删除超过7天的备份文件
find $DATA_DIR -mtime +7 -name "bak_expdp_*"  -exec rm -f {} \;
# That's all

二、设置计划任务

[oracle@tdcxl ~]# chmod u+x dmp_bak.sh
[oracle@tdcxl ~]# crontab -l
00  12  *  *  *  /home/oracle/dmp_bak.sh > /home/oracle/dmp_bak.log 2>&1
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

DBA狗剩儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值