利用rman全備恢復刪除的資料庫
1、在刪除後想利用RMAN全備恢復,但一開始便有問題,備份檔案沒得DBID,找了大半天也找不著,沒辦法,,直接利用RMAN備份恢復SPFILE、控制檔案和資料檔案不行。在這一過程中把目錄結構、密碼檔案都建立起來,還oradim一個例項,進行RMAN還是需要DBID。
2、只有先建一個空庫,然後再從RMAN備份進行恢復。連線進去,產生了新的DBID。
C:\Documents and Settings\admin>rman target /
恢復管理器: Release 10.2.0.1.0 - Production on 星期一 3月 29 21:14:15 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: ORCL (DBID=1242730612)
RMAN> show all;
使用目標資料庫控制檔案替代恢復目錄
RMAN 配置引數為:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\S
NCFORCL.ORA'; # default
空庫的時候找不到備份集
RMAN> list backup;
從指定的備份集檔案恢復引數檔案
RMAN> restore spfile to pfile 'e:\backup\pfile.ora' from 'E:\Backup\ORCL_FULL_08
L9GA98_1_1.BAK';
啟動 restore 於 29-3月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 已找到的自動備份: E:\Backup\ORCL_FULL_08L9GA98_1_1.BAK
通道 ORA_DISK_1: 從自動備份復原 SPFILE 已完成
完成 restore 於 29-3月 -10
從指定的備份集檔案中恢復控制檔案,錯誤就不管了!
RMAN> restore controlfile to 'e:\backup\control01.ctl' from 'E:\Backup\ORCL_FULL_08L9GA98_1_1.BAK';
啟動 restore 於 29-3月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在復原控制檔案
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 03/29/2010 21:24:47 上) 失敗
ORA-19870: 讀取備份段 E:\BACKUP\ORCL_FULL_08L9GA98_1_1.BAK 時出錯
ORA-19563: control file 標題 (檔案 E:\BACKUP\CONTROL01.CTL) 驗證失敗
RMAN> quit
RMAN-06900: 警告: 無法生成 V$RMAN_STATUS 或 V$RMAN_OUTPUT 行
RMAN-06901: 警告: 禁止更新 V$RMAN_STATUS 和 V$RMAN_OUTPUT 行
來自目標資料庫的 ORACLE 錯誤:
恢復管理器完成。
引數檔案及控制檔案恢復過來了,現在好辦了!
重新用恢復過來的引數檔案及控制檔案啟動例項
C:\Documents and Settings\admin>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 3月 29 21:50:00 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
已連線。
SQL> create spfile from pfile='e:\backup\pfile.ora';
檔案已建立。
SQL> startup mount;
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 226495364 bytes
Database Buffers 377487360 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
進入到RMAN看看效果,DBID找回來了。
C:\Documents and Settings\admin>rman target /
恢復管理器: Release 10.2.0.1.0 - Production on 星期一 3月 29 21:32:31 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1234100162, 未開啟)
同樣可以看到備份集,現在應該可以恢復資料庫了!
RMAN> list backup;
使用目標資料庫控制檔案替代恢復目錄
備份集列表
===================
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
1 Full 6.80M DISK 00:00:02 26-3月 -10
BP 關鍵字: 1 狀態: AVAILABLE 已壓縮: NO 標記: TAG20100326T000054
段名:E:\BACKUP\FULL_02L9G9LN_1_1.BAK
包括的控制檔案: Ckp SCN: 992794 Ckp 時間: 26-3月 -10
包含的 SPFILE: 修改時間: 25-3月 -10
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
2 Full 6.80M DISK 00:00:02 26-3月 -10
BP 關鍵字: 2 狀態: AVAILABLE 已壓縮: NO 標記: TAG20100326T000202
段名:E:\BACKUP\FULL_04L9G9NQ_1_1.BAK
包括的控制檔案: Ckp SCN: 992986 Ckp 時間: 26-3月 -10
包含的 SPFILE: 修改時間: 25-3月 -10
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
3 Full 6.80M DISK 00:00:02 26-3月 -10
BP 關鍵字: 3 狀態: AVAILABLE 已壓縮: NO 標記: TAG20100326T000538
段名:E:\BACKUP\FULL_06L9G9UI_1_1.BAK
包括的控制檔案: Ckp SCN: 993119 Ckp 時間: 26-3月 -10
包含的 SPFILE: 修改時間: 25-3月 -10
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
4 Full 610.73M DISK 00:00:43 26-3月 -10
BP 關鍵字: 4 狀態: AVAILABLE 已壓縮: NO 標記: TAG20100326T001034
段名:E:\BACKUP\ORCL_FULL_07L9GA7Q_1_1.BAK
備份集 4 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
1 Full 994339 26-3月 -10 D:\ORADATA\ORCL\SYSTEM01.DBF
2 Full 994339 26-3月 -10 D:\ORADATA\ORCL\UNDOTBS01.DBF
3 Full 994339 26-3月 -10 D:\ORADATA\ORCL\SYSAUX01.DBF
4 Full 994339 26-3月 -10 D:\ORADATA\ORCL\USERS01.DBF
5 Full 994339 26-3月 -10 D:\ORADATA\ORCL\MYUSER.DBF
6 Full 994339 26-3月 -10 D:\ORADATA\ORCL\PERFSTAT.DBF
RMAN> restore database;
啟動 restore 於 29-3月 -10
啟動 implicit crosscheck backup 於 29-3月 -10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
已交叉檢驗的 4 物件
完成 implicit crosscheck backup 於 29-3月 -10
啟動 implicit crosscheck copy 於 29-3月 -10
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 於 29-3月 -10
搜尋恢復區域中的所有檔案
正在編制檔案目錄...
沒有為檔案編制目錄
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:\ORADATA\ORCL\SYSTEM01.DBF
正將資料檔案00002恢復到D:\ORADATA\ORCL\UNDOTBS01.DBF
正將資料檔案00003恢復到D:\ORADATA\ORCL\SYSAUX01.DBF
正將資料檔案00004恢復到D:\ORADATA\ORCL\USERS01.DBF
正將資料檔案00005恢復到D:\ORADATA\ORCL\MYUSER.DBF
正將資料檔案00006恢復到D:\ORADATA\ORCL\PERFSTAT.DBF
通道 ORA_DISK_1: 正在讀取備份段 E:\BACKUP\ORCL_FULL_07L9GA7Q_1_1.BAK
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = E:\BACKUP\ORCL_FULL_07L9GA7Q_1_1.BAK 標記 = TAG20100326T001034
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:45
完成 restore 於 29-3月 -10
成功恢復!
RMAN> alter database open resetlogs;
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: alter db 命令 (在 03/29/2010 21:36:30 上) 失敗
ORA-01152: 檔案 1 沒有從過舊的備份中恢復
ORA-01110: 資料檔案 1: 'D:\ORADATA\ORCL\SYSTEM01.DBF'
出現這樣的錯誤,很奇怪!
檢視change#沒什麼不一樣,,最終還是打不開!
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
993690
SQL> select file#,checkpoint_change# from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 994339
2 994339
3 994339
4 994339
5 994339
6 994339
已選擇6行。
SQL> select file#,checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 994339
2 994339
3 994339
4 994339
5 994339
6 994339
已選擇6行。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 994339 (在 03/26/2010 00:10:35 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:\ORADATA\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2010_03_29\O1_MF_1_20_%U_.
ORA-00280: 更改 994339 (用於執行緒 1) 在序列 #20 中
指定日誌:
{
cancel
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現如下錯誤
ORA-01194: 檔案 3 需要更多的恢復來保持一致性
ORA-01110: 資料檔案 3: 'D:\ORADATA\ORCL\SYSAUX01.DBF'
ORA-01112: 未啟動介質恢復
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出現錯誤:
ORA-01194: 檔案 3 需要更多的恢復來保持一致性
ORA-01110: 資料檔案 3: 'D:\ORADATA\ORCL\SYSAUX01.DBF'
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 994339 (在 03/26/2010 00:10:35 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
D:\ORADATA\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2010_03_29\O1_MF_1_20_%U_.
ORA-00280: 更改 994339 (用於執行緒 1) 在序列 #20 中
指定日誌:
{
cancel
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現如下錯誤
ORA-01194: 檔案 3 需要更多的恢復來保持一致性
ORA-01110: 資料檔案 3: 'D:\ORADATA\ORCL\SYSAUX01.DBF'
ORA-01112: 未啟動介質恢復
SQL> select file#,checkpoint_change# from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 994339
2 994339
3 994339
4 994339
5 994339
6 994339
已選擇6行。
SQL> select file#,checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 994339
2 994339
3 994339
4 994339
5 994339
6 994339
已選擇6行。
反正是有問題,,想想可能與新建的空庫有關,於是關閉資料庫,刪除所有資料檔案,
SQL> shutdown immediate;
ORA-01109: 資料庫未開啟
已經解除安裝資料庫。
ORACLE 例程已經關閉。
C:\Documents and Settings\admin>rman target /
恢復管理器: Release 10.2.0.1.0 - Production on 星期一 3月 29 22:01:49 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1234100162, 未開啟)
RMAN> restore database;
啟動 restore 於 29-3月 -10
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:\ORADATA\ORCL\SYSTEM01.DBF
正將資料檔案00002恢復到D:\ORADATA\ORCL\UNDOTBS01.DBF
正將資料檔案00003恢復到D:\ORADATA\ORCL\SYSAUX01.DBF
正將資料檔案00004恢復到D:\ORADATA\ORCL\USERS01.DBF
正將資料檔案00005恢復到D:\ORADATA\ORCL\MYUSER.DBF
正將資料檔案00006恢復到D:\ORADATA\ORCL\PERFSTAT.DBF
通道 ORA_DISK_1: 正在讀取備份段 E:\BACKUP\ORCL_FULL_07L9GA7Q_1_1.BAK
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = E:\BACKUP\ORCL_FULL_07L9GA7Q_1_1.BAK 標記 = TAG20100326T001034
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:55
完成 restore 於 29-3月 -10
重新啟動資料庫,,OK!
SQL> startup mount;
ORACLE 例程已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 226495364 bytes
Database Buffers 377487360 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
SQL> alter database open resetlogs;
資料庫已更改。
總結:
1、走歪路的原因出現在第一步,,應該來說只需要找個一個引數檔案將例項啟動到NOMOUNT狀態即可恢復引數檔案及控制檔案,後續的工作就簡單多了·!
2、在備份的時候要注意將DBID包含在備份檔名中,這樣會省去更多的麻煩!來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9932141/viewspace-630723/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- rman資料庫全庫備份與恢復資料庫
- rman 全庫恢復asm資料庫ASM資料庫
- 利用RMAN恢復整個資料庫資料庫
- 【備份恢復】不使用rman工具就能恢復被rm刪除的資料檔案案例
- 利用rman恢復來複制資料庫資料庫
- 刪除表空間,有rman全備的恢復(使用dbms_backup_restore來進行恢復)REST
- Rman Crosscheck刪除失效歸檔-備份恢復ROS
- 【北亞資料庫資料恢復】使用delete未加where子句刪除全表資料的Mysql資料庫資料恢復資料庫資料恢復deleteMySql
- 【備份恢復】RMAN catalog 恢復目錄資料庫資料庫
- 有整庫備份的情況rman恢復全庫
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- 用10.2.0.1RMAN全備恢復10.2.0.4資料庫,透過資料庫
- rman全備資料庫資料庫
- RMAN恢復資料庫資料庫
- RMAN備份恢復典型案例——資料庫卡頓資料庫
- 非RMAN熱備份資料庫和恢復資料庫
- Oracle資料庫備份與恢復之RMANOracle資料庫
- Sybase ASE資料庫恢復,Sybase資料恢復,資料誤刪除恢復工具READSYBDEVICE資料庫資料恢復dev
- ORACLE利用STANDBY端RMAN備份進行資料恢復Oracle資料恢復
- 【資料庫資料恢復】LINUX環境下ORACLE資料庫誤刪除的資料恢復資料庫資料恢復LinuxOracle
- 恢復Oracle資料庫誤刪除資料的語句Oracle資料庫
- rman備份恢復-rman恢復資料檔案測試
- 【oracle資料庫資料恢復】誤操作導致的資料庫誤刪除的資料恢復案例Oracle資料庫資料恢復
- 實驗1:利用BBED工具恢復刪除的資料行
- MySQL資料庫表誤刪除恢復(一)MySql資料庫
- rman恢復資料庫--用備份的控制檔案資料庫
- RMAN備份恢復——RAC環境資料庫的備份(zt)資料庫
- RMAN備份恢復--RAC環境資料庫的備份(十)資料庫
- RMAN備份恢復——RAC環境資料庫的備份(一)資料庫
- 【資料庫資料恢復】HP-UX系統ORACLE資料庫被誤刪除的資料恢復資料庫資料恢復UXOracle
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- Mysql資料庫delete刪除後資料恢復報告MySql資料庫delete資料恢復
- oracle恢復誤刪除資料Oracle
- 誤刪除資料檔案、控制檔案的非RMAN恢復方法
- 只存在RMAN備份片的資料庫恢復過程資料庫
- Sybase SQL Anywhere(ASA)資料庫恢復,ASA資料恢復,資料誤刪除恢復工具ReadASADBSQL資料庫資料恢復
- 【北亞資料恢復】誤刪除oracle表和誤刪除oracle表資料的資料恢復方法資料恢復Oracle
- standby全庫rman備份檔案恢復到異機