zoukankan      html  css  js  c++  java
  • LINUX下的ORACLE按周7个文件覆盖备份

    今天因为工作上的关系,需要设计一个对ORACLE的备份方案,由于数据库较大,不适合每天存量备份,所以设计了这种按周7个文件的覆盖备份,具体步骤如下:

    1.创建SHELL执行脚本oracle_backup.sh

    [root@czjie ~]# vi /data/oracle/orabak/oracle_backup.sh

    语句如下:

    #!/bin/bash
    export ORACLE_BASE=/opt/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
    export ORACLE_SID=orcl
    export PATH=$ORACLE_HOME/bin:$PATH
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

    #生成备份文件名,最后一位数字(0-6)对应(星期天-星期六)
    a=czjie_bak_week$(date +%w)
    echo $a
    exp czjie/czjie_2012 file=/data/oracle/orabak/$a.dmp log=/data/oracle/orabak/$a.log

    注意:export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,这一行如果没有,那么当exp工具所在的环境变量跟NLS LANG中的NLS_CHARCATERSET不一致时,就会导致EXP-00091 Exporting questionable statistics,如果不知道怎么获取NLS_CHARCATERSET,可参考我的文章:EXP-00091 Exporting questionable statistics

    a=czjie_bak_week$(date +%w) 中 $(date +%w) 获取的是周几,按星期天为0的顺序一直到星期六的6,测试时候可以用$(date +%w -d "1 days ago")方法进行天数上的调整;

    2.授予SHELL脚本可执行权限及其用户归属

    [root@czjie ~]# cd /data/oracle/orabak
    [root@czjie orabak]# chmod 700 backup.sh
    [root@czjie orabak]# chown oracle backup.sh

    3.确保备份的文件目录归属于oracle用户

    [root@czjie ~]# chown –R oracle.oinstall /data/oracle/orabak/

    4.为oracle用户建立一个crontab

    [root@czjie ~]# crontab -u oracle –e

    #添加以下内容:

    0 6 * * *  /data/oracle/orabak/oracle_backup.sh

    注意:0 6 * * * 表示每天凌晨6点调度一次,后面是执行的语句;测试的时候可以定义成*/1 * * * *表示每分钟调度一次;

    5.确保crond服务正常运行

    [root@czjie ~]# /sbin/service crond status
    crond (pid  3081) 正在运行...

    如果服务没正常执行可用下面的方法进行启动和关闭:

    /sbin/service crond start //启动服务
    /sbin/service crond stop //关闭服务
    /sbin/service crond restart //重启服务
    /sbin/service crond reload //重新载入配置
    /sbin/service crond reload //查看服务状态

    /etc/init.d/crond start //启动服务
    /etc/init.d/crond stop //关闭服务
    /etc/init.d/crond restart //重启服务
    /etc/init.d/crond reload //重新载入配置

    可以将这个服务在系统启动的时候自动启动:
    在/etc/rc.d/rc.local这个脚本的末尾加上:
    /sbin/service crond start

    至此,整个备份的配置过程完毕!由于自动调度的相关提示信息不是打印到终端窗口,所以只能通过邮件日志查看,语句如下:

    [root@czjie ~]# cat /var/mail/oracle


    作者:czjie
    出处:http://www.cnblogs.com/czjie/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    HDU 5363 Key Set(快速幂取模)
    HDU 5339 Untitled(暴搜)
    POJ 2406 Power Strings
    Dedecms备份还原网站有效方法
    DEDECMS文章列表每隔8行文章添加分隔虚线
    DEDECMS突破TAG和关键字长度的限制
    为织梦dedecms制作全文RSS订阅源
    DedeCms中Channel用typeid无效
    织梦CMS/Dedecms添加自定义函数
    sql批量换dedecms文章来源和作者
  • 原文地址:https://www.cnblogs.com/czjie/p/2890757.html
Copyright © 2011-2022 走看看