RMAN-20039: 设置双工模式时格式中需要有 %c 解决办法

oracle数据库在做rman备份时,如果要产生多份拷贝备份集,我运行命令:

RMAN>  BACKUP COPIES 3 DATABASE;

RMAN> BACKUP COPIES 3 DATABASE;

启动 backup 于 04-6月 -17
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=E:\APP\ADMINISTRATOR\ORADATA\ORCL11G64B\SYSTEM01.DBF
输入数据文件: 文件号=00002 名称=E:\APP\ADMINISTRATOR\ORADATA\ORCL11G64B\SYSAUX01.DBF
输入数据文件: 文件号=00005 名称=E:\APP\ADMINISTRATOR\ORADATA\ORCL11G64B\MYSPACE.DBF
输入数据文件: 文件号=00003 名称=E:\APP\ADMINISTRATOR\ORADATA\ORCL11G64B\UNDOTBS01.DBF
输入数据文件: 文件号=00004 名称=E:\APP\ADMINISTRATOR\ORADATA\ORCL11G64B\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 04-6月 -17
RMAN-03009: backup 命令 (ORA_DISK_1 通道上, 在 06/04/2017 10:47:15 上) 失败
RMAN-20039: 设置双工模式时格式中需要有 %c
继续执行其他作业步骤, 将不重新运行失败的作业
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 04-6月 -17
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (ORA_DISK_1 通道上, 在 06/04/2017 10:47:17 上) 失败
RMAN-20039: 设置双工模式时格式中需要有 %c

报错:RMAN-20039: 设置双工模式时格式中需要有 %c

错误提示很明显:输出格式中需要有%c

分析原因:我自定义了备份输出位置及格式,但格式中不包含%c(备份片段的复制数),

所以无法输出多个备份。

RMAN> show all;

db_unique_name 为 ORCL11G64B 的数据库的 RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   'E:\app\Administrator\db_bak\rmanbak\backup_%d_%T_%t_%s_%p';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'E:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SNCFORCL11G64B.ORA'; # default
解决办法也非常简单:

重新定义输出格式即可:

RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   'E:\app\Administrator\db_bak\rmanbak\backup_%d_%T_%t_%s_%p_%c';

旧的 RMAN 配置参数:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   'E:\app\Administrator\db_bak\rmanbak\backup_%d_%T_%t_%s_%p';
新的 RMAN 配置参数:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   'E:\app\Administrator\db_bak\rmanbak\backup_%d_%T_%t_%s_%p_%c';
已成功存储新的 RMAN 配置参数
释放的通道: ORA_DISK_1

再次备份产生多个副本,成功!


当然,还有另外一种方法解决:指定多个副本的不同存放位置,也可以不用去更改输出格式。

比如:写在run脚本中

RMAN>  RUN{

2>SET BACKUP COPIES 2;              //也可以指定两个备份位置,不用在格式中加%c

3>BACKUP DEVICE TYPE DISK FORMAT ¨D:\BACKUP1\%U¨¨D:\BACKUP2\%U¨ 

4>TABLESPACE USERS,SALES;

5>}

上述命令将生成两份备份集,分别存储到d:\backup1和d:\backup2目

<think>我们正在处理一个RMAN错误。用户报告的错误信息是:RMAN-01008:the badidentifier was: aulixiaryRMAN-01007:at line1column41同,从引用中我们还可以看到其他相关的错误信息: -引用[1]中提到了RMAN-01009: syntaxerror,并指出在标准输入的第1行第43列遇到了一个错误的标识符。-引用[2]中提到了RMAN-01005:syntax error,并列出了一些期望的关键字。根据用户提供的错误信息,错误发生在第1行的第41列,错误的标识符是“aulixiary”。注意,这个单词看起来像是拼写错误,可能是“auxiliary”的错误拼写。 在RMAN中,当我们使用DUPLICATE DATABASE命令或者创建备用数据库,会使用AUXILIARY关键字来指定辅助实例的连接字符串。因此,这个错误很可能是在尝试使用辅助实例,命令中拼错了关键字。例如,正确的命令应该是: ```rmanDUPLICATE TARGET DATABASE TO<dbname>AUXILIARYDESTINATION '/path/to/auxiliary'; ```但是用户可能写成了:```rman... aulixiary ...``` 所以,解决方法是更正拼写错误,将“aulixiary”改为“auxiliary”。 另外,引用[4]中提到在备库上执行RMAN命令遇到了问题,特别是归档日志备份的问题,但用户当前的问题与那个问题不同,用户当前的问题是语法错误。因此,我们给用户的建议是:1.检查RMAN命令中第1行第41列附近的拼写。2.将错误的拼写“aulixiary”更正为“auxiliary”。 如果用户不是在用辅助实例,那么可能是在其他上下文中使用了错误的标识符,但根据错误信息中的“bad identifier”为“aulixiary”,我们仍然认为这是拼写错误。最后,生成相关问题以帮助用户进一步排查可能的相关问题。</think>### RMAN语法错误分析及解决 根据您提供的错误信息(`RMAN-01008: the bad identifier was: aulixiary RMAN-01007: at line 1 column 41`),这是典型的RMAN语法错误。核心问题在于**关键字拼写错误**: 1. **错误原因**: - 错误标识符`aulixiary`是`AUXILIARY`的错误拼写(缺少字母`r`) - RMAN在命令的第1行第41列检测到无效关键字 - 常见于数据库复制(`DUPLICATE`)或备用数据库操作中,例如: ```sql DUPLICATE TARGET DATABASE TO STANDBY AUXILIARY DESTINATION '/oracle/aux'; -- 此处若拼错AUXILIARY将触发错误 ``` 2. **解决方案**: - 检查命令中`AUXILIARY`关键字的拼写 - 修正拼写错误后重试命令: ```bash # 错误示例 RMAN> CONNECT TARGET sys/pwd@prod AUXILIARY sys/pwd@aux -- 错误拼写 # 正确写法 RMAN> CONNECT TARGET sys/pwd@prod AUXILIARY sys/pwd@aux -- 修正拼写 ``` 3. **语法规范要点**: - RMAN命令需严格遵循关键字规范(参考引用[2]的保留字列表[^2]) - 连接辅助实例固定格式: ```sql CONNECT TARGET ... AUXILIARY ... ``` - 备用数据库操作需确保网络连通性和权限(引用[4]的ORA-17629错误与此相关[^4]) 4. **预防措施**: - 使用脚本管理RMAN命令避免手动输入错误 - 通过`RMAN> HELP COMMAND;`查看命令语法 - 测试环境验证复杂命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值