一次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個一樣,而這個時候文件名不能唯一,肯定出錯了。如果大小沒有限制,應該不會有問題, 有限制則要注意名稱唯一性問題了.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章