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. Roman and Browser-罗曼的浏览器 CodeForce1100A 暴力

    题目链接:Roman and Browser 题目原文 This morning, Roman woke up and opened the browser with 

  2. embedding技术

    目录 word2vec 负采样 目标函数 反向梯度 层次softmax NPLM的目标函数和反向梯度 目标函数 反向梯度 GNN(图神经网络) deepwalk node2vec 附录 word2ve ...

  3. 用 C# 来守护 Python 进程

    背景 目前我主要负责的一个项目是一个 C/S 架构的客户端开发,前端主要是通过 WPF 相关技术来实现,后端是通过 Python 来实现,前后端的数据通信则是通过 MQ 的方式来进行处理.由于 Pyt ...

  4. Spring 梳理 - @Component

    使用@Component注解,表示该类定义为Spring管理Bean,使用默认value(可选)属性表示Bean标识符.如果不指定标识符,默认为首字母小写类名.例如类UserController的标识 ...

  5. Spring 梳理 - JavaConfig实战(spring MVC)-原创

    目录结构 AppInitializer.java package com.jt; import org.springframework.web.servlet.support.AbstractAnno ...

  6. springboot结合mybatis使用pageHelper插件进行分页查询

    1.pom相关依赖引入 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...

  7. Linux 删除命令rm

    Linux rm命令用于删除一个文件或者目录. 语法:rm [options] name... 参数: 1.-i 删除前逐一询问确认. 2.-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认. 3 ...

  8. [Git] Git 使用记录

    1. 配置git客户端 1.1 安装git bash https://git-scm.com/downloads 1.2 设置ssh Key 查看是否有ssh key ls -al ~/.ssh 没有 ...

  9. Java 学习笔记之 Error和Exception的联系

    Error和Exception的联系: Error和Exception的联系 继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Excepti ...

  10. 基于Linux的kfifo移植到STM32(支持os的互斥访问)

    基于Linux的kfifo移植到STM32(支持os的互斥访问) 关于kfifo kfifo是内核里面的一个First In First Out数据结构,它采用环形循环队列的数据结构来实现:它提供一个 ...