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

表中出現(xiàn)Block錯誤的恢復(fù)方法及具體步驟

運維 數(shù)據(jù)庫運維
在進行表的操作時有時會遇到Block錯誤,本文將會為大家介紹這種錯誤的恢復(fù)方法及具體步驟,供大家參考,希望大家能從中收獲您所需要的。

錯誤示例:

  block corrupt 的log
  Current log# 12 seq# 47247 mem# 0: /data2/obs5_db/obs5_log/obs5_redo_12.log
  ***
  Corrupt block relative dba: 0x0f457f48 file=61. blocknum=360264.
  Fractured block found during buffer read
  Data in bad block - type:6. format:2. rdba:0x0f457f48

解決方法

用Oracle的工具包

  首先需要用dbms_repair.check_object先檢查一下,然后再用dbms_repair.fix_corrupt_blocks修復(fù),如果修復(fù)不了,你可以用dbms_repair.skip_corrupt_blocks。

具體過程的說明:

  DBMS_REPAIR.CHECK_OBJECT (
  schema_name IN VARCHAR2,
  object_name IN VARCHAR2,
  partition_name IN VARCHAR2 DEFAULT NULL,
  object_type IN BINARY_INTEGER DEFAULT TABLE_OBJECT,
  repair_table_name IN VARCHAR2 DEFAULT ’REPAIR_TABLE’,
  flags IN BINARY_INTEGER DEFAULT NULL,
  relative_fno IN BINARY_INTEGER DEFAULT NULL,
  block_start IN BINARY_INTEGER DEFAULT NULL,
  block_end IN BINARY_INTEGER DEFAULT NULL,
  corrupt_count OUT BINARY_INTEGER);
  DBMS_REPAIR.FIX_CORRUPT_BLOCKS (
  schema_name IN VARCHAR2,
  object_name IN VARCHAR2,
  partition_name IN VARCHAR2 DEFAULT NULL,
  object_type IN BINARY_INTEGER DEFAULT TABLE_OBJECT,
  repair_table_name IN VARCHAR2 DEFAULT ’REPAIR_TABLE’,
  flags IN BINARY_INTEGER DEFAULT NULL,
  fix_count OUT BINARY_INTEGER);
  DBMS_REPAIR.SKIP_CORRUPT_BLOCKS (
  schema_name IN VARCHAR2,
  object_name IN VARCHAR2,
  object_type IN BINARY_INTEGER DEFAULT TABLE_OBJECT,
  flags IN BINARY_INTEGER DEFAULT SKIP_FLAG);
  dbv

  你也可以用dbv工具看一下你現(xiàn)在其他的數(shù)據(jù)文件有沒有還有壞塊的。

  dbv file='yourfilename'

具體的恢復(fù)方法:

  在Oracle數(shù)據(jù)庫出現(xiàn)壞塊時,Oracle會在警告日志文件(alert_SID.log)中記錄壞塊的信息:

  ORA-01578: ORACLE data block corrupted (file # 7, block # )
  ORA-01110: data file : '/oracle1/oradata/V920/oradata/V816/users01.dbf'

  請注意:<AFN>代表壞塊所在數(shù)據(jù)文件的絕對文件號,代表壞塊是數(shù)據(jù)文件上的第幾個數(shù)據(jù)塊,出現(xiàn)這種情況時,應(yīng)該首先檢查是否是硬件及操作系統(tǒng)上的故障導(dǎo)致Oracle數(shù)據(jù)庫出現(xiàn)壞塊。在排除了數(shù)據(jù)庫以外的原因后,再對發(fā)生壞塊的數(shù)據(jù)庫對象進行處理。

 

(1)確定發(fā)生壞塊的數(shù)據(jù)庫對象

  SELECT tablespace_name,
  segment_type,
  owner,
  segment_name
  FROM dba_extents
  WHERE file_id =
  AND between block_id AND block_id+blocks-1;

(2)決定修復(fù)方法

  假如發(fā)生壞塊的對象是一個索引,那么可以直接把索引DROP掉后,再根據(jù)表里的記錄進行重建;假如發(fā)生壞塊的表的記錄可以根據(jù)其它表的記錄生成的話,那么可以直接把這個表DROP掉后重建;假如有數(shù)據(jù)庫的備份,則恢復(fù)數(shù)據(jù)庫的方法來進行修復(fù);假如表里的記錄沒有其它辦法恢復(fù),那么壞塊上的記錄就丟失了,只能把表中其它數(shù)據(jù)壞上的記錄取出來,然后對這個表進行重建。

(3)用Oracle提供的DBMS_REPAIR包標(biāo)記出壞塊

  exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('','');

(4)使用Create table as select命令將表中其它塊上的記錄保存到另一張表上

  create table corrupt_table_bak
  as
  select * from corrupt_table;

(5)用DROP TABLE命令刪除有壞塊的表

  drop table corrupt_table;

(6)用alter table rename命令恢復(fù)原來的表

  alter table corrupt_table_bak
  rename to corrupt_table;

(7)假如表上存在索引,則要重建表上的索引

 

責(zé)任編輯:迎迎 來源: 賽迪網(wǎng)
相關(guān)推薦

2011-03-21 16:50:10

Block錯誤

2010-07-02 09:48:58

2003 SNMP啟用

2009-01-30 21:56:00

2010-09-25 16:30:25

DHCP選項設(shè)置

2009-12-07 10:46:08

WCF框架

2009-11-26 13:52:42

路由器連接

2009-12-15 17:30:31

路由器配置

2010-04-08 17:51:05

Oracle表列

2010-09-03 11:53:09

華為DHCP配置

2011-04-07 14:53:18

路由器局域網(wǎng)寬帶路由器

2010-02-22 10:52:34

PDA訪問WCF

2010-08-02 17:08:34

Flex Eclips

2010-10-08 11:29:24

JavaScript對象

2010-06-21 17:05:00

Linux Arch

2010-06-22 14:55:21

autoconf安裝

2010-07-19 17:02:23

安裝Telnet服務(wù)器

2009-09-03 14:49:49

C#實現(xiàn)網(wǎng)絡(luò)點對點

2010-06-22 16:05:40

Autoconf rp

2010-09-26 10:38:37

JVM安裝Tomcat

2010-06-08 18:59:03

OpenSUSE li
點贊
收藏

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