linux下oracle备份数据库并拷贝到局域网共享目录

本文介绍了一个用于Oracle数据库的备份脚本,该脚本通过expdp命令导出数据库为.dmp文件,并将其压缩成.tar.gz格式,然后复制到Windows共享文件夹中。同时,脚本还实现了定期清理旧备份的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/sh
# source /home/oracle/.bashrc
# Daily backup dump and copy it's .tar.gz to windows share folder.
# Delete previous .dmp and .tar.gz files every 7 days.
export DATE=$(date +%Y%m%d)
export DATE7AGO=$(date +%Y%m%d -d '-7 day')
export DATE30GO=$(date +%Y%m%d -d '30 day ago')
export ORACLE_HOME=/u01/oracle/product/10.2.0/db_1
export ORACLE_BASE=/u02
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
export PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin
export ORACLE_HOME_LISTNER=$ORACLE_HOME
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export NLS_LANG=american_america.ZHS16GBK

sudo mount -t cifs -o username=oracle,passwd=mypasswd,ip=172.16.1.92 //172.16.1.92/linuxdata /backup
cd /data
exp kingking/kkncsys@ORCL_LOCAL  file=ncdata$DATE.dmp
tar czf ncdata$DATE.tar.gz ncdata$DATE.dmp

cp ncdata$DATE.tar.gz /backup && rm ncdata$DATE7AGO.dmp -f && rm ncdata$DATE7AGO.tar.gz -f && rm /backup/ncdata$DATE30GO.tar.gz -f

 

将上述存在文件databackup.sh里,添加到crontab里:

[oracle@mylinux ~]$ su
Password:
[root@mylinux oracle]# crontab -e

0 0 * * * /bat/databackup.sh

[root@mylinux oracle]# crontab -l
0 0 * * * /bat/databackup.sh
[root@mylinux oracle]#

 

另注:如果不用root进行定时操作crontab任务的话,需要考虑权限问题,保证/data和/backup能被定时操作的用户比如oracle访问到。另外上述脚本需要oracle用户有sudo权限,为了执行mount,centos下需要修改一下/etc/sudoers,否则会发生错误。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值