第5章:從開啟的資料庫備份與恢復之從開啟的資料庫備份中完全恢復
/* 2008/05/28
*環境:Windows XP +Oracle10.2.0.1
*Oracle 備份與恢復培訓教程 Kenny Smith,Stephan Haisley著 周琪、韓岷、李渝琳等譯
*第二部分:使用者管理的備份與恢復
*第5章:從開啟的資料庫備份與恢復
*/
練習5.3:從開啟的資料庫備份中完全恢復
1、 破壞資料庫
SQL> select max(create_date) from tina.date_log;
MAX(CREATE_DAT
--------------
27-5月 -08
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF
SQL> alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.D
BF' offline;
資料庫已更改。
SQL> alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF'
offline;
資料庫已更改。
用作業系統命令刪除G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\的USER01.DBF和RISE.DBF檔案。
SQL> alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\user01.db
f' online;
alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\user01.dbf' on
line
*
第 1 行出現錯誤:
ORA-01516: 不存在的日誌檔案, 資料檔案或臨時檔案
"G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\user01.dbf"
SQL> alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\rise.dbf'
online;
alter database datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\rise.dbf' onli
ne
*
第 1 行出現錯誤:
ORA-01157: 無法標識/鎖定資料檔案 5 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 5: 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF'
2、還原丟失的資料檔案
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount
ORACLE 例程已經啟動。
Total System Global Area 272629760 bytes
Fixed Size 1248476 bytes
Variable Size 100664100 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
檢查哪個檔案需要恢復
SQL> select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- -------------------- ---------- --------------
4 OFFLINE OFFLINE FILE NOT FOUND 0
5 OFFLINE OFFLINE FILE NOT FOUND 0
SQL> l
1* select name,status from v$datafile
SQL> /
NAME STATUS
-------------------------------------------------- -------
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01. SYSTEM
DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01 ONLINE
.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01. ONLINE
DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.D RECOVER
BF
NAME STATUS
-------------------------------------------------- -------
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF RECOVER
SQL> host copy E:\backup\users01.dbf G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET
已複製 1 個檔案。
SQL> host copy E:\backup\rise.dbf G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET
已複製 1 個檔案。
SQL> select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- -------------------- ---------- --------------
4 OFFLINE OFFLINE 572686 27-5月 -08
5 OFFLINE OFFLINE 572699 27-5月 -08
3、恢復還原的資料檔案
把備份歸檔日誌複製到資料庫的日誌路徑中,恢復時需要用到。
SQL> host copy E:\backup\ch5\* G:\oracle\product\10.2.0\flash_recovery_area\RIS
ENET\ARCHIVELOG\2008_05_27
SQL> recover datafile 4;
ORA-00279: 更改 572686 (在 05/27/2008 18:53:23 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_26_%U_.ARC
ORA-00280: 更改 572686 (用於執行緒 1) 在序列 #26 中
指定日誌: {
auto
ORA-00279: 更改 572713 (在 05/27/2008 18:53:25 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_27_%U_.ARC
ORA-00280: 更改 572713 (用於執行緒 1) 在序列 #27 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_27\O1_M
F_1_26_43QT1598_.ARC'
ORA-00279: 更改 598586 (在 05/28/2008 09:04:18 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_28_%U_.ARC
ORA-00280: 更改 598586 (用於執行緒 1) 在序列 #28 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_27_43SCWOKK_.ARC'
ORA-00279: 更改 605851 (在 05/28/2008 10:14:12 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_29_%U_.ARC
ORA-00280: 更改 605851 (用於執行緒 1) 在序列 #29 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_28_43SHZNXR_.ARC'
ORA-00279: 更改 605859 (在 05/28/2008 10:14:33 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_30_%U_.ARC
ORA-00280: 更改 605859 (用於執行緒 1) 在序列 #30 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_29_43SJ099Q_.ARC'
ORA-00279: 更改 606240 (在 05/28/2008 10:20:35 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_31_%U_.ARC
ORA-00280: 更改 606240 (用於執行緒 1) 在序列 #31 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_30_43SJCMNY_.ARC'
ORA-00279: 更改 606482 (在 05/28/2008 10:26:14 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_32_%U_.ARC
ORA-00280: 更改 606482 (用於執行緒 1) 在序列 #32 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_31_43SJP6Z7_.ARC'
ORA-00279: 更改 606547 (在 05/28/2008 10:27:51 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_33_%U_.ARC
ORA-00280: 更改 606547 (用於執行緒 1) 在序列 #33 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_32_43SJS797_.ARC'
ORA-00279: 更改 606593 (在 05/28/2008 10:29:05 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_34_%U_.ARC
ORA-00280: 更改 606593 (用於執行緒 1) 在序列 #34 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_33_43SJVK97_.ARC'
ORA-00279: 更改 607210 (在 05/28/2008 10:43:12 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_35_%U_.ARC
ORA-00280: 更改 607210 (用於執行緒 1) 在序列 #35 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_34_43SKP10G_.ARC'
ORA-00279: 更改 607326 (在 05/28/2008 10:45:57 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_36_%U_.ARC
ORA-00280: 更改 607326 (用於執行緒 1) 在序列 #36 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_35_43SKV60Y_.ARC'
已應用的日誌。
完成介質恢復。
SQL> recover datafile 5;
ORA-00279: 更改 572699 (在 05/27/2008 18:53:24 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_26_%U_.ARC
ORA-00280: 更改 572699 (用於執行緒 1) 在序列 #26 中
指定日誌: {
auto
ORA-00279: 更改 572713 (在 05/27/2008 18:53:25 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_27_%U_.ARC
ORA-00280: 更改 572713 (用於執行緒 1) 在序列 #27 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_27\O1_M
F_1_26_43QT1598_.ARC'
ORA-00279: 更改 598586 (在 05/28/2008 09:04:18 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_28_%U_.ARC
ORA-00280: 更改 598586 (用於執行緒 1) 在序列 #28 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_27_43SCWOKK_.ARC'
ORA-00279: 更改 605851 (在 05/28/2008 10:14:12 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_29_%U_.ARC
ORA-00280: 更改 605851 (用於執行緒 1) 在序列 #29 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_28_43SHZNXR_.ARC'
ORA-00279: 更改 605859 (在 05/28/2008 10:14:33 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_30_%U_.ARC
ORA-00280: 更改 605859 (用於執行緒 1) 在序列 #30 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_29_43SJ099Q_.ARC'
ORA-00279: 更改 606240 (在 05/28/2008 10:20:35 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_31_%U_.ARC
ORA-00280: 更改 606240 (用於執行緒 1) 在序列 #31 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_30_43SJCMNY_.ARC'
ORA-00279: 更改 606482 (在 05/28/2008 10:26:14 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_32_%U_.ARC
ORA-00280: 更改 606482 (用於執行緒 1) 在序列 #32 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_31_43SJP6Z7_.ARC'
ORA-00279: 更改 606547 (在 05/28/2008 10:27:51 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_33_%U_.ARC
ORA-00280: 更改 606547 (用於執行緒 1) 在序列 #33 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_32_43SJS797_.ARC'
ORA-00279: 更改 606593 (在 05/28/2008 10:29:05 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_34_%U_.ARC
ORA-00280: 更改 606593 (用於執行緒 1) 在序列 #34 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_33_43SJVK97_.ARC'
ORA-00279: 更改 607210 (在 05/28/2008 10:43:12 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_35_%U_.ARC
ORA-00280: 更改 607210 (用於執行緒 1) 在序列 #35 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_34_43SKP10G_.ARC'
ORA-00279: 更改 607326 (在 05/28/2008 10:45:57 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_36_%U_.ARC
ORA-00280: 更改 607326 (用於執行緒 1) 在序列 #36 中
ORA-00278: 此恢復不再需要日誌檔案
'G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_M
F_1_35_43SKV60Y_.ARC'
已應用的日誌。
完成介質恢復。
SQL>
再次檢查需要恢復的檔案。
SQL> select * from v$recover_file;
未選定行
SQL> select name,status from v$datafile;
NAME STATUS
-------------------------------------------------- -------
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01. SYSTEM
DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01 ONLINE
.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01. ONLINE
DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.D ONLINE
BF
NAME STATUS
-------------------------------------------------- -------
G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF ONLINE
注意:如果恢復時需要歸檔的日誌,還需要把備份的日誌複製到資料庫的日誌路徑中。
4、確認資料庫恢復
SQL> alter database open;
資料庫已更改。
SQL> select max(create_date) from tina.date_log;
MAX(CREATE_DAT
--------------
27-5月 -08
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-321788/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份與恢復:polardb資料庫備份與恢復資料庫
- 資料庫資料恢復—無備份,binlog未開啟的Mysql資料庫資料恢復案例資料庫資料恢復MySql
- 資料庫備份恢復資料庫
- postgresql備份與恢復資料庫SQL資料庫
- 資料庫備份與恢復技術資料庫
- PostgreSql資料庫的備份和恢復SQL資料庫
- SqlServer資料庫恢復備份資料的方法SQLServer資料庫
- Mysql資料庫備份及恢復MySql資料庫
- 達夢資料庫備份恢復資料庫
- Linux下MySQL資料庫的備份與恢復LinuxMySql資料庫
- MySQL-19.資料庫備份與恢復MySql資料庫
- mongodb資料庫備份與恢復(資料庫資料遷移)MongoDB資料庫
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- Mongo 資料庫備份和恢復命令Go資料庫
- pg_dump 備份,恢復資料庫資料庫
- Dedecms資料庫恢復與備份的兩種方法資料庫
- 淺談達夢資料庫的備份與恢復資料庫
- ORACLE DG從庫 Rman備份恢復Oracle
- Mysql資料備份與恢復MySql
- RAC備份恢復之Voting備份與恢復
- mysqldump使用方法(MySQL資料庫的備份與恢復)MySql資料庫
- vivo 資料庫備份恢復系統演化資料庫
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- PG-pg_dump備份/恢復資料庫資料庫
- 時序資料庫InfluxDB之備份和恢復策略資料庫UX
- 時序資料庫 InfluxDB 之備份和恢復策略資料庫UX
- RabbitMQ如何備份與恢復資料MQ
- 分散式文件儲存資料庫之MongoDB備份與恢復分散式資料庫MongoDB
- gitlab的資料備份和恢復Gitlab
- NoSQL 資料庫案例實戰 -- MongoDB資料備份、恢復SQL資料庫MongoDB
- RMAN備份恢復典型案例——資料庫卡頓資料庫
- 如何恢復Hyper Backup備份的資料
- ClickHouse資料庫單機安裝及備份恢復資料庫
- 從dataguard備份的恢復機制
- 如何在HarmonyOS對資料庫進行備份,恢復與加密資料庫加密
- 磁碟資料恢復及備份工具資料恢復
- 資料庫資料恢復-oracle資料庫報錯無法開啟的如何恢復資料?資料庫資料恢復Oracle
- MSSQL-最佳實踐-資料庫恢復模式與備份的關係SQL資料庫模式
- 萬里GreatDB資料庫的學習之路--GreatDB備份與恢復(4)資料庫