千家信息网

Linux自动备份Oracle并删除指定天数前的备份

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章主要关于利用shell脚本实现对Oracle数据库定时进行备份操作,并删除指定天数前的备份文件,已经熟练掌握shell的大牛们请果断路过。本文如有雷同,纯属有意。先做试验环境的介绍,再讲解具体
千家信息网最后更新 2026年11月01日Linux自动备份Oracle并删除指定天数前的备份本篇文章主要关于利用shell脚本实现对Oracle数据库定时进行备份操作,并删除指定天数前的备份文件,已经熟练掌握shell的大牛们请果断路过。本文如有雷同,纯属有意。

先做试验环境的介绍,再讲解具体步骤。本博客的第一篇文章,以后会尽量做得更好,写得不好得地方请多多包涵,欢迎提出各种建议,例如文章内容选择、操作步骤的详细程度等等。

环境:

操作系统:CentOS

IP地址:192.168.1.2

端口:1521

SID:orcl

Oracle版本:Oracle11g

具体步骤:

(1)root登录Oracle数据库服务器

#新建备份目录

mkdir /home/bak/orcl_data

#设置目录权限,该用户和组是安装Oracle时设置的

chown -R oracle:oracle /home/bak/orcl_data

(2)创建备份脚本

#新建文件并输入代码,保存。脚本保存位置根据个人习惯。

vim /usr/local/scripts/oracle_bak.sh

#!/bin/sh

#添加Oracle运行用户oracle的系统环境变量,以便Crontab计划任务的执行

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

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

#获取日期和时间

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

#设置删除15天前的备份

days=15

#Oracle服务器IP、端口、SID

orsid=`192.168.1.2:1521/orcl`

#备份此用户的数据

orowner=osgnu

#执行备份的用户,必须有备份权限

bak_user=osgnu

#执行备份的用户的密码

bak_pass=osgnu

#备份的路径,提前创建好

bak_dir=/home/bak/orcl_data

#备份数据库名称

bak_data=$orowner"_"$date.dmp

#备份生成的日志文件的名称

bak_log=$orowner"_"$date.log

#保存的Oracle数据库备份文件

ordatatar=$orowner"_"$date.tar.gz
#进入备份目录

cd $bak_dir

#按需要备份的Oracle用户来创建相应目录

mkdir -p $orowner

#进入目录

cd $orowner

#执行备份

exp $bak_user/$bak_pass@$orsid grants=y owner=$orowner file=$bak_dir/$orowner/$bak_data log=$bak_dir/$orowner/$bak_log

#压缩

tar -zcvf $ordatatar $bak_data $bak_log

#删除备份文件

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

#删除日志文件

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

#删除15天前的备份

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

#保存退出

:wq!

#添加执行权限

chmod +x /usr/local/scripts/oracle_bak.sh

(3)编辑计划任务

crontab -e或vim /etc/crontab然后添加以下内容

#每天凌晨1点30分以oracle用户的身份执行备份脚本

30 1 * * * oracle /usr/local/scripts/oracle_bak.sh

#保存退出

:wq!

#重启crond

service crond restart

自动备份oracle并删除指定天数前的备份已完成。

www.osgnu.com 温馨提醒:BruceZ原创内容 版权所有,转载请注明出处以及原文链接。

本文链接:www.osgnu.com/shell/1.html

转载请注明来源:OSGNU >> Linux自动备份Oracle并删除指定天数前的备份

备份 用户 文件 数据 目录 数据库 环境 脚本 天数 内容 权限 步骤 系统 任务 变量 名称 文章 日志 服务器 端口 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 花魁咖啡 易互联网科技有限公司 天津摩尔互联网科技 友谊互联网络科技 互联网科技中介 互联网金融科技公司干啥的 河南猎农互联网科技有限公司 崇明区互联网教育科技售后服务 新兴科技互联网创新大赛颁奖典礼 辽宁互联网新科技 消费医药和互联网科技 呼和浩特新华互联网科技学院 本届互联网大会上的黑科技 郑州欣桑互联网科技有限公司 西安有哪些互联网高科技企业 中国互联网公司的科技投入 科技互联网经济论坛 美国五大互联网科技公司市值多少 互联网领先科技成果宣传视频 高科技和互联网的现代国家 高科技互联网 互联网和科技创新 互联网科技公司需要的职位 中国互联网有什么科技含量 互联网科技公司有风险吗 互联网科技创新的路径 智帮互联网科技公司最近动向 互联网领先科技宣传片 领航科技大厦互联网公司 每日互联网科技新闻
0