[轉載]ORA-01578: ORACLE data block corrupted
當Oracle資料庫出現壞塊時,Oracle會在警告日誌檔案(alert_SID.log)中記錄壞塊的:
ORA-01578: ORACLE data block corrupted (file # 7, block #
ORA-01110: data file
出現這種情況時,應該首先檢查是否是硬體及作業系統上的故障導致Oracle資料庫出現壞塊。在排除了資料庫以外的原因後,再對發生壞塊的資料庫物件進行處理。
1.確定發生壞塊的資料庫物件
SELECT tablespace_name,
segment_type,
owner,
segment_name
FROM dba_extents
WHERE file_id =
AND
2.決定修復方法
如果發生壞塊的物件是一個索引,那麼可以直接把索引DROP掉後,再根據表裡的記錄進行重建;
如果發生壞塊的表的記錄可以根據其它表的記錄生成的話,那麼可以直接把這個表DROP掉後重建;
如果有資料庫的備份,則恢復資料庫的方法來進行修復;
如果表裡的記錄沒有其它辦法恢復,那麼壞塊上的記錄就丟失了,只能把表中其它資料塊上的記錄取出來,然後對這個表進行重建。
3.用Oracle提供的DBMS_REPAIR包標記出壞塊
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 corrup_tatble;
6.用alter table rename命令恢復原來的表
alter table corrupt_table_bak
rename to corrupt_table;
7.如果表上存在索引,則要重建表上的索引
來自
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-580487/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 親歷資料倉儲ORA-01578:ORACLE data block corrupted錯誤的處理過程OracleBloC
- ORA-01578 data block corrupted 資料檔案損壞 與 修復 (多為借鑑 linux)BloCLinux
- Read of flashback database logfile 502, block 251 found corrupted data.DatabaseBloC
- Oracle Data block 的物理結構OracleBloC
- Oracle 的 data block研讀(二)OracleBloC
- oracle10g data block structureOracleBloCStruct
- Export data from a data blockExportBloC
- Data block 內部結構的解析(轉載gyj_hobby的文章)BloC
- oracle concept——data block,extent,segment-01OracleBloC
- [轉載]Oracle等待事件Data file init writeOracle事件
- 原創:oracle data block 內部結構分析OracleBloC
- Oracle Data block 的物理結構-體系架構OracleBloC架構
- (轉)oracle dump block格式說明OracleBloC
- DATA BLOCK內部結構BloC
- c#訪問oracle幾種方法(轉載)_data accessC#Oracle
- DATA BLOCK內部結構圖BloC
- 轉載《Data Guard Broker基礎》
- 【轉載】Oracle Data Guard 主庫 歸檔檔案 刪除策略Oracle
- Strategies for a Corrupted Oracle Central Inventory [ID 414600.1]Oracle
- Availability and Optimization of Free Space in a Data Block(五)AIBloC
- Availability and Compression of Free Space in a Data BlockAIBloC
- oracle dump blockOracleBloC
- oracle block type!OracleBloC
- ORACLE BLOCK DUMPOracleBloC
- oracle hot blockOracleBloC
- 【轉載】Oracle Data Guard 備庫 歸檔檔案 刪除指令碼Oracle指令碼
- corrupted block的一次處理和古舊版本的PL/SQL Developer問題BloCSQLDeveloper
- oracle block phisical address to block#OracleBloC
- oracle 壞塊問題 ora-01578Oracle
- oracle data Format Models---二(轉)OracleORM
- data guard的結構常識(轉載)
- Oracle Log Block SizeOracleBloC
- Oracle Find block in ASMOracleBloCASM
- oracle block 格式 (zt)OracleBloC
- Oracle效能最佳化之提升block的效率(轉)OracleBloC
- Script:Translate RDBA relative data block addressBloC
- 模擬data block lost write的簡單方法BloC
- ORACLE壞塊(ORA-01578)處理方法Oracle