摘要:《ORA-00235 controlfile fixed table inconsistent due to concurrent update》
自從上次實施遞增備份(incremental backup),僅第一次Level 0備份成功將archivelog 也備份後刪除成功.第二次Level 0 (每週
一次) 備份就在備份archivelog 時,出現ORA-00235這錯誤訊息;
第一時間當然直接問問google大神,看看是否有值得學習的地方,各個技術網頁及oracle meta-link都表示這沒什麼大不了,資料
並不會受到什麼影響,離峰時間再重新備份就可以了.就是因為如此才會失敗了三次,本以為是不定時失敗,但是失敗三次後幾乎
以確認每次都會失敗.
原本的backup script如下:
run {
allocate channel ch1 type disk maxpiecesize 4000M;
sql 'alter system switch logfile';
backup incremental level 0 database format 'D:\backup\DB_%T_%U' tag 'DBLV0_Sun';
backup current controlfile format 'D:\backup\Ctl_%T_%U' tag 'CTL_Sun';
sql 'alter system switch logfile';
backup archivelog all delete input format 'D:\backup\ARC_%T_%U' tag 'ARC_Sun';
backup spfile format 'D:\backup\spfile_%T_%U' tag 'spfile_Sun';
release channel ch1;
}
上述 紅字表示的 alter system switch logfile, 在切換logfile 時會修改control file,造成備份archivelog 時讀取control file失敗, 試
這應該是導致ORA-00235的主因.
原本是想將備份的切點分的更為清楚,所以在備份archive log的時候,亦切換logfile,以保證備份的archive log是此時間點最完整log.
放棄這想法後,將backup script 修改如下:
run {
allocate channel ch1 type disk maxpiecesize 4000M;
sql 'alter system switch logfile';
backup incremental level 0 database format 'D:\backup\DB_%T_%U' tag 'DBLV0_Sun';
backup current controlfile format 'D:\backup\Ctl_%T_%U' tag 'CTL_Sun';
backup archivelog all delete input format 'D:\backup\ARC_%T_%U' tag 'ARC_Sun';
backup spfile format 'D:\backup\spfile_%T_%U' tag 'spfile_Sun';
release channel ch1;
}