欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LINUX下ORACLE定时备份数据,使用的expdp。

程序员文章站 2024-03-13 17:01:27
...

1、root账户登陆,切换到ORACLE用户。

su - oracle
2、创建一个名为te.sh的脚本,并授权可执行。
mkdir /home/oracle/te/te.sh
chomod 775 /home/oracle/te/te.sh 
3、vi 编辑te.sh,添加如下脚本。
if [ -f ~/.bash_profile ];  
then  
  . ~/.bash_profile  
fi  
export ORACLE_HOME=/data1/oracle/app/oracle/product/11.2.0/db_1
export ORACLE_SID=实例名
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export DATA_DIR=已经授权导出用户expdp的路径
export oldFileName=`date -d "1 hours ago" +%Y%m%d%H`
export nowFileName=`date +%Y%m%d%H`
echo "start......"
expdp 用户名/密码 tables=数据表  dumpfile=$nowFileName.dmp DIRECTORY=DMPDIR log=$nowFileName.log
echo "Delete the file bakup before hours..."
rm -rf $DATA_DIR/$oldFileName.dmp
rm -rf $DATA_DIR/$oldFileName.log
echo "finished....."
4、脚本解释。

 (1)为单个用户每次登陆设置一次环境变量,一定要有这一段,否者定时无效。

if [ -f ~/.bash_profile ];  
then  
  . ~/.bash_profile  
fi  
 (2)导入环境变量和者定义变量。
export ......

 (3)、date 用来处理shell脚本的时间,具体可以查看对应的文档。
`date -d "1 hours ago" +%Y%m%d%H`  --一个小时之前,格式为:年月日时
`date +%Y%m%d%H` --当前时间,格式为:年月日时
 (4)、删除一小时前的文件。
rm -rf $DATA_DIR/$oldFileName.dmp
rm -rf $DATA_DIR/$oldFileName.log

5、oracle的定时任务。现在是在oracle用户下使用,默认对oracle用户操作,如果用的root的需要指定对哪个用户操作,有一定风险。

crontab -e

  crontab -r : 删除当前的定时 
  crontab -l : 列出当前的定时
  crontab -e : 编辑文件



6、crontab -e 定时参数。
5 * * * * /home/oracle/te/te.sh --每个小时5分钟执行
 格式:[分][时][月][年][周][脚本的路径]




相关标签: linux oracle