佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > 優(yōu)化Oracle停機(jī)時(shí)間及數(shù)據(jù)庫恢復(fù)

優(yōu)化Oracle停機(jī)時(shí)間及數(shù)據(jù)庫恢復(fù)

熱門標(biāo)簽:服務(wù)外包 地方門戶網(wǎng)站 呼叫中心市場需求 百度競價(jià)排名 Linux服務(wù)器 鐵路電話系統(tǒng) AI電銷 網(wǎng)站排名優(yōu)化
正在看的ORACLE教程是:優(yōu)化Oracle停機(jī)時(shí)間及數(shù)據(jù)庫恢復(fù)。

 這里會(huì)討論令Oracle停機(jī)時(shí)間最小化的步驟。各種形式的停機(jī)--計(jì)劃的或者是非計(jì)劃的--總是不斷地發(fā)生,一個(gè)DBA應(yīng)該有正確的備份策略,這樣在數(shù)據(jù)庫出現(xiàn)問題時(shí)就可以更快地恢復(fù)。 

  以下是假定的備份策略和數(shù)據(jù)庫的運(yùn)作條件

   控制文件是鏡像的

   數(shù)據(jù)庫運(yùn)行在archivelog模式

   每個(gè)星期都進(jìn)行冷備份

   每日都進(jìn)行熱備份

   每日都進(jìn)行一次全數(shù)據(jù)庫導(dǎo)出

  事件1:完整的數(shù)據(jù)庫重構(gòu)

  在這種情形下,你可以使用全數(shù)據(jù)庫導(dǎo)出或者冷熱備份結(jié)合的方式來重構(gòu)數(shù)據(jù)庫。要注意的是無論你選擇哪種方式,在線redo log中的事務(wù)都會(huì)丟失。

  事件2:恢復(fù)部分的表空間

  可以使用以下的步驟來恢復(fù):

   1、以restrict模式啟動(dòng)數(shù)據(jù)庫

   2、重新創(chuàng)建表空間

   3、使用最新的全數(shù)據(jù)庫導(dǎo)出來導(dǎo)入,并且使用ignore=y的選項(xiàng);

   4.關(guān)閉并且重新以normal的模式啟動(dòng)數(shù)據(jù)庫實(shí)例

  事件3:丟失一般的數(shù)據(jù)文件

  丟失一般數(shù)據(jù)文件的恢復(fù)步驟根據(jù)所丟失的數(shù)據(jù)文件包含的表空間類型而定;例如:回滾段,用戶表空間,索引表空間或者是只讀的表空間、你可能會(huì)遇到以下的錯(cuò)誤:

   . 嘗試啟動(dòng)數(shù)據(jù)庫并且碰到錯(cuò)誤的信息ORA-1157, ORA-1110,可能還有一個(gè)操作系統(tǒng)的錯(cuò)誤

   . 嘗試以normal或者immediate的模式關(guān)閉數(shù)據(jù)庫,可能會(huì)碰到ORA-1116, ORA-1110的錯(cuò)誤信息,還有一個(gè)系統(tǒng)錯(cuò)誤

  以下的步驟可以用作恢復(fù):

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

   2、由熱備份中恢復(fù)丟失的數(shù)據(jù)文件

   3、Startup mount數(shù)據(jù)庫

   4、執(zhí)行以下的查詢來得到所有你的在線redo log文件和它們相應(yīng)的次序和首次修改號(hào):


  5、如果得到的CHANGE#比在線redo log最小的FIRST_CHANGE# 還小,那么該文件不能被完全恢復(fù),你可以有兩個(gè)選擇:

   . 如果可以接受丟失最近一次冷備份以來的數(shù)據(jù)庫修改,裝入備份并且繼續(xù)恢復(fù)

   . 如果不能接受丟失數(shù)據(jù)庫的修改,那么必須重新創(chuàng)建表空間

  6、通過使用存檔和在線的redo log來恢復(fù)數(shù)據(jù)文件

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


[NextPage]

事件4:恢復(fù)一個(gè)特別的表

  可以采用以下的步驟恢復(fù):

   1、使用最近的一次全數(shù)據(jù)庫導(dǎo)出來導(dǎo)入表,并且使用owner=和tables=的選項(xiàng)

   2、考慮到性能的原因,可能需要重建表索引

  事件5:丟失控制文件

  在數(shù)據(jù)庫起來并且運(yùn)行時(shí),通常都不能檢測(cè)到控制文件的問題、如果控制文件丟失或者損壞了,Oracle將不會(huì)了解,下次數(shù)據(jù)庫的啟動(dòng)時(shí)將會(huì)導(dǎo)致ORA-205錯(cuò)誤(標(biāo)識(shí)控制文件"%s的錯(cuò)誤),還有一個(gè)系統(tǒng)級(jí)的錯(cuò)誤、

  如果只是丟失了其中的一個(gè)控制文件,可以采用下面的步驟來恢復(fù):

   1、如果它正在運(yùn)行的話,先關(guān)閉它

   2、查找丟失控制文件的原因、是由于硬件的問題嗎(磁盤還是控制器)?

   3、如果不是硬件的問題,將控制文件的一個(gè)好的拷貝復(fù)制到丟失的位置,并且跳到步驟5、

   4、如果是硬件的問題,復(fù)制一個(gè)好的控制文件拷貝到一個(gè)可靠的位置

   5、編輯initsid.ora 或者 configsid.ora,更新CONTROL_FILES以反映最新的控制文件位置

   6、啟動(dòng)數(shù)據(jù)庫

  事件6:丟失全部的控制文件

  可以采用以下的步驟恢復(fù):

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

   2、進(jìn)行一次全數(shù)據(jù)庫備份,包括全部的數(shù)據(jù)文件和redo log文件

   3、以NOMOUNT的狀態(tài)啟動(dòng)數(shù)據(jù)庫

   4、使用CREATE CONTROLFILE重新創(chuàng)建控制文件、你也可以備份控制文件到一個(gè)trace文件,然后執(zhí)行該文件

   5、在數(shù)據(jù)庫上進(jìn)行媒體恢復(fù)

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

   7、使用shutdown normal關(guān)閉數(shù)據(jù)庫

   8、對(duì)數(shù)據(jù)庫進(jìn)行一次冷備份

  事件7:丟失一個(gè)索引

  最簡單的方法就是重新創(chuàng)建丟失的索引

  事件8:丟失一個(gè)非活動(dòng)的redo log

  如果丟失redo數(shù)據(jù),恢復(fù)將是不完全的,必須重新創(chuàng)建涉及的表空間。要重新創(chuàng)建表空間,可以使用全的數(shù)據(jù)庫導(dǎo)出,這樣就可以很容易的導(dǎo)入數(shù)據(jù)并且重新創(chuàng)建該表空間的對(duì)象??梢允褂靡韵碌牟襟E來恢復(fù):

   1、通過Alter system來切換redo log文件

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

   3、startup mount數(shù)據(jù)庫

   4、離線刪除涉及的數(shù)據(jù)文件

   5、打開數(shù)據(jù)庫

   6、刪除用戶的表空間,包括其中的內(nèi)容、

   7、通過全數(shù)據(jù)庫備份重新創(chuàng)建表空間和其中的對(duì)象
 
  事件9:丟失活動(dòng)的Redo log

  如事件8討論的一樣,如果丟失了redo數(shù)據(jù),恢復(fù)將是不完全的,必須重新創(chuàng)建涉及的表空間、可以采用以下的步驟恢復(fù):

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

   2、startup mount數(shù)據(jù)庫

   3、離線刪除涉及的數(shù)據(jù)文件

   4、打開數(shù)據(jù)庫

   5、刪除用戶的表空間,包括其中的內(nèi)容、

   6、通過全數(shù)據(jù)庫備份重新創(chuàng)建表空間和其中的對(duì)象

  要注意的是活動(dòng)的事務(wù)將會(huì)丟失

  事件10:丟失存檔的Redo log文件

  如果存檔的redo log文件丟失,應(yīng)該馬上進(jìn)行一次冷備份、最好也進(jìn)行一次全數(shù)據(jù)庫導(dǎo)出、沒有丟失的存檔redo log文件的任何恢復(fù)都將是不完全的、

  事件11:丟失活動(dòng)的回滾段

  這里指的是丟失一個(gè)回滾段的一個(gè)數(shù)據(jù)文件、這是一個(gè)危急的恢復(fù)過程,它主要是在于保存活動(dòng)的事務(wù)。這里假定數(shù)據(jù)庫已經(jīng)起來,而你想保存當(dāng)前運(yùn)行的事務(wù)。要使用以下的恢復(fù)過程,數(shù)據(jù)庫必須運(yùn)行在archivelog模式下。

  可以使用以下步驟恢復(fù):

   1、不要關(guān)閉數(shù)據(jù)庫、對(duì)于這種事件,數(shù)據(jù)庫啟動(dòng)比關(guān)閉更容易解決問題、

   2、令屬于該數(shù)據(jù)文件中的全部回滾段離線

   3、刪除全部離線的回滾段

   4、在上面的第2步中,如果回滾段中有活動(dòng)的事務(wù),你將不能令它離線、可運(yùn)行以下的查詢來查看哪些事物是活動(dòng)的:


  如果上面的查詢沒有結(jié)果,那么所有的回滾段都是離線的,但是,如果上面的查詢返回一行或者多行,并且其狀態(tài)為PENDING OFFLINE,那么可檢查這些回滾段的ACTIVE_TX列、帶有0值的回滾段將很快會(huì)離線;但是,非0的值表示上面有活動(dòng)的事務(wù),它們需要被提交或者回滾、

   5、處理活動(dòng)的事務(wù)、執(zhí)行以下的查詢來查看哪些用戶的事務(wù)被指派到該回滾段:


  在知道哪些用戶在"pending offline"的回滾段上有活動(dòng)的事務(wù)后,可以要求他們提交或者回滾他們的事務(wù),或者可以使用以下的命令殺掉它們的進(jìn)程:

   ALTER SYSTEM KILL SESSION 'sid, serial#';

   6、在你處理完所有活動(dòng)的事務(wù)后,執(zhí)行以下的步驟:

    丟棄表空間及其中的全部內(nèi)容

    重新創(chuàng)建回滾表空間

    重新創(chuàng)建回滾段,并且令它們?cè)诰€

[NextPage]

事件12:丟失全部的回滾段

  在這種事件下,將丟失全部活動(dòng)的事務(wù),并且需要重新創(chuàng)建回滾段。這樣大的問題可能是由于一個(gè)硬件問題造成的,可以采用以下的步驟恢復(fù):

[1] [2] 下一頁

正在看的ORACLE教程是:優(yōu)化Oracle停機(jī)時(shí)間及數(shù)據(jù)庫恢復(fù)。
   1、關(guān)閉數(shù)據(jù)庫

   2、使用DBVERIFY驗(yàn)證全部的數(shù)據(jù)文件

   3、解決其它的硬件問題或者數(shù)據(jù)文件損壞

   4、以startup mount的方式啟動(dòng)數(shù)據(jù)庫實(shí)例

   5、在數(shù)據(jù)庫上執(zhí)行媒體恢復(fù)
 
   6、打開數(shù)據(jù)庫

   7、按需要?jiǎng)?chuàng)建新的回滾段

  事件13:導(dǎo)出文件損壞

  如果導(dǎo)出文件不能用了,那么應(yīng)該冷備份數(shù)據(jù)庫并且進(jìn)行一個(gè)全的數(shù)據(jù)庫導(dǎo)出、這是假定數(shù)據(jù)庫自身沒有問題、如果數(shù)據(jù)庫也損壞了,那么應(yīng)該執(zhí)行以下的步驟:

   1、ORA-1157錯(cuò)誤信息通常都表示一個(gè)或者多個(gè)的數(shù)據(jù)文件損壞了。查明哪些表受到影響,它們應(yīng)該是錯(cuò)誤信息中指明的數(shù)據(jù)文件中的表格

   2、跳過壞的數(shù)據(jù)塊,將數(shù)據(jù)由表格中選擇到臨時(shí)表格中、

   3、丟棄損壞的表

   4、將臨時(shí)表重命名為丟棄的表

   5、重新建立受影響表上的全部索引

   6、使用VALIDATE STRUCTURE CASCADE的選項(xiàng)來分析全部損壞的表

  要注意的是損壞塊中數(shù)據(jù)將會(huì)丟失并且不能恢復(fù)

  事件14:在熱備份時(shí)關(guān)機(jī)

  如果在熱備份正在進(jìn)行的時(shí)候突然關(guān)機(jī),其中的一些表空間將可能處在備份模式、當(dāng)你嘗試打開數(shù)據(jù)庫時(shí),它將只能mount,并且指示某些表空間處于熱備份模式、由于數(shù)據(jù)庫不能打開,你將不能讓表空間脫離熱備份模式、你可以使用以下的步驟恢復(fù):

   1、startup mount數(shù)據(jù)庫

   2、查詢v$backup以查看哪些數(shù)據(jù)文件處于ACTIVE狀態(tài)、

   3、通過使用命令A(yù)LTER DATABASE DATAFILE END BACKUP.來將這些數(shù)據(jù)文件脫離備份模式

   4、打開數(shù)據(jù)庫

  事件15:恢復(fù)到某個(gè)特別的時(shí)間點(diǎn)

  以下的步驟可用來執(zhí)行point-in-time恢復(fù)

   1、關(guān)閉數(shù)據(jù)庫實(shí)例

   2、以NOMOUNT的狀態(tài)啟動(dòng)數(shù)據(jù)庫實(shí)例

   3、使用UNTIL的選項(xiàng)來恢復(fù)數(shù)據(jù)庫

   4、打開數(shù)據(jù)庫

   5、Shutdown NORMAL 

   6、啟動(dòng)數(shù)據(jù)庫實(shí)例

  事件16:恢復(fù)到一個(gè)特別的事件或者活動(dòng)

  可以使用以下的步驟來恢復(fù):

   1、關(guān)閉數(shù)據(jù)庫實(shí)例

   2、以NOMOUNT狀態(tài)啟動(dòng)數(shù)據(jù)庫實(shí)例;

   3、使用UNTIL CANCEL來恢復(fù)數(shù)據(jù)庫,提供存檔的redo log文件請(qǐng)求直到該活動(dòng)/事件為止

   4、輸入CANCEL來取消恢復(fù)

   5、打開數(shù)據(jù)庫;

   6、使用NORMAL的模式來關(guān)閉數(shù)據(jù)庫

   7、啟動(dòng)數(shù)據(jù)庫實(shí)例

  結(jié)論
  
  高可用性對(duì)于任何的商業(yè)都是很重要的,ORACLE DBA可以通過一些計(jì)劃以確保停機(jī)時(shí)間最小化、這篇文章討論了不同的策略可以達(dá)到這個(gè)目的。

上一頁     

上一頁  [1] [2] 

您可能感興趣的文章:
  • oracle drop table(表)數(shù)據(jù)恢復(fù)方法
  • ORACLE 數(shù)據(jù)庫RMAN備份恢復(fù)
  • oracle數(shù)據(jù)庫創(chuàng)建備份與恢復(fù)腳本整理
  • Oracle誤刪除表數(shù)據(jù)后的數(shù)據(jù)恢復(fù)詳解
  • 關(guān)于系統(tǒng)重裝后Oracle數(shù)據(jù)庫完全恢復(fù)的解決辦法
  • Oracle數(shù)據(jù)庫的備份及恢復(fù)策略研究
  • oracle下實(shí)現(xiàn)恢復(fù)一個(gè)丟失的數(shù)據(jù)文件的代碼
  • Oracle數(shù)據(jù)庫的備份與恢復(fù)
  • Oracle數(shù)據(jù)庫的備份與恢復(fù)
  • Oracle數(shù)據(jù)庫數(shù)據(jù)丟失恢復(fù)的幾種方法總結(jié)

標(biāo)簽:湘潭 衡水 蘭州 銅川 仙桃 黃山 崇左 湖南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《優(yōu)化Oracle停機(jī)時(shí)間及數(shù)據(jù)庫恢復(fù)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    克东县| 临湘市| 邵阳县| 神木县| 大城县| 沈阳市| 澎湖县| 富源县| 泌阳县| 太谷县| 名山县| 海盐县| 大方县| 绥中县| 深州市| 太和县| 庄浪县| 中牟县| 收藏| 建阳市| 贡嘎县| 迁安市| 高淳县| 兴化市| 云浮市| 荔浦县| 元谋县| 伊吾县| 景洪市| 墨玉县| 房产| 昆明市| 夏邑县| 东海县| 唐山市| 永仁县| 澄城县| 亚东县| 太湖县| 三亚市| 军事|