linux下设置自动备份Oracle数据库&异地存储 .

来源:互联网 发布:cookiestorage js 编辑:程序博客网 时间:2024/05/17 04:24

1、设置时间环境变量

oracle用户下

   vi .bash_profile        //date赋值

            export DATE=$(date +%Y%m%d)  

root用户下

    vi .bash_profile         

        export DATE=$(date +%Y%m%d)

设置完成后确认是否更改成功。

2、编辑执行文件

 新建3个执行文件

 Root用户下 

cd /opt

mkdir bak

mkdir sh

 

  ********************************

 vi /opt/sh /backup.sh     //执行数据库备份的执行文件

   加入oracle环境变量(export)

  exp system/passwd  rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y file=/opt/bak/$HOSTNAME$DATE.dmp log=/opt/bak/log$HOSTNAME$DATE.log consistent=yes

 

 

  ************************************

 

  vi /opt/sh /ftp.sh                //执行数据库备份文件上传到备份数据库的执行文件

  加入root环境变量(export)

ftp -v -n 21.175.194.147 << EOF       //定义EOF管道并输入到ftp://21.175.194.147

user oracle password                           //user后面是登录FTP的用户名和密码

binary                                               //二进制模式

bash                                                  //启用SHell

lcd /opt/bak                                       //进入本地生成文件所在目录

put  $HOSTNAME$DATE.dmp         //上传dmp

put   log$HOSTNAME$DATE.log     //上传log

bye                       //退出FTP

EOF                            //退出EOF命名管道

 

  vi /opt/sh /del.sh          //执行删除备份文件的执行文件

  rm -f /opt/bak/*       //清除旧数据库备份文件

 

 

3 赋予权限

  给文件/opt/sh/backup.shdel.shftp.sh执行权限和文件夹的执行和写入权限

chmod –R  777  /opt/bak

chmod –R  777  /opt/sh

4、定制计划任务

  Crontab -e    #设置Oracle用户的计划任务

    * 1* * 6   /opt/sh/backup.sh     //每周六的凌晨1点备份

  crontab -e                                      //设置root用户的计划任务

     * 4 * * 6   /opt/sh/ftp.sh           //每周六的凌晨4点将备份数据考到本分服务器

     * 7 * * 6   /opt/sh/del.sh           //每周六的早上7点将服务器上的备份数据删除

 

   各用户mail位置 /var/spool/mail、crontab日志位置/var/log/cron.,执行crontab后会在mail和cron里有消息。

0 0
原创粉丝点击