一次RMAN备份遇到的错误

今天在给客户的11g数据库做备份的时候,遇到个错误。

备份脚本如下:

run

 {

  allocate channel c1 device type disk format ‘D:/backup/ora_primary.bak’;

  backup incremental level 0 database;

  backup current controlfile for standby format ‘D:/backup/ctl_stby.ctl’;

  sql ‘alter system archive log current’;

  backup archivelog from time ‘SYSDATE-1/24′ format’D:/backup/ora_archive’;

}

出错的是第2backup incremental level 0 database; 报错信息如下

使用目标数据库控制文件替代恢复目录

分配的通道: c1

通道 c1: SID=33 设备类型=DISK

启动 backup 08-4 -15

通道 c1: 正在启动增量级别 0 数据文件备份集

通道 c1: 正在指定备份集内的数据文件

输入数据文件: 文件号=00001 名称=D:/APP/ADMINISTRATOR/ORADATA/SJBZFW/SYSTEM01.DBF

输入数据文件: 文件号=00002 名称=D:/APP/ADMINISTRATOR/ORADATA/SJBZFW/SYSAUX01.DBF

输入数据文件: 文件号=00003 名称=D:/APP/ADMINISTRATOR/ORADATA/SJBZFW/UNDOTBS01.DBF

输入数据文件: 文件号=00004 名称=D:/APP/ADMINISTRATOR/ORADATA/SJBZFW/USERS01.DBF

通道 c1: 正在启动段 1 08-4 -15

通道 c1: 已完成段 1 08-4 -15

段句柄=D:/BACKUP/ORA_PRIMARY.BAK 标记=TAG20150408T214419 注释=NONE

通道 c1: 备份集已完成, 经过时间:00:01:15

通道 c1: 正在启动增量级别 0 数据文件备份集

通道 c1: 正在指定备份集内的数据文件

备份集内包括当前控制文件

备份集内包括当前的 SPFILE

通道 c1: 正在启动段 1 08-4 -15

释放的通道: c1

RMAN-00571:===========================================================

RMAN-00569: =============== ERROR MESSAGESTACK FOLLOWS ===============

RMAN-00571:===========================================================

RMAN-03009: backup 命令 (c1 通道上, 04/08/201521:45:37 ) 失败

ORA-19504: 无法创建文件“D:/BACKUP/ORA_PRIMARY.BAK”

ORA-27038: 所创建的文件已存在

OSD-04010: 指定了 <create> 选项, 但文件已经存在

 

在信息里面可以看出,数据文件其实已经备份完毕了,但是不知道为什么,还在备份其他的东西,因为我的文件名只有一个,而文件已经存在了,所以报错。

修改成如下脚本

run

 {

  allocate channel c1 device type disk format ‘D:/backup/ora_primary_df_%d_%

U_%p_%c.bak’;

  backup incremental level 0 database;

  backup current controlfile for standby format ‘D:/backup /ctl_stby.ctl’;

  sql ‘alter system archive log current’;

  backup archivelog from time ‘SYSDATE-1/24′ format’D:/backup/ora_archive’;

 }

备份成功。

 

通道 c1: 正在启动段 1 08-4 -15

通道 c1: 已完成段 1 08-4 -15

段句柄=D:/BACKUP/ORA_PRIMARY_ DF_SJBZFW_03Q3T8L3_1_1_1_1.BAK 标记=TAG20150408T21

4819 注释=NONE

通道 c1: 备份集已完成, 经过时间:00:01:25

通道 c1: 正在启动增量级别 0 数据文件备份集

通道 c1: 正在指定备份集内的数据文件

备份集内包括当前控制文件

备份集内包括当前的 SPFILE

通道 c1: 正在启动段 1 08-4 -15

通道 c1: 已完成段 1 08-4 -15

段句柄=D:/BACKUP/ORA_PRIMARY_ DF_SJBZFW_04Q3T8NO_1_1_1_1.BAK 标记=TAG20150408T21

4819 注释=NONE

通道 c1: 备份集已完成, 经过时间:00:00:01

完成 backup 08-4 -15

 

我们看下具体的信息可以发现,RMAN在成功备份之后,会再次备份控制文件和SPFILE文件,所以如果文件名中不带变量标识符的话,就会报文件已存在的错误。

 

我在查询资料的时候还发现另外一种情况,原理其实一样,都是由于创建多个文件导致的。

文件大小限制

RMAN> show all

列出了许多配置参数如下:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 1 DAYS;
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; # 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 MAXPIECESIZE 100 M;
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘D:ORACLEORA92DATABASESNCFOSS.ORA’; #default

注意大小限制, 因为如果大小有限制, 其需要再创建第2,3…个备份文件,但名字却是和
1个一样,而这个时候文件名不能唯一,肯定出错了。如果大小没有限制,应该不会有问题, 有限制则要注意名称唯一性问题了.

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/186750.html

(0)
上一篇 2021年11月4日
下一篇 2021年11月4日

相关推荐

发表回复

登录后才能评论