日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

第19章 归档模式下的数据库恢复

發(fā)布時間:2025/7/14 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第19章 归档模式下的数据库恢复 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. Restore(修復(fù))將數(shù)據(jù)文件帶回到過去(備份的時間點)+Recover(恢復(fù))恢復(fù)從備份到數(shù)據(jù)文件崩潰這段時間內(nèi)所有提交的數(shù)據(jù)=>數(shù)據(jù)庫的完全恢復(fù)(所有提交的數(shù)據(jù)都恢復(fù));

?1)修復(fù)損壞的或丟失的操作系統(tǒng)文件就是使用操作系統(tǒng)命令或其他工具將備份的數(shù)據(jù)文件復(fù)制回來以替換已經(jīng)損壞或丟失的操作系統(tǒng)的文件;

?2)恢復(fù)就是使用SQL*Plus的recover命令將備份開始到數(shù)據(jù)文件崩潰這段時間內(nèi)所有提交的數(shù)據(jù)從歸檔日志文件或重做日志文件寫回到修復(fù)的數(shù)據(jù)文件。

2. 在歸檔模式下進行數(shù)據(jù)庫全恢復(fù)時數(shù)據(jù)庫所經(jīng)過的狀態(tài)如下:

?1)利用備份修復(fù)(Restores)損壞或丟失的數(shù)據(jù)文件,即將備份的操作系統(tǒng)文件復(fù)制回數(shù)據(jù)庫中原來的位置;

?2)將從 備份到系統(tǒng)崩潰這段時間內(nèi)的所有提交數(shù)據(jù)由歸檔日志文件和聯(lián)機重做日志文件中還原成數(shù)據(jù)文件所需的數(shù)據(jù)塊;

?3)此時數(shù)據(jù)庫中包含了所有的提交數(shù)據(jù),也可能包含沒有提交的數(shù)據(jù);

?4)系統(tǒng)使用還原(回滾)數(shù)據(jù)塊回滾未提交的數(shù)據(jù);

?5)最后,數(shù)據(jù)庫到達(dá)了已恢復(fù)的狀態(tài)。

3. 數(shù)據(jù)庫的完全恢復(fù)就是所有提交數(shù)據(jù)都得以恢復(fù),而數(shù)據(jù)庫的 不完全恢復(fù)是將數(shù)據(jù)庫恢復(fù)到系統(tǒng)崩潰之前的某個時間點。

4. 進行數(shù)據(jù)庫的完全恢復(fù)時要進行如下的操作:

?1)將要恢復(fù)的文件或表空間設(shè)為脫機(offline),但是不包括系統(tǒng)表空間或活動的還原表空間;

?2)僅修復(fù)損壞的或丟失的操作系統(tǒng)文件,不修復(fù)(Restore)其他的任何文件;

?3)恢復(fù)數(shù)據(jù)文件。

5. 歸檔模式下的數(shù)據(jù)庫全恢復(fù)優(yōu)點:

?1)在恢復(fù)時不必關(guān)閉數(shù)據(jù)庫;

?2)所有的提交數(shù)據(jù)都可以恢復(fù);

?3)僅需要修復(fù)損壞的或丟失的數(shù)據(jù)文件;

?4)恢復(fù)的全部時間=將損壞的或丟失的數(shù)據(jù)文件的備份復(fù)制回數(shù)據(jù)庫的時間+使用歸檔日志文件或重做日志文件恢復(fù)提交的數(shù)據(jù)所用的時間;

6. 歸檔模式下的數(shù)據(jù)庫全恢復(fù)缺點:

?1)數(shù)據(jù)庫必須運行在歸檔模式下,增大系統(tǒng)的內(nèi)存和CPU的開銷;

?2)必須保證所有的歸檔日志文件完好無損;

?3)對DBA只是和技能的要求明顯提高

7. recover命令使用:

?1)recover [automatic] database:該命令只能在數(shù)據(jù)庫加載狀態(tài)時使用;

?2)recover [automatic] tablespace "表空間號" | "表空間名":該命令只能在數(shù)據(jù)庫打開狀態(tài)時使用;

?3)recover [automatic] datafile "數(shù)據(jù)文件名" | "數(shù)據(jù)文件號"

注意:automatic表示自動搜尋和恢復(fù)歸檔日志文件及聯(lián)機重做日志文件中提交的數(shù)據(jù);

?4)相關(guān)的數(shù)據(jù)字典

  a)查看所有數(shù)據(jù)文件的文件號,文件名和對應(yīng)的表空間;

   select file_id,file_name,tablespace_name from dba_data_files;

  b)查看所以表空間當(dāng)前狀態(tài)

   select tablespace_name,status from dba_tablespaces;

  c)查看所有數(shù)據(jù)文件的當(dāng)前狀態(tài)

   select file#,status from v$datafile;

  d)查看標(biāo)識需要恢復(fù)的數(shù)據(jù)文件以及恢復(fù)從何處開始

  select * from v$recover_file;

  e)查看定位在恢復(fù)期間所需的歸檔日志文件

  select * from v$recovery_log;

8. 演示表空間脫機與表空間所對應(yīng)的數(shù)據(jù)文件脫機區(qū)別

?1)演示表空間脫機

  表空間脫機:alter tablespace xiaoming_index offline;?

  查看表空間是否脫機:select tablespace_name,status from dba_tablespaces;

  查看數(shù)據(jù)文件是否脫機:select file#,status frin v$datafile;數(shù)據(jù)文件的狀態(tài)變?yōu)閛ffline

  查看所有數(shù)據(jù)文件當(dāng)前的與備份相關(guān)信息:select * from v$recover_file;
注意:第4列ERROR顯示的結(jié)果有兩種可能:offline normal表示該數(shù)據(jù)文件在設(shè)置在聯(lián)機之前不需要進行恢復(fù);null表示該數(shù)據(jù)文件脫機的原因不清楚;

?2)演示數(shù)據(jù)文件脫機

  數(shù)據(jù)文件脫機:alter database datafile 7 offline;

  查看數(shù)據(jù)文件當(dāng)前狀態(tài):select file#,status from v$datafile;數(shù)據(jù)文件的狀態(tài)變?yōu)閞ecover

9. 數(shù)據(jù)庫完全恢復(fù)方法

?1)在數(shù)據(jù)庫最初處于打開的狀態(tài)下,進行開啟數(shù)據(jù)庫的恢復(fù);

?2)在數(shù)據(jù)庫最初處于關(guān)閉的狀態(tài)下,進行開啟數(shù)據(jù)庫的恢復(fù);

?3)恢復(fù)沒有備份的數(shù)據(jù)文件;

?4)在關(guān)閉的狀態(tài)下進行數(shù)據(jù)庫的恢復(fù)

10. 最初處于打開狀態(tài)下進行的開啟數(shù)據(jù)庫恢復(fù)

?a)適用如下情況:

  1)所需恢復(fù)的數(shù)據(jù)文件不屬于系統(tǒng)表空間或還原/回滾段表空間;

  2)磁介質(zhì)的損壞,數(shù)據(jù)文件的崩潰,或數(shù)據(jù)文件的丟失并未造成數(shù)據(jù)庫的關(guān)閉;

  3)數(shù)據(jù)庫是以每天24小時每周7天運營的方式操作的,數(shù)據(jù)庫的當(dāng)機時間必須保持最小

?b)操作步驟:

  1)使用數(shù)據(jù)字典dba_data_files獲取要恢復(fù)的數(shù)據(jù)文件與所對應(yīng)的表空間及它們的相關(guān)信息;

  2)dba_tablespaces獲取要恢復(fù)的表空間是處在脫機還是聯(lián)機狀態(tài),可以使用v$datafile確認(rèn)要恢復(fù)的數(shù)據(jù)文件是處在脫機還是聯(lián)機狀態(tài);

  3)如果表空間處在聯(lián)機狀態(tài),將表空間設(shè)為脫機狀態(tài),也可以將數(shù)據(jù)文件設(shè)為脫機;

  4)使用操作系統(tǒng)復(fù)制命令將備份的數(shù)據(jù)文件復(fù)制回數(shù)據(jù)庫中原來的位置,如果硬盤損壞,將備份的數(shù)據(jù)文件復(fù)制到其他硬盤上,之后使用alter命令修改數(shù)據(jù)文件名;

  5)使用recover命令將所有提交的數(shù)據(jù)從歸檔日志文件和重做日志文件重新寫入已經(jīng)修復(fù)的數(shù)據(jù)文件

  6)當(dāng)恢復(fù)完成后將表空間或數(shù)據(jù)文件重新設(shè)置為聯(lián)機狀態(tài);

  7)檢查是否正常;

11. 最初處于關(guān)閉狀態(tài)下進行的開啟數(shù)據(jù)庫恢復(fù)

?a)適用如下情況:

  1)所需恢復(fù)的數(shù)據(jù)文件不屬于系統(tǒng)表空間或還原/回滾段表空間;

  2)磁介質(zhì)的損壞,硬盤的損毀,或數(shù)據(jù)文件的丟失已經(jīng)造成數(shù)據(jù)庫的關(guān)閉;

  3)數(shù)據(jù)庫是以每天24小時每周7天運營的方式操作的,數(shù)據(jù)庫的當(dāng)機時間必須保持最小;

?b)步驟:

  1)使用startup mount加載數(shù)據(jù)庫。因為損壞的數(shù)據(jù)文件不能打開

  2)使用v$datafile確認(rèn)要恢復(fù)的數(shù)據(jù)文件的文件名。這時不能使用數(shù)據(jù)字典dba_tablespaces,因為該數(shù)據(jù)字典只能在數(shù)據(jù)庫開啟狀態(tài)下使用;

  3)使用 alter database datafile "數(shù)據(jù)文件名" offline:將出問題的數(shù)據(jù)文件設(shè)為脫機,這時不能使用alter tablespace命令將出文件的表空間設(shè)為脫機,因為該命令只能在數(shù)據(jù)庫開啟狀態(tài)下使用;

  4)使用alter database open 將數(shù)據(jù)庫打開。因為出問題的數(shù)據(jù)文件已經(jīng)脫機,所有其他的數(shù)據(jù)文件都是同步的;

  5)使用操作系統(tǒng)復(fù)制命令將備份的數(shù)據(jù)文件復(fù)制回數(shù)據(jù)庫中原來的位置,如果硬盤損壞,將備份的數(shù)據(jù)文件復(fù)制到其他硬盤上,之后使用alter命令修改數(shù)據(jù)文件名;

  6)使用recover命令將所有提交的數(shù)據(jù)從歸檔日志文件和重做日志文件重新寫入已經(jīng)修復(fù)的數(shù)據(jù)文件;

  7)當(dāng)恢復(fù)完成后將表空間或數(shù)據(jù)文件重新設(shè)置為聯(lián)機狀態(tài);

12. 恢復(fù)沒有備份的數(shù)據(jù)文件

?a)適用如下情況:

  1)所需恢復(fù)的數(shù)據(jù)文件不屬于系統(tǒng)表空間或還原/回滾段表空間;

  2)由于介質(zhì)損壞或用戶錯誤導(dǎo)致數(shù)據(jù)文件的丟失,但是這個數(shù)據(jù)文件從來沒有備份過;

  3)從這個數(shù)據(jù)文件創(chuàng)建以來所有的歸檔日志文件都完好無損;

?b)oracle提供兩個重新建立數(shù)據(jù)文件的結(jié)構(gòu)的命令

  alter database create datafile "原始文件名":該命令重建與原來數(shù)據(jù)文件同名的數(shù)據(jù)文件

  alter database create datafile "原文件名" as "新文件名"?

?c)步驟:

  1)使用數(shù)據(jù)字典dba_data_file獲取要恢復(fù)的數(shù)據(jù)文件與所對應(yīng)的表空間及它們的相關(guān)信息;

  2)dba_tablespaces獲取要恢復(fù)的表空間是處在脫機還是聯(lián)機狀態(tài),可以使用v$datafile確認(rèn)要恢復(fù)的數(shù)據(jù)文件是處在脫機還是聯(lián)機狀態(tài);

  3)如果表空間處在聯(lián)機狀態(tài),將表空間設(shè)為脫機狀態(tài),也可以將數(shù)據(jù)文件設(shè)為脫機;

  4)使用數(shù)據(jù)字典v$recover_file查看數(shù)據(jù)文件的恢復(fù)狀態(tài)此時error列的顯示應(yīng)該為file not found,change#列的顯示應(yīng)該為0,而time列應(yīng)該沒有顯示輸出;

  5)使用alter database create datafile命令重建數(shù)據(jù)文件的結(jié)構(gòu);

  6)使用數(shù)據(jù)字典v$recover_file確認(rèn)數(shù)據(jù)文件的恢復(fù)狀態(tài),此時ERROR列應(yīng)該沒有顯示輸出,change#列和time列的顯示都有了新值;

  7)使用recover命令將所有提交的數(shù)據(jù)從歸檔日志文件和重做日志文件重新寫入已經(jīng)修復(fù)的數(shù)據(jù)文件;

  8)當(dāng)恢復(fù)完成后將表空間或數(shù)據(jù)文件重新設(shè)置為聯(lián)機狀態(tài);

12. 在關(guān)閉的狀態(tài)下進行數(shù)據(jù)庫的恢復(fù)

?a)適用如下情況:

  1)所需恢復(fù)的數(shù)據(jù)文件屬于系統(tǒng)表空間或還原/回滾段表空間;

  2)整個數(shù)據(jù)庫或大多數(shù)數(shù)據(jù)文件都需要恢復(fù);

  3)數(shù)據(jù)庫不是以每天24小時每周7天運營的方式操作的,數(shù)據(jù)庫在工作期間可以關(guān)閉;

?b)步驟:

  1)使用數(shù)據(jù)字典dba_data_file獲取要恢復(fù)的數(shù)據(jù)文件與所對應(yīng)的表空間及它們的相關(guān)信息;

  2)如果數(shù)據(jù)庫是打開狀態(tài),使用shutdown關(guān)閉數(shù)據(jù)庫shutdown abort;

  3)以加載方式啟動數(shù)據(jù)庫startup mount

  4)使用操作系統(tǒng)復(fù)制命令將備份的數(shù)據(jù)文件復(fù)制回數(shù)據(jù)庫中原來的位置,如果硬盤損壞,將備份的數(shù)據(jù)文件復(fù)制到其他硬盤上,之后使用alter命令修改數(shù)據(jù)文件名;

  5)使用recover命令將所有提交的數(shù)據(jù)從歸檔日志文件和重做日志文件重新寫入已經(jīng)修復(fù)的數(shù)據(jù)文件;

  6)使用alter database open命令將數(shù)據(jù)庫打開;

13.最初在關(guān)閉狀態(tài)下進行開啟數(shù)據(jù)庫恢復(fù)的實例

  1)準(zhǔn)備工作,備份數(shù)據(jù)庫

    alter tablespace system begin backup;

    host copy?E:\app\kxbin\oradata\orcl\system01.dbf?D:\orcl\Backup\

    alter tablespace system end backup;

  2)關(guān)閉數(shù)據(jù)庫

    shutdown immediate;

  3)模擬xiaoming_index.dbf文件丟失,刪除xiaoming_index.dbf文件

  4)試著啟動數(shù)據(jù)庫

    shtartup

  5)第6號數(shù)據(jù)文件出現(xiàn)問題,將該文件設(shè)為脫機

    alter database datafile 6 offline;

  6)打開數(shù)據(jù)庫

    alter database open;

  7)查看數(shù)據(jù)文件的狀態(tài)

    select file#,status from v$datafile;

  8)查看與數(shù)據(jù)文件相關(guān)的恢復(fù)信息

    select * from v$recover_file; (提示第6號數(shù)據(jù)文件已經(jīng)丟失)

  9)使用操作系統(tǒng)的復(fù)制命令將備份文件復(fù)制回第6號數(shù)據(jù)文件原來的目錄下

    host copy D:\orcl\Backup\xiaoming_index.dbf??E:\app\kxbin\oradata\orcl\

  10)對第6號數(shù)據(jù)文件進行恢復(fù)

    recover datafile 6;

  11)將xiaoming_index表空間重新設(shè)置為聯(lián)機

    alter tablespace xiaoming_index online;

  12)查看數(shù)據(jù)文件的當(dāng)前狀態(tài)

    select file#,status from v$datafile;

14. 在關(guān)閉的狀態(tài)下進行數(shù)據(jù)庫恢復(fù)的實例 

  1)準(zhǔn)備工作,備份數(shù)據(jù)庫

    alter tablespace xiaoming_index begin backup;

    host copy?E:\app\kxbin\oradata\orcl\system01.dbf?D:\orcl\Backup\

    alter tablespace xiaoming_index end backup;

  2)關(guān)閉數(shù)據(jù)庫

    shutdown immediate;

  3)模擬由于系統(tǒng)表空間所對應(yīng)的數(shù)據(jù)文件的損壞造成數(shù)據(jù)庫關(guān)閉的情況,刪除system01.dbf文件

  4)以加載的方式啟動數(shù)據(jù)庫

    startup mount?

  5)使用操作系統(tǒng)的復(fù)制命令將備份文件復(fù)制到新的硬盤上

    host copy?D:\orcl\Backup\system01.dbf??E:\app\kxbin\oradata\orcl\

    alter database rename file 'D:\orcl\Backup\system01.dbf' to 'E:\app\kxbin\oradata\orcl\';

  6)恢復(fù)數(shù)據(jù)庫

    recover database;

  7)打開數(shù)據(jù)庫

    alter database open;

轉(zhuǎn)載于:https://www.cnblogs.com/kangxuebin/archive/2013/01/23/2873062.html

總結(jié)

以上是生活随笔為你收集整理的第19章 归档模式下的数据库恢复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。