#!/bin/sh
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#获取系统当前日期时间
date=$(date "+%Y-%m-%d")
#Oracle数据库服务器IP、端口、SID
orsid=127.0.0.1:1521/orcl
#删除15天前的备份数据
days=15
#备份此用户下面的数据
orowner=TEST
#用此用户来执行备份,必须要有备份操作的权限
bakuser=TEST
#执行备份的用户密码
bakpass=TEST
#备份文件路径,需要提前创建好
bakdir=/mountssd/oracle/db_backup
#备份数据库名称
bakdata=$orowner"_"$date.dmp
#备份执行时候生成的日志文件名称
baklog=$orowner"_"$date.log
#最后保存的Oracle数据库备份文件
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
#压缩备份文件和日志文件
tar -zcvf $ordatabak $bakdata $baklog
#删除备份文件
find $bakdir/$orowner -type f -name "*.log" -exec rm {} \;
#删除日志文件
find $bakdir/$orowner -type f -name "*.dmp" -exec rm {} \;
#删除days天前的备份(注意:{} \中间有空格)
find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;
脚本自动备份Oracle数据库
最新推荐文章于 2020-03-25 13:40:05 发布
本文介绍了一个用于Oracle数据库的备份脚本,详细说明了如何使用shell脚本自动化执行Oracle数据库备份,包括设置环境变量、定义备份参数、执行备份、压缩备份文件、清理旧备份等步骤。
1229

被折叠的 条评论
为什么被折叠?



