您好,登錄后才能下訂單哦!
今天在給客戶的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';
}
出錯的是第2句backup 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個一樣,而這個時候文件名不能唯一,肯定出錯了。如果大小沒有限制,應該不會有問題, 有限制則要注意名稱唯一性問題了.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。