Linux自动备份Oracle并删除指定天数前的备份
admin
2023-05-09 12:01:38
0
本篇文章主要关于利用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并删除指定天数前的备份

相关内容

热门资讯

郑州领跑AI短剧新赛道!《河南... 5月13日下午,“中原智视听 高新创未来——阿里云AI创享日AI漫剧郑州专场”活动在位于郑州高新区的...
参加完中美会谈,马斯克、黄仁勋... 5月14日,在参加完中美元首会谈后,特斯拉首席执行官马斯克、苹果首席执行官库克、英伟达首席执行官黄仁...
河南防汛新观察 5月12日,抢险人员在白龟山水库大坝上巡堤查险。 王毛生 摄5月10日,2026年度防汛抢险联合演练...
胡锡进:武大做出了彻底开放的示... 武汉大学宣布正式取消社会公众进校预约制度,校外人员只需凭本人身份证即可进入校园。这是很有意义的一件事...
全国医保基金飞行检查正式启动,... 【大河财立方消息】5月14日,国家医保基金飞行检查湖南现场启动会暨警示教育会在长沙召开,标志着202...
坚定不移沿着习近平总书记指引的... 在中航光电的展馆里,一辆新能源汽车的剖面模型格外醒目。 河南日报全媒体记者 冉衡 摄【编者按】202...
河南一地入选!国家级试点城市名... 【大河财立方消息】5月14日消息,工业和信息化部、财政部公示第三批制造业新型技术改造城市试点拟入选名...
周日有大到暴雨!郑州将有连续性... 受切变线和低空急流共同影响,16日至18日我市将有一次明显降水过程。15日夜里有阵雨,16日下午到夜...
降的是费率 增的是底气 河南失... 中国铁路郑州局集团有限公司开展业务技能实操训练。受访者供图一笔失业保险稳岗返还资金,到了企业手里,可...
宇树科技发布全球首款载人变形机... 宇树科技CEO王兴兴与载人变形机甲GD01击拳。宇树科技供图5月12日,宇树科技发布全球首款量产版载...