变量%bkpath%确实没识别出来
下面写的if不起作用啊,在脚本里已指出,日期判断不好搞啊,要写3个bat文件,全备,差异,累计
我也来个交互式的,日期判断不好搞啊,要写3个bat文件,全备,差异,累计- @set ORACLE_HOME=G:\oracle\product\10.2.0\db_1
- @rem echo %ORACLE_HOME%
- @set ORACLE_SID=test
- @rem echo %ORACLE_SID%
- @set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
- @rem echo %NLS_LANG%
- @set PATH=%ORACLE_HOME%\bin
- @rem echo %PATH%
- @set RMAN=%ORACLE_HOME%\bin\rman.exe
- @set date=%date:~0,10%
- @set BACKUP_DIR=D:\bk\full\%date%
- @IF NOT EXIST %BACKUP_DIR% (
- mkdir %BACKUP_DIR%
- )
- @set RQ=%date:~4,10%
- @set RMAN_LOG_FILE=%BACKUP_DIR%\rman_%RQ%.log
- @set DAY=%date:~13,14%
复制代码 -------------------------------------------------------------------------------------- @if "%DAY%" EQU "五" (
- set BACKUPTYPE=incremental level 1 database
-
- set NAME=L1_%%d_%%T_%%s
- set ARCHIVE=L1_%%d_%%T
- )
复制代码 ----------------------------------------------------------------------------------
上面那个判断有点小问题,操作系统win2003的,是不是win版本步同批处理命令也不同- set BACKUPTYPE=incremental level 0 database
- set NAME=full05_%%d_%%T_%%U
- set ARCHIVE=arch_%%d_%%T_%%U
- set CTL=ctl_%%d_%%T_%%U
- @(
- echo run {
- echo allocate channel c1 type disk;
- echo sql "ALTER SYSTEM ARCHIVE LOG CURRENT";
- echo backup %BACKUPTYPE% format '%BACKUP_DIR%\%NAME%';
- echo backup format '%BACKUP_DIR%\%ARCHIVE%' archivelog all delete all input;
- echo backup current controlfile format '%BACKUP_DIR%\%CTL%';
- echo crosscheck backup;
- echo delete noprompt obsolete;
- echo release channel c1;
- echo }
- ) | %RMAN% target / msglog '%RMAN_LOG_FILE%'
复制代码
|