文档视界 最新最全的文档下载
当前位置:文档视界 › Windows Oracle备份脚本

Windows Oracle备份脚本

@REM $Header: hot_database_backup.cmd,v 1.9 2002/02/06 16:43:21 lstrub Stab $

@REM bcpyrght
@REM ***************************************************************************
@REM * $VRTScprght: Copyright 1993 - 2002 VERITAS Software Corporation, All Rights Reserved $ *
@REM ***************************************************************************
@REM ecpyrght
@REM
@REM ---------------------------------------------------------------------------
@REM hot_database_backup.cmd
@REM ---------------------------------------------------------------------------
@REM This script uses Recovery Manager to take a hot (inconsistent) database
@REM backup. A hot backup is inconsistent because portions of the database are
@REM being modified and written to the disk while the backup is progressing.
@REM You must run your database in ARCHIVELOG mode to make hot backups.
@REM ---------------------------------------------------------------------------

@setlocal ENABLEEXTENSIONS

@REM ---------------------------------------------------------------------------
@REM No need to echo the commands.
@REM ---------------------------------------------------------------------------

@echo off

@REM ---------------------------------------------------------------------------
@REM Put output in the same filename, different extension.
@REM ---------------------------------------------------------------------------

@set RMAN_LOG_FILE="%~dpn0.out"

@REM ---------------------------------------------------------------------------
@REM You may want to delete the output file so that backup information does
@REM not accumulate. If not, delete the following command.
@REM ---------------------------------------------------------------------------

@if exist %RMAN_LOG_FILE% del %RMAN_LOG_FILE%

@REM ---------------------------------------------------------------------------
@REM Replace H:\oracle\ora81, below, with the Oracle home path.
@REM ---------------------------------------------------------------------------

@set ORACLE_HOME=d:\oracle\ora81

@REM ---------------------------------------------------------------------------
@REM Replace ora81, below, with the Oracle SID.
@REM ---------------------------------------------------------------------------

@set ORACLE_SID=oracle8i

@REM ---------------------------------------------------------------------------
@REM Replace sys/manager, below, with the target connect string.
@REM ---------------------------------------------------------------------------

@set TARGET_CONNECT_STR=internal/oracle@oracle8i

@REM ---------------------------------------------------------------------------
@REM Set the Oracle Recovery Manager.
@REM ---------------------------------------------------------------------------

@set RMAN=%ORACLE_HOME%\bin\rman.exe

@REM ---------------------------------------------------------------------------
@REM Log the start of this scripts.
@REM -----

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

@for /F "tokens=1*" %%p in ('date /T') do @set DATE=%%p %%q
@for /F %%p in ('time /T') do @set DATE=%DATE% %%p

@echo ==== started on %DATE% ==== >> %RMAN_LOG_FILE%
@echo Script name: %0 >> %RMAN_LOG_FILE%

@REM ---------------------------------------------------------------------------
@REM Several RMAN commands use time parameters that require NLS_LANG and
@REM NLS_DATE_FORMAT to be set. This example uses the standard date format.
@REM Replace below with the desired language values.
@REM ---------------------------------------------------------------------------

@set NLS_LANG=american
@set NLS_DATE_FORMAT=YYYY-MM-DD:hh24:mi:ss

@REM ---------------------------------------------------------------------------
@REM Print out environment variables set in this script.
@REM ---------------------------------------------------------------------------

@echo # >> %RMAN_LOG_FILE%
@echo RMAN : %RMAN% >> %RMAN_LOG_FILE%
@echo NLS_LANG : %NLS_LANG% >> %RMAN_LOG_FILE%
@echo ORACLE_HOME : %ORACLE_HOME% >> %RMAN_LOG_FILE%
@echo ORACLE_SID : %ORACLE_SID% >> %RMAN_LOG_FILE%
@echo NLS_DATE_FORMAT : %NLS_DATE_FORMAT% >> %RMAN_LOG_FILE%
@echo RMAN_LOG_FILE : %RMAN_LOG_FILE% >> %RMAN_LOG_FILE%

@REM ---------------------------------------------------------------------------
@REM Print out environment variables set in bphdb.
@REM ---------------------------------------------------------------------------

@echo NB_ORA_SERV : %NB_ORA_SERV% >> %RMAN_LOG_FILE%
@echo NB_ORA_FULL : %NB_ORA_FULL% >> %RMAN_LOG_FILE%
@echo NB_ORA_INCR : %NB_ORA_INCR% >> %RMAN_LOG_FILE%
@echo NB_ORA_CINC : %NB_ORA_CINC% >> %RMAN_LOG_FILE%
@echo NB_ORA_CLASS : %NB_ORA_CLASS% >> %RMAN_LOG_FILE%

@REM ---------------------------------------------------------------------------
@REM We assume that the database is properly opened. If desired, this would
@REM be the place to verify that.
@REM ---------------------------------------------------------------------------

@REM ---------------------------------------------------------------------------
@REM If this script is executed from a NetBackup schedule, NetBackup
@REM sets an NB_ORA environment variable based on the schedule type.
@REM For example, when:
@REM schedule type is BACKUP_TYPE is
@REM ---------------- --------------
@REM Automatic Full INCREMENTAL LEVEL=0
@REM Automatic Differential Incremental INCREMENTAL LEVEL=1
@REM Automatic Cumulative Incremental INCREMENTAL LEVEL=1 CUMULATIVE
@REM
@REM For user initiated backups, BACKUP_TYPE defaults to incremental
@REM level 0 (Full). To change the default for a user initia

ted
@REM backup to incremental or incrementatl cumulative, uncomment
@REM one of the following two lines.
@REM @set BACKUP_TYPE="INCREMENTAL LEVEL=1"
@REM @set BACKUP_TYPE="INCREMENTAL LEVEL=1 CUMULATIVE"
@REM
@REM Note that we use incremental level 0 to specify full backups.
@REM That is because, although they are identical in content, only
@REM the incremental level 0 backup can have incremental backups of
@REM level > 0 applied to it.
@REM ---------------------------------------------------------------------------

@REM ---------------------------------------------------------------------------
@REM What kind of backup will we perform.
@REM ---------------------------------------------------------------------------

@if "%NB_ORA_FULL%" EQU "1" @set BACKUP_TYPE=INCREMENTAL Level=0
@if "%NB_ORA_INCR%" EQU "1" @set BACKUP_TYPE=INCREMENTAL Level=1
@if "%NB_ORA_CINC%" EQU "1" @set BACKUP_TYPE=INCREMENTAL Level=1 CUMULATIVE
@if NOT DEFINED BACKUP_TYPE @set BACKUP_TYPE=INCREMENTAL Level=0

@REM ---------------------------------------------------------------------------
@REM Call Recovery Manager to initiate the backup. This example does not use a
@REM Recovery Catalog. If you choose to use one, remove the option, nocatalog,
@REM from the rman command line below and add a
@REM 'rcvcat /@' statement.
@REM
@REM NOTE WHEN USING TNS ALIAS: When connecting to a database
@REM using a TNS alias, you must use a send command or a parms operand to
@REM specify environment variables. In other words, when accessing a database
@REM through a listener, the environment variables set at the system level are not
@REM visible when RMAN is running. For more information on the environment
@REM variables, please refer to the NetBackup for Oracle Admin. Guide.
@REM
@REM ---------------------------------------------------------------------------

@(
echo RUN {
echo sql 'alter system switch logfile';
echo sql 'alter system switch logfile';
echo sql 'alter system switch logfile';
echo ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';
echo #ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';
echo BACKUP
echo %BACKUP_TYPE%
echo FILESPERSET 5
echo FORMAT 'oracle8i_u%%u_s%%s_p%%p_t%%t.dbf'
echo DATABASE;
echo sql 'alter system archive log current';
echo RELEASE CHANNEL ch00;
echo #RELEASE CHANNEL ch01;
echo # Backup all archive logs
echo ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';
echo BACKUP
echo FILESPERSET 20
echo FORMAT 'oracle8i_u%%u_s%%s_p%%p_t%%t.log'
echo ARCHIVELOG ALL DELETE INPUT;
echo RELEASE CHANNEL ch00;
echo # Backup controlfile
echo ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';
echo BACKUP
echo FORMAT 'oracle8i_u%%u_s%%s_p%%p_t%%t.ctl'
echo CURRENT CONTROLFILE;
echo RELEASE CHANNEL ch00;
echo sql "alter database backup controlfile to ''c:\program files\veritas\scripts\controlfile.bak'' reuse";
echo }
) | %RMAN% target %TARGET_CONNECT_STR% nocat

alog msglog '%RMAN_LOG_FILE%' append

@set ERRLEVEL=%ERRORLEVEL%

@REM ---------------------------------------------------------------------------
@REM NetBackup (bphdb) stores the name of a file in an environment variable,
@REM called STATUS_FILE. This file is used by an automatic schedule to
@REM communicate status information with NetBackup's job monitor. It is up to
@REM the script to write a 0 (passed) or 1 (failure) to the status file.
@REM ---------------------------------------------------------------------------

@if %ERRLEVEL% NEQ 0 @goto err

@set LOGMSG=ended successfully
@if "%STATUS_FILE%" EQU "" goto end
@echo 0 > "%STATUS_FILE%"
@goto end

:err
@set LOGMSG=ended in error
@if "%STATUS_FILE%" EQU "" @goto end
@echo 1 > "%STATUS_FILE%"

:end

@"c:\program files\veritas\netbackup\bin\bpbackup.exe" -p webserver_oracle8i_controlfile_bak -s oracle8i_controlfile_bak -t 13 "c:\program files\veritas\scripts\controlfile.bak"

@REM ---------------------------------------------------------------------------
@REM Log the completion of this script.
@REM ---------------------------------------------------------------------------

@for /F "tokens=1*" %%p in ('date /T') do @set DATE=%%p %%q
@for /F %%p in ('time /T') do @set DATE=%DATE% %%p

@echo # >> %RMAN_LOG_FILE%
@echo %==== %LOGMSG% on %DATE% ==== >> %RMAN_LOG_FILE%
@endlocal
@REM End of Main Program -----------------------------------------------------


相关文档
相关文档 最新文档