說明:
1,58資料庫有完整全備份在磁帶機中(包括controlfile),但丟失了第三放備份的控制檔案。
2,58伺服器宕機,無法修復,需要用將資料恢復至53伺服器中。
操作流程如下:
1) 重複上述步驟(1)至步驟(5),除了controlfile無法還原至指定目的地。
2) 檢視rman最後一次備份的日誌,
獲得備份的控制檔案的備份集名稱:bk_u02io9uqc_s2_p1_t629472076
3) 把資料庫開啟至nomount的狀態
其下演示恢復控制檔案至指定路徑下:
sql> startup nomount
oracle instance started.
total system global area 735150240 bytes
fixed size 73888 bytes
variable size 256655360 bytes
database buffers 471859200 bytes
redo buffers 6561792 bytes
#####
開始還原控制檔案
#####
sql> declare
2 devtype varchar2(256);
3 done boolean;
4 begin
5 devtype:=sys.dbms_backup_restore.deviceallocate(type=>'sbt_tape',ident=>'t1');
6 sys.dbms_backup_restore.restoresetdatafile;
7 sys.dbms_backup_restore.restorecontrolfileto(cfname=>'/u01/control.bak');
8 sys.dbms_backup_restore.restorebackuppiece(done=>done,handle=>
'bk_u02io9uqc_s2_p1_t629472076',params=>'env=(nb_ora_client=backupdatabase)');
9 sys.dbms_backup_restore.devicedeallocate;
10 end;
11 /
pl/sql procedure successfully completed.
#####
控制檔案還原完成
#####
[oracle@ctdb04 u01]$ ls co*
control.bak
其下演示直接在nomount的狀態下恢復歸檔日誌檔案。
檢查rman備份日誌得到歸檔日誌備份集合的名稱為arch-s3-p1-t629474852
#####
還原歸檔日誌檔案至預設路徑下
#####
sql> declare
2 devtype varchar2(256);
3 done boolean;
4 begin
5 devtype:=sys.dbms_backup_restore.deviceallocate (type=>'sbt_tape',ident=>'t1');
6 sys.dbms_backup_restore.restoresetarchivedlog;
7 sys.dbms_backup_restore.restorearchivedlogrange(0,281474976710655);
8 sys.dbms_backup_restore.restorebackuppiece(done=>done,handle=>
'arch-s3-p1-t629474852', params=>'env=(nb_ora_client=backupdatabase)');
11 sys.dbms_backup_restore.devicedeallocate;
12 end;
13 /
pl/sql procedure successfully completed.
#####
歸檔日誌檔案
還原完成
#####
其下演示直接在nomount的狀態下恢復歸檔資料檔案。
檢查rman備份日誌得到資料檔案備份集合的名稱為arch-s3-p1-t629474852
在mount
的狀態下通過此
sql語句
select
'sys.dbms_backup_restore.restoredatafileto(dfnumber=>'
||file# ||
',toname=>'''
||name||
''''
|| ');'
fromv$datafile;
生成如下所示:
…….把資料庫開啟至
nomount
的狀態 sql> conn / as sysdba
connected.
#####
還原資料檔案至預設路徑下
#####
sql> declare
2 devtype varchar2(256);
3 done boolean;
4 begin
5 devtype:=sys.dbms_backup_restore.deviceallocate (type=>'sbt_tape',ident=>'t1');
6 sys.dbms_backup_restore.restoresetdatafile;
51 sys.dbms_backup_restore.restorebackuppiece(done=>done,
handle=>'bk_u02io9uqc_s2_p1_t629472076',params=>'env=(nb_ora_client=backupdatabase)');
53 sys.dbms_backup_restore.devicedeallocate;
54 end;
55 /
pl/sql procedure successfully completed.
#####
資料檔案還原完成
#####
其下演示完成控制檔案,資料檔案,歸檔日誌檔案的還原後進行恢復的流程:
sql> alter database mount;
database altered.
sql> alter database open;
alter database open;
error at line 1:
ora-01589: must use resetlogs or noresetlogs option for database open
sql> recover database using backup controlfile until cancel;
ora-00279: change 73242185 generated at 07/12/2007 15:20:41 needed for thread1
ora-00280: change 7324213885 for thread 1 is in sequence #482
specify log:
auto
ora-00279: change 7324213955 generated at 08/01/2007 14:07:05 needed for thread1
ora-00280: change 7324213955 for thread 1 is in sequence #483
needed for this recovery
ora-00308: cannot open archived log
ora-27037: unable to obtain file status
linux error: 2: no such file or directory
additional information: 3
sql> recover database using backup controlfile until cancel;
ora-00279: change 7324213955 generated at 08/01/2007 14:07:05 needed for thread1
ora-00280: change 7324213955 for thread 1 is in sequence #483
specify log:
cancel
media recovery cancelled.
sql> alter database open resetlogs;
database altered.
sql> select count(*) from v$session;
count(*)
----------
28
vertias異機恢復過程 1
說明 10.10.0.58 backupdatabase 假設此為使用中重要db 通過veritas 全庫備份至磁帶機。10.10.0.53 ctdb04 假設此為新伺服器,無資料庫。10.10.0.59 cdim veritas server軟體伺服器,windows 2000 說明 1,58資料...
NBU Rman異機恢復Oracle
前段時間乙個億級分割槽表,被分割成歷史表和業務表,歷史表中保留15天以外的資料,每天都會從業務表中的15天外的資料copy到歷史表,並刪除業務表15天外的資料,邏輯也很簡單,但插入歷史表的where 條件寫的不是對,導致資料沒插入,每天還從業務表中刪除了。總之丟失了10天的業務歷史資料,不巧的是客戶...
RMAN異機恢復快速參考
應用場景 伺服器a為正常執行的生產環境,需要在伺服器b上部署一套相同環境做測試。一 伺服器a備份資料庫 1.2 備份指令碼內容 二 伺服器b恢復資料庫 2.1 伺服器b安裝資料庫軟體 2.2 啟動例項到nomount狀態 指定pfile檔案 2.3 rman恢復控制檔案,確定備份集有效性 2.4 r...