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

#!/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,否则会发生错误。

 

你可能感兴趣的:(oracle,windows,linux,bash,exp)