ORACLE定时备份方案

摘要:
ORACLE定时备份方案利用ORACLE的EXP工具实现ORACLE备份;LINUX服务crond用于实现定时功能。1编辑SH以实现备份功能#violet_ backup。Sh,输入以下#/bin/shORACLE_BACKUP_home=/home/OORACLE/BACKUP#定义ORACLE BACKUP根目录BACKUP_DATA=$ORACLE_BBACKUP_home/day#
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定时备份方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java判断jsonObject和jsonArray是否为空Oracle 连接、会话数的查看,修改下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Nginx日志运维笔记

在分析服务器运行情况和业务数据时,nginx日志是非常可靠的数据来源,而掌握常用的nginx日志分析命令的应用技巧则有着事半功倍的作用,可以快速进行定位和统计。 1)Nginx日志的标准格式(可参考:http://www.cnblogs.com/kevingrace/p/5893499.html) log_format main '$remote_ad...

[原创]C#通过引用Office Excel (2007) 组件实现对Excel文件的操作

对用应用软件来说,将报表转出为Excel文件,进行二次加工,或者根据Excel模版填充数据,是非常常用的。实现对Excel文件的操作,如将报表转出为Excel或根据已有的Excel模版进行填充,有很多方法,比如使用第三方组件,根据Open XML的标准,将WEB页面中的控件直接输出等等,还有一种方式就是引用Office Excel组件,直接由.NET程序调...

STM32学习笔记(1)——搭建库函数工程

好吧,现在开始学习STM32了,顺便把这个过程记录下来,Keil安装之类就不说了,先用Keil搭建一个工程。 我是参照这篇文章开始的:《零死角玩转stm32-初级篇(终结篇)》 开始的时候我完全按照文章介绍的方式一步一步搭建的,下面我再自己搭建一下: 1、先获取STM32的库函数开发包。   貌似现在最新版本的firmware还是3.5版本的。   在这里...

php CI框架目录结构及运行机制

CI目录结构   CI主要组成部分为,application(应用文件夹)、system(系统文件夹)和index.php入口文件。     应用文件夹中主要是存放控制器、模型和视图等,系统文件夹中主要是存放组成CI的核心文件的,index.php入口文件是一个单一入口文件,所谓单一文 件是指在一个网站(应用程序)中,所有的请求都是指向的这么一个文件,由...

查看和设置Oracle数据库字符集

数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。    客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,    表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表    会话字符集...

万能日志数据收集器 Fluentd

前面的 ELK 中我们是用 Filebeat 收集 Docker 容器的日志,利用的是 Docker 默认的 logging driver json-file,本节我们将使用 fluentd 来收集容器的日志。 Fluentd 是一个开源的数据收集器,它目前有超过 500 种的 plugin,可以连接各种数据源和数据输出组件。在接下来的实践中,Fluent...