遠端資料庫恢復

imlihj2007發表於2009-04-28

--遠端資料庫恢復

--測試常用程式碼!
select * from v$datafile;
select name from v$datafile;
create tablespace test3 datafile 'D:APPADMINISTRATORORADATAORCLtest3' size 30m;
create user test3 identified by test3 default tablespace test3
grant dba to test3
create table test as select * from v$datafile where 1=2
insert into test select * from v$datafile
select * from test as timestamp '2009-4-27 19:17:00'
select sysdate from dual --'2009-4-27 19:17:00'
recover tablespace test2 until time '2009-4-27 20:12:29' auxiliary destination 'd:'
delete from test
select * from test
rman target sys/sys auxiliary
run{
allocate auxiliary channel c1 device type disk;
recover tablespace test2 until time '2009-4-27 20:12:29' ;
}

--備份資料庫
--原資料庫
--rman catalog rman/rman target /
--backup database plus archivelog delete input
RMAN> run
2> {allocate channel d1 type disk maxpiecesize = 500m;
3> backup database plus archivelog delete input
4> format 'E:log_%d_%s_%p_%t';
5> release channel d1;
6> }

正在啟動全部恢復目錄的 resync
完成全部 resync
分配的通道: d1
通道 d1: SID=131 裝置型別=DISK

啟動 backup 於 2009-04-28 18:33:59
當前日誌已存檔
通道 d1: 正在啟動歸檔日誌備份集
通道 d1: 正在指定備份集內的歸檔日誌
輸入歸檔日誌執行緒=1 序列=19 RECID=29 STAMP=685364050
輸入歸檔日誌執行緒=1 序列=20 RECID=31 STAMP=685364139
輸入歸檔日誌執行緒=1 序列=21 RECID=34 STAMP=685373634
輸入歸檔日誌執行緒=1 序列=22 RECID=36 STAMP=685375270
輸入歸檔日誌執行緒=1 序列=23 RECID=38 STAMP=685375448
輸入歸檔日誌執行緒=1 序列=24 RECID=40 STAMP=685377109
輸入歸檔日誌執行緒=1 序列=25 RECID=42 STAMP=685377225
輸入歸檔日誌執行緒=1 序列=26 RECID=44 STAMP=685379404
輸入歸檔日誌執行緒=1 序列=27 RECID=46 STAMP=685387210
輸入歸檔日誌執行緒=1 序列=28 RECID=48 STAMP=685389138
輸入歸檔日誌執行緒=1 序列=29 RECID=50 STAMP=685391640
通道 d1: 正在啟動段 1 於 2009-04-28 18:34:11
通道 d1: 已完成段 1 於 2009-04-28 18:34:18
段控制程式碼=E:LOG_ORCL_50_1_685391642 標記=TAG20090428T183401 註釋=NONE
通道 d1: 備份集已完成, 經過時間:00:00:07
完成 backup 於 2009-04-28 18:34:18

啟動 Control File and SPFILE Autobackup 於 2009-04-28 18:34:18
段 handle=D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLAUTOBACKUP2009_04_28O1
_MF_S_685391660_4ZFPXMVT_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 於 2009-04-28 18:34:35
RMAN>


--檔案複製和資料目錄建立
(略)

--(不同機器)
--可龍資料庫
--rman catalog rman/rman target /
--restore database

-----------使用恢復管理器檔案物理恢復
C:Documents and SettingsAdministrator>rman catalog target /

恢復管理器: Release 11.1.0.6.0 - Production on 星期二 4月 28 19:19:18 2009

Copyright (c) 1982, 2007, Oracle. All rights reserved.

已連線到目標資料庫: ORCL (DBID=1213082043, 未開啟)
連線到恢復目錄資料庫

RMAN> restore database;

啟動 restore 於 28-4月 -09
正在啟動全部恢復目錄的 resync
完成全部 resync
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=150 裝置型別=DISK

通道 ORA_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
通道 ORA_DISK_1: 將資料檔案 00001 還原到 D:APPADMINISTRATORORADATAORCLSYSTE
M01.DBF
通道 ORA_DISK_1: 將資料檔案 00002 還原到 D:APPADMINISTRATORORADATAORCLSYSAU
X01.DBF
通道 ORA_DISK_1: 將資料檔案 00003 還原到 D:APPADMINISTRATORORADATAORCLUNDOT
BS01.DBF
通道 ORA_DISK_1: 將資料檔案 00004 還原到 D:APPADMINISTRATORORADATAORCLUSERS
01.DBF
通道 ORA_DISK_1: 將資料檔案 00005 還原到 D:APPADMINISTRATORORADATAORCLEXAMP
LE01.DBF
通道 ORA_DISK_1: 將資料檔案 00006 還原到 D:APPADMINISTRATORORADATAORCLTEST
通道 ORA_DISK_1: 將資料檔案 00007 還原到 D:APPADMINISTRATORORADATAORCLTEST1

通道 ORA_DISK_1: 將資料檔案 00008 還原到 D:APPADMINISTRATORORADATAORCLTEST2

通道 ORA_DISK_1: 將資料檔案 00009 還原到 D:APPADMINISTRATORORADATAORCLTEST3

通道 ORA_DISK_1: 將資料檔案 00010 還原到 D:APPADMINISTRATORORADATAORCLRMAT_
TS
通道 ORA_DISK_1: 正在讀取備份片段 E:DB_ORCL_46_1_685388997
通道 ORA_DISK_1: 段控制程式碼 = E:DB_ORCL_46_1_685388997 標記 = TAG20090428T174956
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 正在讀取備份片段 E:DB_ORCL_46_2_685388997
通道 ORA_DISK_1: 段控制程式碼 = E:DB_ORCL_46_2_685388997 標記 = TAG20090428T174956
通道 ORA_DISK_1: 已還原備份片段 2
通道 ORA_DISK_1: 正在讀取備份片段 E:DB_ORCL_46_3_685388997
通道 ORA_DISK_1: 段控制程式碼 = E:DB_ORCL_46_3_685388997 標記 = TAG20090428T174956
通道 ORA_DISK_1: 已還原備份片段 3
通道 ORA_DISK_1: 還原完成, 用時: 00:01:17
完成 restore 於 28-4月 -09

RMAN>

--下面的程式碼要在開始的時候啟動
SQL> startup nomount;
ORACLE instance started.

Total System Global Area 535662592 bytes
Fixed Size 1334380 bytes
Variable Size 201327508 bytes
Database Buffers 327155712 bytes
Redo Buffers 5844992 bytes
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01507: database not mounted


SQL> alter database mount;

Database altered.

-----------使用plsql資料庫的不完全恢復
SQL> recover database until cancel;
ORA-00279: change 1063367 generated at 04/28/2009 17:50:04 needed for thread 1
ORA-00289: suggestion :
D:APPADMINISTRATORFLASH_RECOVERY_AREAORCLARCHIVELOG2009_04_28O1_MF_1_28_4

ZFNGLG5_.ARC
ORA-00280: change 1063367 for thread 1 is in sequence #28


Specify log: {=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL> alter database open resetlogs;

Database altered.

SQL>

--下面方法應該實用9 10 11資料庫版本!
--#########################################################################
--記住:當一開啟資料檔案,控制檔案的資訊就會改變,
-- resetlogs開啟資料庫,很多資訊都會改變!尤其是備份需要的資訊


--這種辦法雖然有點垃圾,但是勉強還是可以用的
--超級垃圾的rman複製!
--複製,控制檔案(rman資訊的儲存)(用恢復目錄應該不用複製控制檔案)
-- 日誌檔案(資料庫開啟是應用,也可以不用不過資料可能會出現不一樣)
-- rman備份檔案,恢復是應用,歸檔日誌也要複製過來
-- 可以直接開啟資料庫


--沒有日誌可以用不完全恢復的辦法!
--有一種方法可以不用日誌檔案,關鍵是要有恢復資料庫足夠的日誌資訊
--兩者結合起來可以做!但是有可能會有個別資訊的丟失!


--資訊一樣¡¤
--rman target auxiliary / 這種方法就是媽的有問題
-- 失敗的原因是控制檔案被修改 !
--總結:資料庫在開啟前對資料庫檔案不做校驗的!(校驗在資料庫開啟和重建控制檔案的時候)


--應用歸檔日誌還原資料

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9879835/viewspace-1021422/,如需轉載,請註明出處,否則將追究法律責任。

相關文章