在oracle10g 10.2.0.1上測試不完全恢復_recover database until scn
群友談到測試不完全恢復與自己預測結果不符,遂動手進行如下測試:
1,構建測試使用者及專用表空間zxy
create tablespace zxy datafile 'c:\zxy.dbf' size 10m;
create user zxy identified by system default tablespace zxy account unlock;
grant resource,connect to zxy;
2,以zxy使用者身份構建表tt,同時插入資料
conn zxy/system
create table tt(a int);
insert into tt values(1);
commit;
conn /as sysdba
alter system switch logfile;
alter system archivelog current;
3,透過rman對資料庫進行一個全備(一併備份所有的歸檔日誌及控制檔案)
rman target /
backup database format 'c:\%d_%u_fulldbbak' tag='fulldbbak';
backup current controlfile format 'c:\%d_%u_contolfilebak' tag='controlbak';
--因為在實際生產環境中,當你備份後,資料庫結構及相關內容是一直動態變化的,我一會還原恢復時,是從這個控制檔案備份為基礎的
backup archivelog all delete input format 'c:\%d_%u_archivebak' tag='archbak';
4,為了實行不完全恢復,登陸資料庫檢視dbid及current_scn
---大家可以想下,為何要它們的資訊,因為當你採用控制檔案備份,恢復控制檔案時,此時要恢復的目標資料庫並沒有載入controlfile(它儲存dbid及current_scn),所以要得到它的資訊,你必須手工指定它們
sqlplus '/as sysdba'
select current_scn,dbid from v$database;
5,為了模擬生產環境的資料變更,繼續建立表空間及使用者haha,並插入測試資料
create tablespace haha datafile 'c:\ha1.dbf' size 10m;
create user haha identified by system default tablespace haha account unlock;
grant resource,connect to zxy;
conn haha/system
create table ha1(a varchar(2));
insert into ha1 values('xi');
commit;
conn /as sysdba
alter system switch logfile;
alter system archivelog current;
6,dba一個drop tablespace或者損壞zxy使用者的對應動作,馬上恢復zxy使用者對應的資料(注意:不含之後建立的haha使用者資料)
分為幾個小步驟:
a,rman target /
b,set dbid=第4步查到的dbid;要不然會報錯
c,restore controlfile from '第3步控制檔案備份的具體路徑';
--注:你要透過from tag會報錯,原因很簡單,備份資訊儲存在控制檔案中, 此時控制檔案未開啟
d,alter database mount;--mount 資料庫,為下面工作打好基礎
e,restore database;--還原資料庫,維護觀察過程,就是應用以上全庫備份的過程
f,recover database until scn ' 第4步查到的scn';--大量應用歸檔及線上日誌
g,sql 'alter database open resetlogs';--不完全恢復後,必須以resetlogs開啟資料庫
後記:
不完全恢復,請馬上對資料庫進行全庫備份,因為之前的備份全然失效
透過此測試,我們可以發現,沒有配置catalog庫的生產庫或者測試庫,一旦出故障,是多麼的脆弱及恢復麻煩
1,構建測試使用者及專用表空間zxy
create tablespace zxy datafile 'c:\zxy.dbf' size 10m;
create user zxy identified by system default tablespace zxy account unlock;
grant resource,connect to zxy;
2,以zxy使用者身份構建表tt,同時插入資料
conn zxy/system
create table tt(a int);
insert into tt values(1);
commit;
conn /as sysdba
alter system switch logfile;
alter system archivelog current;
3,透過rman對資料庫進行一個全備(一併備份所有的歸檔日誌及控制檔案)
rman target /
backup database format 'c:\%d_%u_fulldbbak' tag='fulldbbak';
backup current controlfile format 'c:\%d_%u_contolfilebak' tag='controlbak';
--因為在實際生產環境中,當你備份後,資料庫結構及相關內容是一直動態變化的,我一會還原恢復時,是從這個控制檔案備份為基礎的
backup archivelog all delete input format 'c:\%d_%u_archivebak' tag='archbak';
4,為了實行不完全恢復,登陸資料庫檢視dbid及current_scn
---大家可以想下,為何要它們的資訊,因為當你採用控制檔案備份,恢復控制檔案時,此時要恢復的目標資料庫並沒有載入controlfile(它儲存dbid及current_scn),所以要得到它的資訊,你必須手工指定它們
sqlplus '/as sysdba'
select current_scn,dbid from v$database;
5,為了模擬生產環境的資料變更,繼續建立表空間及使用者haha,並插入測試資料
create tablespace haha datafile 'c:\ha1.dbf' size 10m;
create user haha identified by system default tablespace haha account unlock;
grant resource,connect to zxy;
conn haha/system
create table ha1(a varchar(2));
insert into ha1 values('xi');
commit;
conn /as sysdba
alter system switch logfile;
alter system archivelog current;
6,dba一個drop tablespace或者損壞zxy使用者的對應動作,馬上恢復zxy使用者對應的資料(注意:不含之後建立的haha使用者資料)
分為幾個小步驟:
a,rman target /
b,set dbid=第4步查到的dbid;要不然會報錯
c,restore controlfile from '第3步控制檔案備份的具體路徑';
--注:你要透過from tag會報錯,原因很簡單,備份資訊儲存在控制檔案中, 此時控制檔案未開啟
d,alter database mount;--mount 資料庫,為下面工作打好基礎
e,restore database;--還原資料庫,維護觀察過程,就是應用以上全庫備份的過程
f,recover database until scn ' 第4步查到的scn';--大量應用歸檔及線上日誌
g,sql 'alter database open resetlogs';--不完全恢復後,必須以resetlogs開啟資料庫
後記:
不完全恢復,請馬上對資料庫進行全庫備份,因為之前的備份全然失效
透過此測試,我們可以發現,沒有配置catalog庫的生產庫或者測試庫,一旦出故障,是多麼的脆弱及恢復麻煩
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-630182/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- recover database until timeDatabase
- recover database until cancel和 recover database區別Database
- 冷備手工完全恢復(recover database,recover tablespace,recover datafile)Database
- oracle基於scn的不完全恢復Oracle
- 【備份與恢復】使用Flashback Database(不完全恢復)Database
- recover database until cancel using backup controlfileDatabase
- Recover database using backup controlfile until cancelDatabase
- standby庫,在sqlplus下用recover standby database進行手工恢復SQLDatabase
- 恢復到特定點(時間點、scn、日誌序列號),rman不完全恢復
- 小記基於控制檔案的scn不完全恢復
- 使用RMAN的不完全恢復-基於時間/SCN/日誌序列
- oracle 學習總結篇四:不完全恢復測試用例Oracle
- linux下oracle rman 複製資料庫技術(until cancel不完全恢復)LinuxOracle資料庫
- 【Mysql】完全恢復與不完全恢復MySql
- SQLSERVER恢復測試SQLServer
- Oracle恢復測試Oracle
- Oracle SCN機制———在備份與恢復中Oracle
- Oracle 不完全恢復Oracle
- rman 恢復機制與恢復測試
- SCN、Checkpoint、例項恢復介質恢復理解
- 【轉】 oracle備份恢復之recover database的四條語句區別OracleDatabase
- Oracle RMAN恢復測試Oracle
- oracle實驗記錄 (恢復-不完全恢復)Oracle
- 【備份與恢復】控制檔案的恢復(不完全恢復)
- oracle基於SCN增量恢復Oracle
- 利用Omni Recover恢復IOS資料iOS
- 恢復之RAC資料庫RECOVER資料庫
- Recover_DatabaseDatabase
- rman recover databaseDatabase
- Oracle10g Flashback database功能恢復使用者錯誤(zt)OracleDatabase
- 使用Oracle10g Flashback database功能恢復使用者錯誤OracleDatabase
- RMAN全庫【完全恢復/不完全恢復brief version】
- 12C針對cdb全備與 PDB執行不完全恢復(基於SCN)
- BBED 修改oracle 資料檔案的 SCN 號來做資料庫不完全恢復。Oracle資料庫
- Oracle 11g 主動選擇的不完全恢復,基於SCN的,DML操作Oracle
- 控制檔案恢復測試
- mysql備份恢復測試MySql
- 資料庫不完全恢復。資料庫