第5章:從開啟的資料庫備份與恢復之從開啟的資料庫備份中進行不完全恢復
/* 2008/05/28
*環境:Windows XP +Oracle10.2.0.1
*Oracle 備份與恢復培訓教程 Kenny Smith,Stephan Haisley著 周琪、韓岷、李渝琳等譯
*第二部分:使用者管理的備份與恢復
*第5章:從開啟的資料庫備份與恢復
*/
練習5.4:從開啟的資料庫備份中進行不完全恢復
1、刪除一個表
對使用者scott解瑣
SQL> alter user scott account unlock;
使用者已更改。
SQL> connect scott/tiger
ERROR:
ORA-28001: the password has expired
更改 scott 的口令
新口令:
重新鍵入新口令:
口令已更改
已連線。
SQL> select id,to_char(time,'yyyy-mm-dd HH24:MI:SS') time from test;
ID TIME
---------- -------------------
1 2008-05-28 15:33:31
刪除scott.emp表
SQL> drop table scott.emp;
表已刪除。
SQL> insert into test values(2,sysdate);
已建立 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系統已更改。
SQL> select id,to_char(time,'yyyy-mm-dd HH24:MI:SS') time from test;
ID TIME
---------- -------------------
1 2008-05-28 15:33:31
2 2008-05-28 15:42:50
不完全恢復到刪除表只前,也就是test表只有1資料。
2、重新命名一個歸檔日誌
用基於取消的恢復,當某個歸檔日誌檔案損壞或丟失時,常常使用基於取消的恢復。
確定當前日誌檔案:
SQL> select sequence#,status from v$log;
SEQUENCE# STATUS
---------- ----------------
8 CURRENT
6 INACTIVE
7 ACTIVE
當前日誌檔案序號為8,找到日誌檔案序號為7的歸檔O1_MF_1_7_43T38PB7_.ARC 重新命名為
O1_MF_1_7_43T38PB7_.ARC.backup。
3、檢查恢復
找出需要恢復到某一時間點
SQL> select sequence#,first_change#,to_char(first_time,'yyyy-mm-dd hh24:mi:ss')
2 first_time from v$log_history;
SEQUENCE# FIRST_CHANGE# FIRST_TIME
---------- ------------- -------------------
1 534907 2008-05-28 15:19:11
2 541971 2008-05-28 15:19:43
3 550006 2008-05-28 15:34:21
4 550018 2008-05-28 15:34:47
5 551127 2008-05-28 15:37:24
6 551180 2008-05-28 15:38:47
7 551263 2008-05-28 15:39:34
已選擇7行。
4、還原資料庫
關閉資料庫,把原來備份的資料檔案複製回來
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del G:\oracle\product\10.2.0\oradata\risenet\*.dbf
G:\oracle\product\10.2.0\oradata\risenet\*, 是否確認(Y/N)? y
SQL> host copy e:\backup\*.dbf G:\oracle\product\10.2.0\oradata\risenet
e:\backup\open_backup_output.lst
e:\backup\SYSTEM01.DBF
e:\backup\UNDOTBS01.DBF
e:\backup\SYSAUX01.DBF
e:\backup\USERS01.DBF
e:\backup\RISE.DBF
已複製 6 個檔案。
SQL> startup mount
ORACLE 例程已經啟動。
Total System Global Area 272629760 bytes
Fixed Size 1248476 bytes
Variable Size 104858404 bytes
Database Buffers 159383552 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
5、將資料庫恢復到某一點上
檢視哪些需要恢復
SQL> select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- --------------- ---------- --------------
1 ONLINE ONLINE 551181 28-5月 -08
2 ONLINE ONLINE 551205 28-5月 -08
3 ONLINE ONLINE 551218 28-5月 -08
4 ONLINE ONLINE 551236 28-5月 -08
5 ONLINE ONLINE 551249 28-5月 -08
SQL> alter database recover automatic until time '2008-05-28:15:33:31';
alter database recover automatic until time '2008-05-28:15:33:31'
*
第 1 行出現錯誤:
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現如下錯誤
ORA-01195: 檔案 1 的聯機備份需要更多的恢復來保持一致性
ORA-01110: 資料檔案 1: 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF'
SQL> alter database recover until cancel using backup controlfile;
alter database recover until cancel using backup controlfile
*
第 1 行出現錯誤:
ORA-00279: 更改 551181 (在 05/28/2008 15:38:48 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_6_%U_.ARC
ORA-00280: 更改 551181 (用於執行緒 1) 在序列 #6 中
注意:需要歸檔日誌時,需要把剛才重新命名的日誌改回來。
SQL> recover database using backup controlfile until time '2008-05-28:15:33:31';
ORA-00279: 更改 551263 (在 05/28/2008 15:39:34 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\2008_05_28\O1_MF
_1_7_%U_.ARC
ORA-00280: 更改 551263 (用於執行緒 1) 在序列 #7 中
指定日誌: {
cancel
介質恢復已取消。
SQL> alter database open resetlogs;
資料庫已更改。
6、驗證資料庫恢復
SQL> select * from test;
ID TIME
---------- --------------
1 28-5月 -08
SQL> select * from scott.emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 17-12月-80 800
問答:
1、某個處於備份模式的聯機表空間中的資料檔案並不發生變化,或由資料庫寫程式用更改過的資料塊予以
更新
A、True
B、False
答案:B
在熱備份模式中,資料檔案塊被持續不斷地讀出和寫入,資料檔案首部和重做內容的控制不一樣。
2、為什麼要清理歸檔日誌目的路徑中已經歸檔的重做日誌檔案?
A、這些已經歸檔的重做日誌檔案與資料庫引數檔案衝突了
B、將它們離線以防不測
C、這樣歸檔目的路徑有空間容納更多的歸檔檔案
D、以防一個新資料庫的檔案覆蓋已有的歸檔檔案
答案:BCD
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-321869/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 第5章:從開啟的資料庫備份與恢復之從開啟的資料庫備份中完全恢復資料庫
- 第5章:從開啟的資料庫備份與恢復之備份開啟的資料庫資料庫
- 【備份恢復】從備份恢復資料庫資料庫
- 第5章:從開啟的資料庫備份與恢復之備份歸檔日誌檔案資料庫
- 備份與恢復--從備份的歸檔日誌中恢復資料
- 備份與恢復:polardb資料庫備份與恢復資料庫
- 資料庫的備份與恢復資料庫
- 資料庫資料恢復—無備份,binlog未開啟的Mysql資料庫資料恢復案例資料庫資料恢復MySql
- mysql的資料庫備份與恢復MySql資料庫
- oracle資料庫的備份與恢復Oracle資料庫
- postgresql備份與恢復資料庫SQL資料庫
- mongo資料庫備份與恢復Go資料庫
- Informix資料庫備份與恢復ORM資料庫
- Oracle資料庫備份與恢復之RMANOracle資料庫
- 資料庫資料的恢復和備份資料庫
- 關閉資料庫的備份與恢復資料庫
- Oracle資料庫的備份與恢復(轉)Oracle資料庫
- Oracle 資料庫的備份與恢復(轉)Oracle資料庫
- 【備份恢復】noarchive模式下使用增量備份恢復資料庫Hive模式資料庫
- rman資料庫全庫備份與恢復資料庫
- Oracle資料庫備份與恢復之三:OS備份/使用者管理的備份與恢復Oracle資料庫
- 資料庫備份與恢復技術資料庫
- PostgreSql資料庫的備份和恢復SQL資料庫
- 資料庫備份與異機恢復——熱備份方式資料庫
- SqlServer資料庫恢復備份資料的方法SQLServer資料庫
- 達夢資料庫備份恢復資料庫
- 備份和恢復postgreSQL資料庫SQL資料庫
- Mysql資料庫備份及恢復MySql資料庫
- DB2的資料庫備份與恢復DB2資料庫
- ORACLE RAC資料庫的備份與恢復(6)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(5)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(4)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(3)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(2)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(1)Oracle資料庫
- 資料庫(表)的邏輯備份與恢復資料庫
- 【備份恢復】Oracle 資料備份與恢復微實踐Oracle
- 資料庫備份與恢復----第一課資料庫