自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle處理?yè)p壞數(shù)據(jù)塊的處理操作

數(shù)據(jù)庫(kù) Oracle
下面的文章主要是對(duì)出現(xiàn)Oracle處理?yè)p壞數(shù)據(jù)塊的解決方案,如果你在Oracle處理?yè)p壞數(shù)據(jù)塊的應(yīng)用中經(jīng)常遇到這一難題,以下就是解答方案。

你是否在實(shí)際操作中遇到過(guò)這樣的狀況,有的時(shí)侯Oracle的數(shù)據(jù)文件只損壞了相關(guān)的數(shù)據(jù)塊而其他的東西卻完好無(wú)損。產(chǎn)生這樣的原因主要是因?yàn)殚g斷或隨機(jī)的I/O錯(cuò)誤或是內(nèi)存塊的錯(cuò)誤。這時(shí)可以不用做整個(gè)數(shù)據(jù)文件的恢復(fù),使datafile仍然處在在線的狀態(tài)。對(duì)此可以進(jìn)行下面幾種Oracle處理?yè)p壞數(shù)據(jù)塊的處理操作。

** Oracle 9i 以后可以使用blockrecover命令(BMR):

可以先通過(guò)視圖v$database_block_corruption獲得當(dāng)前被損壞數(shù)據(jù)的數(shù)據(jù)塊信息。此視圖中記錄了物理和邏輯兩類block corruption。

@ 物理的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)開(kāi)啟的,可以通過(guò)NOCHECKSUM選項(xiàng)屬性關(guān)閉。邏輯的校驗(yàn)?zāi)J(rèn)是關(guān)閉的,可以在backup、restore、recover、validate命令中添加CHECK LOGICAL開(kāi)啟。

具體的操作方法為:

 

  1. rman> blockrecover datafile n1 block n1b1,
    n1b2 datafile n2 block n2b1,n2b2; 

** 對(duì)于用戶管理的備份和恢復(fù)方法。如果要恢復(fù)Oracle處理?yè)p壞數(shù)據(jù)的DB,只能進(jìn)行整個(gè)數(shù)據(jù)文件的恢復(fù)。

 

  1. sql> alter database datafile 2 offline;  
  2. sql> host ‘cp /backup/datafile1.bak /opt/demo/datafile1.dt’;  
  3. sql> recover automatic datafile 2;  
  4. sql> alter database datafile 2 online;  

 

** 如果對(duì)于存在corruption block的表的使用不頻繁,在可以忍受的情況下,可以先屏蔽這些blocks,待以后再恢復(fù)。這就要使用dbms_repair包了。具體如下:

@ 建立修復(fù)表(修復(fù)表用于存放表、表分區(qū)或索引的損壞塊信息)。

 

  1. sql> exec dbms_repair.admin_tables
    (’REPAIR_TABLE’, DBMS_REPAIR.REPAIR_TABLE, DBMS_REPAIR.CREATE_ACTION); 

@ 確定Oracle處理?yè)p壞數(shù)據(jù)塊的個(gè)數(shù)

 

  1. sql> var cc number  
  2. sql> exec dbms_repair.check_object
    (’TBSPNAME’, ‘TABNAME’, 
    corrupt_count=>:cc);  
  3. sql> print cc  

 

@ 標(biāo)記損壞塊。

 

  1. sql> var fc number  
  2. sql> exec dbms_repair.fix_corrupt_blocks
    (’TBSPNAME’, ‘TABNAME’,
    fix_count=>:fc);  
  3. sql> print fc;  

 

@ 跳過(guò)損壞塊。此操作可以使涉及到損壞塊的查詢sql繼續(xù)執(zhí)行,跳過(guò)該blocks,但是對(duì)于DML,則仍會(huì)顯示錯(cuò)誤信息。

 

  1. sql> exec dbms_repair.skip_corrupt_blocks(’TBSPNAME’, ‘TABNAME’); 

@ 確定指向Oracle處理?yè)p壞數(shù)據(jù)塊的索引入口。當(dāng)上面確定了表的損壞塊后,仍有可能存在索引指向Oracle處理?yè)p壞數(shù)據(jù)塊,這些索引稱為“孤立鍵值”。對(duì)此可以使用dbms_repair包對(duì)孤立鍵值進(jìn)行管理:

 

  1. sql> exec dbms_repair.admin_tables
    (’ORPHAN_TAB’, DBMS_REPAIR, ORPHAN_TABLE, DBMS_REPAIR, CREATE_ACTION);  
  2. sql> var kc number  
  3. sql> exec dbms_repair.dump_orphar_keys
    (’TBSPNAME’,'INDEXNAME’, 
    orphan_table_name=> ‘ORPHAN_TAB’, key_count=> :kc);  
  4. sql> print kc;  

 

上述的相關(guān)內(nèi)容就是對(duì)Oracle處理?yè)p壞數(shù)據(jù)塊的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。

【編輯推薦】

  1. Oracle 字符串split的相關(guān)實(shí)際應(yīng)用代碼介紹
  2. Oracle創(chuàng)建Split 與Map 函數(shù)的代碼示例
  3. Oracle索引整理的詳細(xì)描述
  4. Oracle 權(quán)限入門如何管理
  5. Oracle 10G for linux常用命令淺析
責(zé)任編輯:佚名 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-05-15 13:43:30

Oracle數(shù)據(jù)塊損壞數(shù)據(jù)塊恢復(fù)

2010-04-08 13:55:18

Oracle數(shù)據(jù)處理

2020-06-09 10:35:37

Oracle文件損壞數(shù)據(jù)庫(kù)

2011-05-26 14:43:49

ORACLE數(shù)據(jù)庫(kù)異常處理

2010-11-18 16:58:33

Oracle死鎖

2011-08-10 16:01:11

OracleConstraint

2010-04-30 14:39:03

Oracle數(shù)據(jù)庫(kù)

2009-07-09 17:36:58

jvm.cfg

2010-04-12 11:12:53

Oracle數(shù)據(jù)處理

2009-09-28 14:06:35

數(shù)據(jù)庫(kù)頁(yè)損壞

2011-05-26 13:36:40

Oracle數(shù)據(jù)庫(kù)時(shí)間處理

2010-04-07 14:22:46

2009-05-18 13:18:54

字符Oracle字符串

2010-04-09 14:37:08

Oracle數(shù)據(jù)庫(kù)

2010-11-19 14:56:16

oracle服務(wù)丟失

2009-11-16 17:41:46

Oracle數(shù)據(jù)塊

2010-09-25 10:06:40

jvm.cfg

2009-12-22 14:15:08

ADO.Net處理數(shù)據(jù)

2009-09-02 18:52:38

Oracle數(shù)據(jù)庫(kù)并行

2019-10-15 15:15:31

Python大數(shù)據(jù)函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)