国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

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

2024-07-21 02:43:41
字體:
供稿:網(wǎng)友
錯誤示例:

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

具體過程的說明: http://www.survivalescaperooms.com/

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ù)庫對象進(jìn)行處理。

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ù)表里的記錄進(jìn)行重建;

假如發(fā)生壞塊的表的記錄可以根據(jù)其它表的記錄生成的話,那么可以直接把這個表DROP掉后重建;

假如有數(shù)據(jù)庫的備份,則恢復(fù)數(shù)據(jù)庫的方法來進(jìn)行修復(fù);

假如表里的記錄沒有其它辦法恢復(fù),那么壞塊上的記錄就丟失了,只能把表中其它數(shù)據(jù)壞上的記錄取出來,然后對這個表進(jìn)行重建。

(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)假如表上存在索引,則要重建表上的索引。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 义马市| 同心县| 武汉市| 郧西县| 抚顺县| 会理县| 桐梓县| 花莲县| 理塘县| 新竹县| 页游| 五大连池市| 定襄县| 太原市| 鸡西市| 清新县| 乐东| 上思县| 阳江市| 应城市| 嘉定区| 祁东县| 阿鲁科尔沁旗| 榆中县| 龙井市| 潮安县| 长治市| 峡江县| 儋州市| 武夷山市| 上虞市| 北海市| 静宁县| 涟源市| 武冈市| 会宁县| 襄垣县| 富平县| 抚顺县| 崇州市| 淮北市|