#!/bin/sh
#数据库配置
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/oracle
export ORACLE_SID=oradb
export ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1
export PATH=$PATH:$ORACLE_HOME/bin
#Oracle数据库服务器IP、端口、SID
export orsid=`127.0.0.1:1521/oradb`
#获取系统当前日期时间
export date=`date +%Y%m%d-%H%M`
#设置删除30天之前的备份文件
export days=30
#备份文件路径,需要提前创建好
export bakdir=/home/xxx_data/backup/oracledata
#备份此用户下面的数据
export orowner=user_xxx
#用此用户来执行备份,必须要有备份操作的权限
export bakuser=user_xxx
#执行备注的用户密码
export bakpass=user_xxx
#备份数据库名称
export bakdata=$orowner"_"$date.dmp
#备份执行时候生成的日志文件名称
export baklog=$orowner"_"$date.log
#最后保存的Oracle数据库备份文件
export ordatabak=$orowner"_"$date.tar.gz
#进入备份目录
cd $bakdir
#按需要备份的Oracle用户创建目录
mkdir -p $orowner
#进入目录
cd $orowner
#执行备份
exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog buffer=4096000 ignore=y
#压缩备份文件和日志文件
tar -zcvf $ordatabak $bakdata $baklog
#删除备份文件
find $bakdir/$orowner -type f -name "*.log" -exec rm {} \;
#删除日志文件
find $bakdir/$orowner -type f -name "*.dmp" -exec rm {} \;
#删除30天前的备份
find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;
-------------------------------------------------------------------------------------------------------------
以上是完整脚本,这是自己搞的一个简单全备。
网络存档,以备下次使用。