找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 64383|回复: 24

[其他] 调用rman命令备份数据库的批处理日期选择为何进行不下去?

[复制链接]
发表于 2012-3-4 03:26:32 | 显示全部楼层 |阅读模式
日期选择进行不下去,下面变量CTL好像没有被赋值,请高手指导
@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 BACKUPTYPE=incremental level 0 database
set NAME=full05_%%d_%%T_%%U
set ARCHIVE=arch_%%d_%%T_%%U

@set DAY=%date:~13,14%
@if "%DAY%" EQU "一" (
set CTL=ctl1_%%d_%%T_%%U
)

@if "%DAY%" EQU "二" (
set CTL=ctl2_%%d_%%T_%%U
)

@if "%DAY%" EQU "三" (
set CTL=ctl3_%%d_%%T_%%U
)

@if "%DAY%" EQU "四" (
set CTL=ctl4_%%d_%%T_%%U
)

@if "%DAY%" EQU "五" (
set CTL=ctl5_%%d_%%T_%%U
)

@if "%DAY%" EQU "六" (
set CTL=ctl6_%%d_%%T_%%U
)

@if "%DAY%" EQU "日" (
set CTL=ctl0_%%d_%%T_%%U
)

@(
echo run {
echo allocate channel c1 type disk;
echo backup current controlfile format '%BACKUP_DIR%\%CTL%';
echo release channel c1;  
echo }
) | %RMAN% target / msglog '%RMAN_LOG_FILE%'
 楼主| 发表于 2012-3-4 19:15:55 | 显示全部楼层
高手请指导,自己up下
发表于 2012-3-4 19:41:30 | 显示全部楼层
在第49行查看一下变量的值:
  1. echo,%DAY%
  2. echo,%CTL%
复制代码
 楼主| 发表于 2012-3-4 22:30:08 | 显示全部楼层
本帖最后由 ksly1227 于 2012-3-4 23:18 编辑

3楼不行啊,加上你那2句之后  我有加啦pause
显示 echo ,
变量没显示出来啊
中间去掉逗号,说echo已经打开

echo , %CTL%
pause
命令输出结果:
D:\Program Files\UltraEdit>set BACKUPTYPE=incremental level 0 database  

D:\Program Files\UltraEdit>set NAME=full05_%d_%T_%U

D:\Program Files\UltraEdit>set ARCHIVE=arch_%d_%T_%U  

D:\Program Files\UltraEdit>echo ,  
,

D:\Program Files\UltraEdit>pause
请按任意键继续. . .
发表于 2012-3-4 23:34:08 | 显示全部楼层
回复 4# ksly1227


你这哥们眼神咋还不好使了呢,49不是19啊
 楼主| 发表于 2012-3-4 23:40:35 | 显示全部楼层
就是49行
@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 BACKUPTYPE=incremental level 0 database
set NAME=full05_%%d_%%T_%%U
set ARCHIVE=arch_%%d_%%T_%%U

@set DAY=%date:~13,14%
@if "%DAY%" EQU "一" (
set CTL=ctl1_%%d_%%T_%%U
)

@if "%DAY%" EQU "二" (
set CTL=ctl2_%%d_%%T_%%U
)

@if "%DAY%" EQU "三" (
set CTL=ctl3_%%d_%%T_%%U
)

@if "%DAY%" EQU "四" (
set CTL=ctl4_%%d_%%T_%%U
)

@if "%DAY%" EQU "五" (
set CTL=ctl5_%%d_%%T_%%U
)

@if "%DAY%" EQU "六" (
set CTL=ctl6_%%d_%%T_%%U
)

@if "%DAY%" EQU "日" (
set CTL=ctl0_%%d_%%T_%%U
)
echo , %CTL%
pause

@(
echo run {
echo allocate channel c1 type disk;
echo backup current controlfile format '%BACKUP_DIR%\%CTL%';
echo release channel c1;  
echo }
) | %RMAN% target / msglog '%RMAN
 楼主| 发表于 2012-3-4 23:41:27 | 显示全部楼层
ediplus行号我没选择上
发表于 2012-3-4 23:43:55 | 显示全部楼层
回复 6# ksly1227


不是吧,3楼明明是两行,到你这里怎么就变成一行?
 楼主| 发表于 2012-3-4 23:47:29 | 显示全部楼层
有区别吗??显示2个变量值和显示一个变量值一样,关键是现在显示不出来,我后面有加拉pause  自己看下结果在说
 楼主| 发表于 2012-3-4 23:49:19 | 显示全部楼层
还有echo有那样用法吗??   echo ,+变量???
发表于 2012-3-4 23:52:15 | 显示全部楼层
回复 9# ksly1227


这个可以有
你最好自己试试再说
不能乱猜的
发表于 2012-3-4 23:52:51 | 显示全部楼层
回复 10# ksly1227


这个必须有
只是你抄多了两个空格而已
发表于 2012-3-4 23:55:01 | 显示全部楼层
echo,%CTL%看不到内容就说明你那一大堆if没搞对
这就是为啥它上面还要有一个echo,%DAY%来检查了
 楼主| 发表于 2012-3-4 23:55:09 | 显示全部楼层
我现在把你哪2行加上,输出结果一样啊
下面是命令输出结果
D:\bk>set BACKUPTYPE=incremental level 0 database  

D:\bk>set NAME=full05_%d_%T_%U

D:\bk>set ARCHIVE=arch_%d_%T_%U  

D:\bk>echo,


D:\bk>echo ,  
,
RMAN> 2> 3> 4> 5> RMAN>
 楼主| 发表于 2012-3-5 00:00:12 | 显示全部楼层
echo,%DAY%
echo,%CTL%
上面就是按照你的要求改的
输出结果还是步行
D:\bk>set BACKUPTYPE=incremental level 0 database  

D:\bk>set NAME=full05_%d_%T_%U

D:\bk>set ARCHIVE=arch_%d_%T_%U  

D:\bk>echo,


D:\bk>echo,

RMAN> 2> 3> 4> 5> RMAN>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 18:34 , Processed in 0.015176 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表