IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)Oracle → Oracle中修復(fù)數(shù)據(jù)塊的損壞

Oracle中修復(fù)數(shù)據(jù)塊的損壞

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

  1、先創(chuàng)建一個(gè)用于實(shí)驗(yàn)的表空間

  create tablespace block datafile size 1M extent management local;? –因?yàn)槭?1g所以使用了AMS

  alter user ff default tablespace block;

  alter user ff quota unlimited on block;

  2、損壞數(shù)據(jù)文件

  關(guān)閉database后用編輯器隨便修改幾個(gè)字符,然后啟動(dòng)database

  當(dāng)訪問(wèn)相關(guān)被損壞的block時(shí),將會(huì)遇到錯(cuò)誤

  3、對(duì)此使用dbv檢查數(shù)據(jù)文件

  dbv file=block.dbf blocksize=8192

  假設(shè)獲得第35塊被損壞了

  4、恢復(fù)步驟

 ?、賡elect tablespace_name, segment_type, owner, segment_name from dba_extents where file_id=4 and 35 between block_id and block_id+blocks-1;

  如果確定損失的是數(shù)據(jù),就ok

  設(shè)置內(nèi)部事件,設(shè)置在全表掃描時(shí)跳過(guò)損壞的數(shù)據(jù)塊

  alter system set events=’10231 trace name context forever,level 10′;

  隨后,可以用exp和imp進(jìn)行導(dǎo)入導(dǎo)出,進(jìn)行恢復(fù)。但這畢竟導(dǎo)致相依blocks中數(shù)據(jù)的丟失。

 ?、趓man的塊媒體恢復(fù)(BMR)

  使用BMR恢復(fù)可以大量降低恢復(fù)的時(shí)間,可以使datafile仍然處于在線的狀態(tài)。RMAN在BMR恢復(fù)時(shí),先在full或level 0的備份集中查詢相應(yīng)的塊的內(nèi)容,并恢復(fù),隨后使用 redo log進(jìn)行恢復(fù),而不使用level 1備份集。

  在恢復(fù)之前,首先要查找到corrupt blocks:在db中,v$database_block_corruption 視圖顯示了rman、analyze、dbv和sql查詢等操作中獲悉的corrupt block信息。此視圖記錄的記錄數(shù)據(jù)有兩類:

  *物理的corruption:無(wú)法辨識(shí)該數(shù)據(jù)塊,checksum、header、footer校驗(yàn)錯(cuò)誤

  *邏輯corruption:chechsum、header、footer校驗(yàn)是正確的,但是該數(shù)據(jù)塊的內(nèi)容時(shí)不一致的。

  注意:BMR是不能用于恢復(fù)邏輯上的corruption的。在backup命令中checksum的校驗(yàn)是

  默認(rèn)開啟的,可以通過(guò)NOCHECKSUM選項(xiàng)屬性關(guān)閉。邏輯的校驗(yàn)?zāi)J(rèn)是關(guān)閉的,可以

  在backup、restore、recover、validate命令中添加CHECK LOGICAL開啟。

  @@進(jìn)行BMR的條件

  1)target db必須運(yùn)行在歸檔模式下,并以當(dāng)前的控制文件open或mounted

  2)If the target database is a standby database, then it must be in a consistent state, recovery cannot be in session, and the backup must be older than the corrupted file.

  3)數(shù)據(jù)文件的備份集必須是full或level 0

  4)對(duì)于BMR,rman只使用已經(jīng)歸檔的redo logs

  5)flashback db開啟時(shí),rman可以用flashback logs查找corrupt block在corrupt之前的鏡像,用于恢復(fù),加快恢復(fù)速度。

  使用恢復(fù)命令恢復(fù)指定的數(shù)據(jù)塊

關(guān)鍵詞標(biāo)簽:Oracle,修復(fù)數(shù)據(jù)塊

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法