oracle数据库备份与恢复 a piece of cake(2)

发表于:2007-06-22来源:作者:点击数: 标签:
oracle 数据库 冷备份:( unix or linux 平台) 1.建立教本管理目录/u01/app/oracle/admin/admin_script 2.建立 数据库备份 的脚本 在上面建立的目录下建立如下的两个脚本。 2.1建立执行备份任务的脚本(shellscript) 文件内容如下: #!/bin/sh Rem=========

   

oracle数据库冷备份:(unixorlinux平台)

    1.建立教本管理目录/u01/app/oracle/admin/admin_script

    2.建立数据库备份的脚本

    在上面建立的目录下建立如下的两个脚本。

    2.1建立执行备份任务的脚本(shellscript)

    文件内容如下:

    #!/bin/sh
    Rem===========================================================================
    RemNAME-close_Backup_run.sh
    RemFUNCTION-CreatesabackupscriptforaUserManagedbackup
    RemNOTES-ThisscriptwillcreateascriptandrunOScopycommands
    Remonclosed(cold)database
    RemMODIFIED-Mr.TianliangGuo02/08/08OriginalFile
    Rem===========================================================================

    RemForunix,setenvironmentvariablesfortherootpath.
    ORACLE_SID=TSTDB
    ORACLE_CONNECTSTRING=tstdb
    ORACLE_BASE=/u01/app/oracle
    ORACLE_HOME=$ORACLE_BASE/product/8.1.7
    ORACLE_DATA=$ORACLE_BASE/oradata/$ORACLE_SID
    ORACLE_ADMIN=$ORACLE_BASE/admin/$ORACLE_SID
    exportORACLE_SIDORACLE_CONNECTSTRINGORACLE_BASEORACLE_HOMEORACLE_DATAORACLE_ADMIN

    $ORACLE_HOME/bin/sqlplus/nolog@close_backup.sql>close_backup.log

    2.2建立完成备份认为的命令文件(sqlplus内执行的sql脚本)

    文件内容如下:

    Rem===========================================================================
    RemNAME-close_backup.sql
    RemFUNCTION-CreatesabackupscriptforaUserManagedbackup
    RemNOTES-ThisscriptwillcreateascriptandrunOScopycommands
    Remonclosed(cold)database
    RemMODIFIED-ksmith01/01/02OriginalFile
    Rem-TianliangGuo2002/08/18
    Rem===========================================================================
    RemSetSQL*Plusvariablestomanipulateoutput

    setheadingoff
    setverifyoff
    setpagesize0
    setlinesize600
    setfeedbackoff

    RemSetSQL*Plususervariablesusedinscript

    defineadm='sys'
    definepwd='oracle8i'

    RemLinuxorUnixUservariables
    definebkdir='/u05/oracle/oradata/tstdb/backup'
    definefilcbc='/tmp/closed_backup_commands.sql'
    definecopy='cp'

    Remlogindatabase
    connect&adm/&pwdassysdba;

    RemCreateafilecontainingallthefilecopycommandsneededforphysicalbackup

    spool&filcbc
    promptRemNAME-close_backup.sql
    prompt
    promptRemShutdownthedatabasecleanly
    promptshutdownimmediate;;
    prompt
    promptRembackupdatafile
    select'host?'||name||'&bkdir'fromv$datafileorderby1;
    prompt
    promptRembackuplogfile
    select'host?'||member||'&bkdir'fromv$logfileorderby1;
    prompt
    promptRembackupcontrolfile
    select'host?'||name||'&bkdir'fromv$controlfileorderby1;
    prompt
    promptRembackuptemporayfile
    select'host?'||name||'&bkdir'fromv$tempfileorderby1;
    prompt
    promptalterdatabasebackupcontrolfiletotrace;;
    prompt
    promptRemStartthedatabaseagain
    promptstartup;;
    prompt

    spooloff;

    RemRunthecopyfilecommands

    @&

    exit;

    3.修改教本定义的变量

    在运行教本中定义的一些变量,将其改为本地数据库安装环境的变量。

    需要修改的变量有,
   
    在close_Backup_run.bat脚本中:
    setORACLE_SID=TSTDB
    setORACLE_CONNECTSTRING=tstdb
    setORACLE_BASE=/u01/app/oracle/
    setORACLE_HOME=$ORACLE_BASE/product/8.1.7
    在close_backup.sql脚本中:
    defineadm='sys'
    definepwd='oracle8i'
    definebkdir='/u05/oracle/oradata/TSTDB/backup'

    4.执行数据库备份任务

    在$ORACLE_BASE/admin/admin_script目录下运行close_Backup_run.sh

    [oracle@RHTadmin_script]./close_Backup_run.sh

    5.执行自动备份。

    在crontab文件中添加如下的一行

    003**6$ORACLE_BASE/admin/admin_script/close_Backup_run.sh

    解释:每周六凌晨3点执行数据库关闭,数据库备份,数据库重启。

    具体的方式自己定义。

原文转自:http://www.ltesting.net