oracle定时备份详解,oracle数据定时备份

流程:

1.root用户登录linux服务器

2.mkdir -p /backup/oracledata  #新建Oracle数据库备份目录

3.chown -R  oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在安装Oracle数据库时设置的)

4.新建Oracle数据库备份脚本 ,以下部分copy出来放到一个文件中,这里命名为ordatabak.sh(或者用命令vi /backup/oracledata/ordatabak.sh),我用的FinalShell,直接建好文件拖进去

----------------------------------------------

#!/bin/sh

export ORACLE_BASH=/data/oracle

export ORACLE_HOME=/data/oracle/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=en_US.UTF-8

export NLS_LANG="AMERICAN_AMERICA".AL32UTF8

date=`date +%Y_%m_%d`

#保留最近三天的备份记录

days=3

#连接oracle的地址

orsid=`xx.xx.xx.xxx:1521/orcl`

#以下修改为自己数据库的配置

orowner=xxxx

bakuser=xxxx

bakpass=xxxx

#备份到此文件夹,需要先建好

bakdir=/backup/oracledata

bakdata=$orowner"_"$date.dmp

baklog=$orowner"_"$date.log

ordatabak=$orowner"_"$date.tar.gz

cd $bakdir

mkdir -p $orowner

cd $orowner

echo "现在开始进行数据备份..."

exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog

echo "数据备份结束..."

echo "现在开始进行压缩备份数据..."

tar -zcvf $ordatabak $bakdata  $baklog

echo "压缩备份数据结束..."

echo "删除备份数据开始..."

find $bakdir/$orowner  -type f -name "*.log" -exec rm {} \;

find $bakdir/$orowner  -type f -name "*.dmp" -exec rm {} \;

find $bakdir/$orowner  -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;

echo "删除备份数据结束..."

echo "备份执行完毕..."

----------------------------------------------

5.sudo chmod 777 /backup/oracledata/ordatabak.sh,文件权限,这里我给了所有权限,可以按需给

chmod +x /backup/oracledata/ordatabak.sh  #给这个脚本赋予执行的权限,定时任务后面才可执行

6.vi /etc/crontab  #编辑linux系统定时任务计划,添加以下代码到最后一行

30 3 * * * oracle  /backup/oracledata/ordatabak.sh  #也就是每天凌晨3点30分,以oracle用户执行ordatabak.sh备份文件

7.:wq! #保存退出

8.crontab /etc/crontab #加载任务,使之生效 。每天凌晨3:30会定时执行脚本备份数据,主要是考虑系统有很多定时任务在0点执行,待任务执行完再备份

9.执行systemctl status crond,查看任务的状态,Active: active(running),则系统任务状态正常,查看任务:crontab -l,是否有设置的任务

PS:几个相关命令

systemctl enable crond (设为开机启动)

systemctl start crond(启动crond服务)

systemctl status crond (查看状态)

$ crontab -u 用户名 -l (列出用户的定时任务列表)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、提供了oracle数据备份脚本,导出dmp文件 2、定时任务由操作系统提供的支持,在操作系统中设置定时任务,由操作系统定期执行脚本 3、补充。压缩包脚本有点问题,不能删除旧的备份文件。需要自动删除历史备份文件请用最新脚本: @echo off @echo ================================================ @echo windows环境下Oracle数据库的自动备份脚本 @echo 说明:启动备份时,需要配置以下变量 @echo 1、BACKUP_DIR 指定要备份到哪个目录 @echo 2、ORACLE_USERNAME 指定备份所用的Oracle用户名 @echo 3、ORACLE_PASSWORD 指定备份所用的Oracle密码 @echo 4、ORACLE_DB 指定备份所用的Oracle连接名 @echo 5、BACK_OPTION 备份选项,可以为空,可以为full=y,可以为owner=a用户,b用户 等等.... @echo 6、RAR_CMD 指定RAR命令行压缩工具所在目录 @echo ================================================ rem 以下变量需要根据实际情况配置 set BACKUP_DIR=D:\tools\oracle_bak\backup230 set ORACLE_USERNAME=PLATADMIN set ORACLE_PASSWORD=123456 set ORACLE_DB=ORCL set BACK_OPTION=owner=PLATADMIN set RAR_CMD="D:/Program Files/WinRAR/Rar.exe" rem for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%a rem set BACK_NAME=%ORACLE_DB%_%TODAY%(%time:~0,2%时%time:~3,2%分)_ set BACK_NAME=%Date:~0,4%%Date:~5,2%%Date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2% set BACK_FULL_NAME=%BACKUP_DIR%/%BACK_NAME% rem 开始备份 exp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB% %BACK_OPTION% file="%BACK_FULL_NAME%.dmp" log="%BACK_FULL_NAME%exp.log" rem 压缩并删除原有文件 %RAR_CMD% a -df "%BACK_FULL_NAME%back.rar" "%BACK_FULL_NAME%.dmp" "%BACK_FULL_NAME%exp.log" rem 删除15天前的备份文件 forfiles /p %BACKUP_DIR% /s /m *.rar /d -15 /c "cmd /c del @file"

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值