ORACLE定时备份方案

采用ORACLE的EXP工具,实现ORACLE的备份;采用LINUX的服务crond实现定时功能。

1 编辑SH,实现备份功能

#vi oracle_backup.sh,输入以下内容

#!/bin/sh

ORACLE_BACKUP_HOME=/home/oracle/backup   #定义ORACLE备份根目录

BACKUP_DATA=$ORACLE_BACKUP_HOME/day   #定义ORACLE备份数据文件根目录

BACKUP_LOG=$BACKUP_DATA/log  #定义ORACLE备份日志文件根目录

export  ORACLE_BACKUP_HOME  BACKUP_DATA BACKUP_LOG

DATA_FILE_NAME=data_backup          #定义ORACLE备份日志文件名字前缀

LOG_FILE_NAME=log_backup             #定义ORACLE备份日志文件名字前缀

export DATA_FILE_NAME LOG_FILE_NAME

BACKUP_AMOUNT=4        #定义ORACLE备份文件保存数量

export BACKUP_AMOUNT

datafile_amount=$(find $BACKUP_DATA -type f -name $DATA_FILE_NAME'_'*.dmp|wc -l)   #查询ORACLE备份数据文件根目录下备份数据文件的数量

logfile_amount=$(find $BACKUP_LOG -type f -name $LOG_FILE_NAME'_'*.log|wc -l)      #查询ORACLE备份日志文件根目录下备份日志文件的数量

del_datafile_count=$(($datafile_amount-$BACKUP_AMOUNT+1));   #计算需要删除ORACLE备份数据文件的数量

del_logfile_count=$(($datafile_amount-$BACKUP_AMOUNT+1));         #计算需要删除ORACLE备份日志文件的数量

if(($datafile_amount>=$BACKUP_AMOUNT));then

echo $BACKUP_DATA"路径下文件太多,正在清除备份数据文件"

for((i=0;i<$del_datafile_count;i++))

do

ls -t $BACKUP_DATA/$DATA_FILE_NAME'_'*.dmp| awk 'END{if(NR>=$BACKUP_AMOUNT){system("rm -rf "$NF);system("echo  $BACKUP_DATA路径下,已删除文件"$NF)}}'#删除修改时间最早的一个数据文件

done

fi

if(($logfile_amount>=$BACKUP_AMOUNT));then

echo $BACKUP_LOG"路径下文件太多,正在清除备份日志文件"

for((i=0;i<$del_logfile_count;i++))

do

ls -t $BACKUP_LOG/$LOG_FILE_NAME'_'*.log| awk 'END{if(NR>=$BACKUP_AMOUNT){system("rm -rf "$NF);system("echo  $BACKUP_LOG路径下,已删除文件"$NF)}}'#删除修改时间最早的一个日志文件

done

fi

rq=`date +"%Y%m%d%s"`      #获取当前系统时间

su - oracle -c "/oracle/product/10.2.0/db_1/bin/exp sgedptwo/sgdb321@SGEMDP file=$BACKUP_DATA/$DATA_FILE_NAME'_'$rq.dmp log=$BACKUP_LOG/$LOG_FILE_NAME'_'$rq.log" #备份ORACLE数据库并记录日志

2 授予ORACLE用户使用备份目录权限

# mkdir /home/oracle/backup

# mkdir /home/oracle/backup/day

# mkdir /home/oracle/backup/day/log

#chown –R /home/oracle/backup

3 使用crond定制定时任务

#ps-ef|grep crond  #查看crond服务是否开启

#service crond start|stop|restart   #crond服务启动|停止|重启命令

#crontab –e,输入以下内容

0 0 * * * /oracle/oracle_backup.sh   #每天00:00执行任务

0 0 1 * * /oracle/oracle_backup.sh  #每月1号00:00执行任务

注释:

* * * * * command to be executed

- - - - -

| | | | |

| | | | ----- Day of week (0 - 6) (Sunday=0 )

| | | ------- Month (1 - 12)

| | --------- Day of month (1 - 31)

| ----------- Hour (0 - 23)

------------- Minute (0 - 59)

ORACLE定时备份方案的更多相关文章

  1. oracle定时备份与删除N天前备份文件

    oracle定时备份数据库,以及删除7天前备份的数据. 1.创建存放备份目录: mkdir /home/oracle/data_backup mkdir /home/oracle/log_backup ...

  2. 搭建企业级全网数据定时备份方案[cron + rsync]

    1.1.1. 服务端的配置[192.168.25.141] Rsync的端口是:873 man rsyncd.conf 查看帮助 Rsync是Redhat默认自带的,这里只是做了rsync服务器端的后 ...

  3. 全网数据定时备份方案[cron + rsync]

    1.1.1. Rsync(远程同步)介绍 [Rsync等价scp  cp  rm共3个命令的和] 1.什么是Rsync: Linux下面开源的,很快,功能很多,可以实现全量及增量的本地或者远程数据同步 ...

  4. oracle定时备份

    1.将如下代码复制到文本中,最后将文本后缀名称修改成XXX.bat 批处理文件: *********************************************************** ...

  5. Linux平台下Oracle定时备份数据

    临时收到一个任务,就是在生产环境上定时备份oracle的数据.空闲时间搞了一下,真是一波三折,过程有点小郁闷,结果哈哈.现在进行总结一下 (1)新建一个shell脚本test.sh #!/bin/ba ...

  6. Oracle 定时备份数据库

    [操作说明] 在前面的博客中,学习了如何Oracle如何备份数据库,实际开发过程中数据库应该每隔一段时间就要备份一次,所以我们就需要一个定时执行这个代码的功能,同时备份的文件可能进行一些处理,比如压缩 ...

  7. oracle 定时备份

    第一步.bat脚本: @echo off echo 删除10天前的备分文件和日志 forfiles /p "z:/back" /m *.dmp /d -10 /c "cm ...

  8. Oracle定时备份数据库

    1.导出命令:exp cpzxoa/cpzxoa@FENG file=D:\OracleBak\%date:~11,4%\jjmis_test.dmp log=D:\OracleBak\%date:~ ...

  9. Linux下oracle定时备份

    1. 设置数据库空表可导出(oracel11g) 用PL/SQL登录数据库(或者其他工具) 执行: select 'alter table '||table_name||' allocate exte ...

随机推荐

  1. 使用Spreadsheet导出表格时,设置样式

    $spreadsheet = new Spreadsheet();// 初始化         $spreadsheet->createSheet();// 添加一个sheet          ...

  2. 自定义构建基于.net core 的基础镜像

    先说一个问题 首先记录一个问题,今天在用 Jenkins 构建项目的时候突然出现包源的错误: /usr/share/dotnet/sdk/2.2.104/NuGet.targets(114,5): e ...

  3. redis-分布式锁-刷新信号量

    为什么需要刷新信号量呢,因为信号量有过期时间: 为什么信号量需要过期时间呢,因为需要利用超时特性,解决分布式锁存在的一些固有缺陷. 而对于类似流式API来说,一般10秒的过期时间是远远不够的.因此我们 ...

  4. SLES15SP1 AutoYast - PXE 技术

    由于最近在做几个Ceph项目,基本都是50个节点起,那我们在项目中经常使用PXE技术来实现系统自动化安装,提高效率,可能有会说PXE技术太老了没什么好了解,但我觉得的很实用,尤其在项目型工程中,通过P ...

  5. 在github上部署第二个repository

    想在github上保存一些平时写的测试程序,所以就建立了一个repository:https://github.com/commshare/testProgram 建立好之后,怎么把本地的代码上传呢. ...

  6. Java面向对象程序设计第6章1-12

    1.this和super各有几种用法? this this 用法有三种,主要应用场合: 表示当前对象引用,常用于形参或局部变量与类的成员变 量同名的情形,使用this.成员名表示当前对象的成员 表示当 ...

  7. Java为什么需要四种引用?

    首先抛出一个问题:在闲暇时间收拾自己家里的时候,对某一件物件要不要丢弃的问题上,是否有过食之无味,弃之可惜的感觉? 同样的,JVM在回收Java对象的时候,是否对对象实例也有食之无味,弃之可惜的感受? ...

  8. 基于微信小程序云开发实现的婚礼邀请函模板,可自行定制开发

    这个婚礼邀请函是之前帮别人做的,现在人家婚礼举办过了也没啥关系了,想着就修改成通用模板进行开源,方便大家尤其是小白们克隆项目之后稍微修改就能够直接使用. 当时自己开始这个项目时候也是查阅了很多教程文章 ...

  9. BeetleX服务网关之限流和缓存

    限流和缓存相关是网关中两个非常重要的功能,前者是保障服务更可靠地运行,后者则可以大大提高应用的吞吐能力.Beetlex.Bumblebee微服务网关提供了两个扩展插件来实现这两个功能,分别是Beetl ...

  10. 11g bug event 'cursor: mutex S'-引发的CPU冲高问题

    问题背景:客户反应数据库服务器CPU占用过高 1> 确认问题根源登录客户DB服务器: top 查看当前负载 (几乎100%)top - 10:47:55 up 29 days, 21:51, 3 ...