zoukankan      html  css  js  c++  java
  • Oracle运维脚本:exp,hist 和 err

    上一篇我们讲到:首次使用rman备份数据库时,为了安全起见,我们应将整个数据库exp出来。
    显而易见,每次都手敲exp代码是不可取的。

    ————费时费力还不规范!

      
      
    为此,我们可以写一个exp脚本,之后的每次导出便只需敲写./exp_db_full.sh或者sh exp_db_full.sh,还能实现各参数的前后一致,如下:

    export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
    /u01/app/oracle/product/10.2/db_1/bin/exp 数据库名/用户名 file=/backup/ecology-$(date +%F).dmp log=/backup/ecology-$(date +%F).log full=y direct=y buffer=5120000 compress=n
    

      
      


      
    同时,我们还可以写一个Oracle运行日志脚本chk_ora_alert.sh,将Oracle运行日志分门别类,提取其中的hist和err记录,使运维人员得以快速找到自己所需的运行信息。
    因为Oracle本身的log实在是太太太太太太乱了,那都不是给人看的!

    #!/bin/bash
    cd $ORACLE_BASE/admin/$ORACLE_SID/bdump
    if [ -f alert_$ORACLE_SID.log ]
    then
        mv alert_$ORACLE_SID.log alert_$ORACLE_SID_temp.log
        touch alert_$ORACLE_SID.log
        cat alert_$ORACLE_SID_temp.log >> alert_$ORACLE_SID_$(date +%F).hist
        grep ORA- alert_$ORACLE_SID_temp.log > alert.err
    fi
    

    PS:
    $ORACLE_BASE只是一个环境变量名,相当于/u01/app/oracle,可自行设置;$ORACLE_SID同理。
      
      


      

    然而,

    还有一个问题:前面的rmancrontab,再加上这expOracle,使得backup目录杂乱无章、凌乱不堪。

    做运维,哪能没有强迫症!!

      
    于是,我又将各个脚本的绝对路径修改了一下,将运行结果分配到各个目录,如下图:

    嗯......顺眼多了~~~ 

  • 相关阅读:
    反转字符串(指定子串不反转)
    字符串相同字符个数统计
    指针函数/回调函数
    simplest_dll 最简dll的创建与隐式调用(显式调用太麻烦,个人不建议使用)
    字符串的相关操作
    sizeof()函数求各类型变量所占空间的方法
    对于数组使用sizeof(a)和使用sizeof(a[0])
    交换两个数的三种方法
    最简字符串查找操作(静态顺序串,非链串)
    类模板 template<class T>
  • 原文地址:https://www.cnblogs.com/WoLykos/p/11797098.html
Copyright © 2011-2022 走看看