linux oracle自动备份脚本

本文介绍了一个用于备份Oracle数据库的脚本,并详细解释了如何将此脚本添加到任务调度中,实现定时自动备份。脚本通过设置环境变量、创建备份目录、执行备份操作以及删除旧备份来确保数据库数据的安全性和高效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、备份脚本:
  1. #!/bin/sh  
  2.   
  3. export ORACLE_BASE=/home/oracle  
  4. export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1  
  5. export ORACLE_SID=orcl  
  6. export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin  
  7.   
  8. export DATA_DIR=/home/bakup/data  
  9. export LOGS_DIR=/home/bakup/logs  
  10. export DELTIME=`date -d "7 days ago" +%Y%m%d`  
  11. export BAKUPTIME=`date +%Y%m%d%H%M%S`  
  12.   
  13. mkdir -p $DATA_DIR  
  14. mkdir -p $LOGS_DIR  
  15.   
  16. echo "Starting bakup..."  
  17. echo "Bakup file path $DATA_DIR/$BAKUPTIME.dmp"  
  18. exp shop/lyisABC0987@orcl file=$DATA_DIR/$BAKUPTIME.dmp log=$LOGS_DIR/$BAKUPTIME.log  
  19.   
  20. echo "Delete the file bakup before 7 days..."  
  21. rm -rf $DATA_DIR/$DELTIME*.dmp  
  22. rm -rf $LOGS_DIR/$DELTIME*.log  
  23. echo "Delete the file bakup successfully. "  
  24.   
  25. echo "Bakup completed."  

2、添加到任务调度crontab -u oracle -e
* 3 * * * /home/bakup/bakup.sh
即每天凌晨3点进行备份
如需每天备份多次,可设置不同时间段备份:
例如:* 3,13,18 * * * /home/bakup/bakup.sh,即每天3点、13点、18点进行备份。

说明:文件备份目录,用户oracle必须有更改权限,否则无法备份。




以上来自网络,下面是实践过:

一、expbk.sh

#!/bin/sh

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

export DATA_DIR=/home/backup/data
export LOGS_DIR=/home/backup/logs
export DELTIME=`date -d "7 days ago" +%Y%m%d`
export BAKUPTIME=`date +%Y%m%d%H%M%S`

mkdir -p $DATA_DIR
mkdir -p $LOGS_DIR

echo "Starting bakup..."
echo "Bakup file path $DATA_DIR/$BAKUPTIME.dmp"
exp PRODUCT/***@orcl file=$DATA_DIR/product$BAKUPTIME.dmp log=$LOGS_DIR/product$BAKUPTIME.log
exp USER/***@orcl file=$DATA_DIR/user$BAKUPTIME.dmp log=$LOGS_DIR/user$BAKUPTIME.log

echo "Delete the file bakup before 7 days..."
rm -rf $DATA_DIR/$DELTIME*.dmp
rm -rf $LOGS_DIR/$DELTIME*.log
echo "Delete the file bakup successfully. "

echo "Bakup completed."


二、expdbbk.sh

#!/bin/sh
export BAKUPTIME=`date +%Y%m%d%H%M%S`
echo "Starting bakup..."
expdp system/*** schemas=PRODUCT dumpfile=product$BAKUPTIME.dmp DIRECTORY=data_pump_dir log=product$BAKUPTIME.log;
expdp system/*** schemas=USER dumpfile=user$BAKUPTIME.dmp DIRECTORY=data_pump_dir log=user$BAKUPTIME.log;


echo "Bakup completed."

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值