zoukankan      html  css  js  c++  java
  • Oracle自动备份脚本的实现

    问题描述:

    Oracle自动备份脚本的实现。

    错误提示1:

    Message file RMAN.msb not found

    Verify that Oracle_HOME is set properly

    。。。。。。

    错误原因:

    自动执行的不能够识别相应的命令,需要在自动备份脚本中显式的声明Oracle的环境变量。

    错误提示2:

    standard in must be a tty

    。。。。。。

    错误原因:

    不能在cron使用su或者管道等操作,必须将su命令移动到相关的shell脚本中。

    错误提示3:

    Argument     Value          Description

    -----------------------------------------------------------------------------

    target       quoted-string  connect-string for target database

    catalog      quoted-string  connect-string for recovery catalog

    nocatalog    none           if specified, then no recovery catalog

    cmdfile      quoted-string  name of input command file

    log          quoted-string  name of output message log file

    trace        quoted-string  name of output debugging message log file

    append       none           if specified, log is opened in append mode

    debug        optional-args  activate debugging

    msgno        none           show RMAN-nnnn prefix for all messages

    send         quoted-string  send a command to the media manager

    pipe         string         building block for pipe names

    timeout      integer        number of seconds to wait for pipe input

    checksyntax  none           check the command file for syntax errors

    -----------------------------------------------------------------------------

    Both single and double quotes (' or ") are accepted for a quoted-string.

    Quotes are not required unless the string contains embedded white-space.

    RMAN-00571: ===========================================================

    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

    RMAN-00571: ===========================================================

    RMAN-00556: could not open CMDFILE "backup_ar.rcv"

    。。。。。。

    错误原因:

    需要在cmdfile中指明绝对路径,不能因为shell脚本调用的cmdfile是在同一个目录下就可以直接使用文件名或者直接使用./

    正确示例代码:

    1、#cron文件

    0 12,18 * * * /home/Oracle/bak_sh/backup_ar.sh

    #表示每天12,18点对数据库归档日至进行全备份

    2、入口shell文件,文件名:backup_ar.sh

    export Oracle_HOME=/home/u01/app/Oracle/Oracle/product/10.2.0/db_1

    export Oracle_SID=test

    export LANG=en_US.UTF-8

    /home/u01/app/Oracle/Oracle/product/10.2.0/db_1/bin/rman cmdfile = backup_ar.rcv

    3、rman备份脚本

    connect target /

    connect catalog rman/rman@rman

    run{

    allocate channel d1 device type disk;

    sql 'alter system archive log current';

    backup archivelog all delete input

      format '/opt/rmanback/full_%u_%p_%c.ac' filesperset = 3;

    release channel d1;

    }

    解决方法:

    1、两种办法

    一是用root的crontab,*/2 * * * * a.sh --》su - Oracle -c a.sh

    一是在a.sh里加上Oracle的环境。

    2、我们做的cron测试:

    实例:

    Vi /etc/cron.minly/new.sh

    内容:

    Su – Oracle –c “/home/Oracle/mginfo.sh”

    Vi /home/Oracle/mginfo.sh

    内容:

    Exp mginfotech/mginfotech file=mginfotech.dmp log=mginfotech.log

    Vi /etc/crontab

    内容:

    59 23 * * * root run-parts /etc/cron.minly

    每晚23:59分钟执行

    cron中无法读取环境变量

    在shell中显示地export环境变量

    export Oracle_HOME=/opt/ora9/product/9.2

    export Oracle_SID=Oracle

    export NLS_LANG=xxxxx

  • 相关阅读:
    css颜色表示法&颜色表
    css单位
    DOM与BOM
    position定位
    grid layout
    Linux禁止Ping方法
    tracert(traceroute)与ping
    服务器负载均衡技术的原理
    Struts2与webx的比较
    SpringAOP的原理
  • 原文地址:https://www.cnblogs.com/wwxbi/p/4216711.html
Copyright © 2011-2022 走看看