服务器 频道

oracle数据库备份与恢复之二

  【IT168 服务器学院】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点执行数据库关闭,数据库备份,数据库重启。

    具体的方式自己定义。

0
相关文章