说明:

Oracle数据库服务器
操作系统:CentOS
IP:192.168.0.198
端口:1521
SID:orcl
Oracle数据库版本:Oracle11gR2

具体操作:

1、root用户登录服务器

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

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接

2、新建Oracle数据库备份脚本

vi /backup/oracledata/ordatabak.sh #新建文件,输入以下代码

#!/bin/sh
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_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=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    
#以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能执行。

# oracle用户的系统环境变量路径:/home/oracle/.bash_profile

date=`date +%Y_%m_%d`   #获取系统当前日期时间
days=7  #设置删除7天之前的备份文件
orsid=`192.168.0.198:1521/orcl`  #Oracle数据库服务器IP、端口、SID
orowner=OSYUNWEI  #备份此用户下面的数据
bakuser=OSYUNWEI  #用此用户来执行备份,必须要有备份操作的权限
bakpass=OSYUNWEI  #执行备注的用户密码
bakdir=/backup/oracledata  #备份文件路径,需要提前创建好
bakdata=$orowner"_"$date.dmp #备份数据库名称
baklog=$orowner"_"$date.log #备份执行时候生成的日志文件名称
ordatabak=$orowner"_"$date.tar.gz #最后保存的Oracle数据库备份文件
cd $bakdir #进入备份目录
mkdir -p $orowner #按需要备份的Oracle用户创建目录
cd $orowner #进入目录

exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog #执行备份
tar -zcvf $ordatabak $bakdata  $baklog  #压缩备份文件和日志文件
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 {} \;  #删除7天前的备份(注意:{} \中间有空格)
:wq #保存退出

chmod +x /backup/oracledata/ordatabak.sh   #添加脚本执行权限

3、vi /etc/crontab  #编辑系统任务计划,添加以下代码到最后一行

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

:wq! #保存退出

service crond restart #重启crond

每天凌晨2点30分,会自动备份数据库到/backup/oracledata/OSYUNWEI目录中,保存为.tar.gz压缩文件,并且删除7天前的备份,即只保留最近7天的数据。

备注:以上所有的代码都是在英文半角状态下输入。

至此,Linux下自动备份Oracle数据库并删除指定天数前的备份教程完成。

Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份的更多相关文章

  1. Linux下自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...

  2. Mongodb自动备份数据库并删除指定天数前的备份

    1.创建Mongodb数据库备份目录 mkdir -p /home/backup/mongod_bak/mongod_bak_now mkdir -p /home/backup/mongod_bak/ ...

  3. Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本

    说明:  1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是 ...

  4. Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录

    此为在网络上找来的,觉得很好! 实现目的: 对Mongodb数据库日志按天保存,并且只保留最近7天的日志记录. 具体操作: 使用Mongodb数据库自带的命令来切割日志 ps -def | grep ...

  5. SqlServer批量备份多个数据库且删除3天前的备份

    /******************************************* * 批量备份数据库且删除3天前的备份 ************************************ ...

  6. CentOS Linux自动备份MySQL数据库到远程FTP服务器并删除指定日期前的备份Shell脚本

    说明: 我这里要把MySQL数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2011_11_03.tar ...

  7. linux下用OCI库访问oracle数据库返回错误Cannot create OCI environment!;

    linux下链接oracle数据库,直接用OCI库函数OCI_Initialize初始化返回Oracle ErrorString:Cannot create OCI environment! 原因是缺 ...

  8. Linux实现定时备份MySQL数据库并删除30天前的备份文件

    1. MySQL5.6以上版本 2. 修改 /etc/my.cnf 文件 # vim /etc/my.cnf [client] host=localhost user=你的数据库用户 password ...

  9. 利用crontab系统每天定时备份MySQL数据库及删除指定crontab定时任务

    利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的. 1.创建保存备份文件的路径/mysqldata mkdir /mysqldata 2.创建/usr/sbin/ba ...

随机推荐

  1. oracle in VS or效率

    select * from test where status in ('01', '02', '03', '111'); select * from test where status = '01' ...

  2. Solr部分更新MultiValued的Date日期字段时报错及解决方案

    问题描述如标题. 异常信息如下: Result Caused by: org.apache.solr.common.SolrException: Invalid Date String:'Mon Se ...

  3. sql server 里面的 dynamic Data Masking

    有时候啊,当我们存放在数据库里面的数据,需要明文存放,但是对于前台查询出来的,又不太希望明文放出去的时候(比方说客户的手机啊,邮箱啊)之类有点敏感的信息,之前通常是保存个明文,然后在前台展现的时候再特 ...

  4. 强制浏览器使用兼容模式,Web.config,httpProtocol

    对于一些政府类的网站,很多支持IE6~8,而不支持使用更高版本浏览器浏览.虽然有些浏览器会自动使用兼容模式,或有些人会手动调整浏览器的兼容模式,但不是每一个人.每一款浏览器都可以做到用兼容模式.所以, ...

  5. 数据处理之PostgreSQL过程语言学习

    前段时间,公司更换新的PostgreSQL数据集市的系统过程中,自己下载了postgresqlAPI的pdf文件研究了一下PostgreSQL数据集市.发现使用PostgreSQL过程语言可以大大加快 ...

  6. PHP代码重用与函数编写

    代码重用与函数编写 1.使用require()和include()函数 这两个函数的作用是将一个文件爱你载入到PHP脚本中,这样就可以直接调用这个文件中的方法.require()和include()几 ...

  7. Spring多种注入方式及注解实现DI

    一.Bean作用域 spring容器创建的时候,会将所有配置的bean对象创建出来,默认bean都是单例的.代码通过getBean()方法从容器获取指定的bean实例,容器首先会调用Bean类的无参构 ...

  8. 自定义框架(MyMvc)

    //初次接触自定义框架,简单的登录功能的实现流程:: 当我们实现登录功能的时候,首先会创建一个login.jsp 会写这些登录表单 <form action="loginAction. ...

  9. AC日记——I Hate It 洛谷 P1531

    题目背景 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 题目描述 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的 ...

  10. 初识CDQ分治

    [BZOJ 1176:单点修改,查询子矩阵和]: 1176: [Balkan2007]Mokia Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 200 ...