暂无图片
Windows环境RMAN备份脚本报错问题
我来答
分享
苏长青
2022-09-04
Windows环境RMAN备份脚本报错问题

我的数据库部署在windows server 2016 standard环境,数据库版本是19c,我下通过如下方式来切割RMAN的备份日志

rman target sys/Oracle_123 msglog='D:\oraclebase\rmanlog\bakcup%date:~0,10%.log' CMDFILE 'D:\oraclebase\scripts\rmanbackup.txt'

但是始终不输出日志文件,报错如下


请问是我的日期格式写的有问题吗

我来答
添加附件
收藏
分享
问题补充
10条回答
默认
最新
哇哈哈

修改日期格式之后一点问题没有啊,你命令行里面的百分号是不是中文百分号,手打英文%上去试试


暂无图片 评论
暂无图片 有用 1
打赏 0
暂无图片
苏长青
题主
2022-09-05
谢谢你,我在其他服务器上都没问题,就这台服务器报错,也不是中文字符的原因。
苏长青

我新建了一个日志路径,D:\oraclebase\rmanlog,这个路径是存在的。

暂无图片 评论
暂无图片 有用 0
打赏 0
刘贵宾
把=去掉试试
暂无图片 评论
暂无图片 有用 0
打赏 0
苏长青

之前试过了=号的问题,无论加上还是去掉都会报这个错

暂无图片 评论
暂无图片 有用 0
打赏 0
Thomas

我在自己的机器,SERVER 2019上试了,新建文本文件,文件名写成 a/b 或者 a\b, 似乎都不行啊。你的文件里不是有09/04/2022字样吗?把/去掉试试

暂无图片 评论
暂无图片 有用 0
打赏 0
恭兵

看你的日期格式里面也没有斜杠呀

msglog='D:\oraclebase\rmanlog\bakcup%date:~0,10%.log'

D:\oraclebase\rmanlog 前面的是路径,后面这一串“bakcup%date:~0,10%.log”也是对的,楼主试试在前面提前设置变量,然后在后面引用试试

暂无图片 评论
暂无图片 有用 0
打赏 0
哇哈哈

server版的windows默认的日期格式是yyyy/mm/dd

win7默认日期格式是yyyy-mm-dd

你在server使用%date:~0,10%获取的变量是2022/09/04,windows认为/是目录分隔符,所以创建文件要失败

解决方法,

1、拼接yyyy-mm-dd,如下

%date:~0,4%-%date:~5,2%-%date:~8,2%

或者

2、修改系统的默认日期格式


暂无图片 评论
暂无图片 有用 1
打赏 0
苏长青


更改系统日期格式后,仍然报错

rman target sys/Oracle_123 msglog='D:\oraclebase\rmanlog\bakcup%date:~0,10%.log' CMDFILE 'D:\oraclebase\scripts\rmanbackup.txt'




暂无图片 评论
暂无图片 有用 0
打赏 0
哇哈哈
2022-09-04
要改成yyyy-mm-dd
哇哈哈
2022-09-05
你那两个方框框是啥,咋还复制出乱码了?
Thomas

你先给LOG文件起个固定的名字,比如叫ABC.LOG,看包不报错。如果不报,那肯定问题出现在日期格式里的不当字符。我看你最后的截图,不是2022/09,还是有/吗

暂无图片 评论
暂无图片 有用 1
打赏 0
苏长青

日志文件不使用变量,可以正常输出,如直接定义日志文件名称为

msglog='D:\oraclebase\rmanlog\bakcupfull_db.log'

则输出的日志文件名称为bakcupfull_db.log

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏