《ORA-00235 controlfile fixed table inconsistent due to concurrent update》

摘要:《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;

}