2011年2月23日 星期三

Oracle RMAN restore&recover

一開始使用RMAN的store and recover總以為會把資料回復到RMAN BACKUP時的資料狀態,
也就是說BACKUP後所作的操作都會失效,但卻不盡然,如果在BACKUP後有刪除一些資料或改動某些欄位,因為在REDOLOG內會把這些動作都保留,我們在做
RMAN>restore database;
RMAN>recover database;
RMAN>sql 'alter database open';
這時後的資料並不是回到backup時的資料,會連同把redo log內的動作一起做進來。如果真的想回到當時的狀態,必須改成
RMAN>restore database;
RMAN>recover database noredo;
RMAN>sql 'alter database open resetlogs';

(如果執行失敗,出現ora-01139) RESETLOGS選項只有在不完整的資料庫復原作業後才有效
回到SQL
SQL>recover database using backup controlfile until cancel;
(打cancel)
再打alter database open resetlogs;

PS.如果有用到增量備份(incremental backup)restore 會取level 0,recover會取level 1及之後的

沒有留言:

張貼留言

AI 時代的影響(2026-10-24的心得)

  寫了半個世紀程式、 曾出版《Clean Code》教全世界工程師把程式碼寫乾淨的 Robert C. Martin(Uncle Bob), 最近公開表示他已經有超過 95% 的時間不再逐行閱讀 AI 寫的程式碼。 一位一生都在強調「程式碼是寫給人讀的」宗師級人物,何以敢做出...