Oracle日常問題-壞塊修復
Oracle 日常問題- 壞塊 修復
一:問題現象
(1)NC 進行收款結算時報錯 (ORA-01578)
(2) 資料備份日誌 (exp) 報錯:
(3) 資料庫警告日誌報錯:
二:問題原因
機房意外斷電,導致資料庫資料塊損壞;
三:基本資訊
(1) 資料庫伺服器作業系統:
(2) 資料庫版本
四:檢視資料檔案號及名稱
select file_id , tablespace_name , file_name , bytes / 1024 / 1024 from dba_data_files order by 1 ;
五:通過DBV 檢查檔案是否有壞塊
(1) 檢查 nnc_index01.dbf 檔案
dbv file='/oradata/nc/nnc_index01.dbf'
結論file_id=6(nnc_index01.dbf),block=196373,643867,459202 出現三個索引壞塊
(2) 檢查 nnc_index02.dbf 檔案
dbv file='/oradata/nc/nnc_index0 2 .dbf'
結論:file_id=8(nnc_index02.dbf),block=169072 出現一個索引壞塊
(3) 檢查 nnc_data01.dbf 檔案
dbv file='/oradata/nc/nnc_ data 01.dbf'
結論:file_id=5(nnc_data01.dbf) 無壞塊
(4) 檢查 nnc_data02.dbf 檔案
dbv file='/oradata/nc/nnc_ data 0 2 .dbf'
結論:file_id=7(nnc_data02.dbf),block=336465 出現一個資料壞塊
(5) 檢查 nnc_user01.dbf 檔案
dbv file='/oradata/nc/nnc_ user 01.dbf'
......
(6) 檢查 nnc_undotbs01.dbf 檔案
dbv file='/oradata/nc/nnc_ undotbs 01.dbf'
......
(7) 檢查 nnc_sysaux01.dbf 檔案
dbv file='/oradata/nc/nnc_ sysaux .dbf'
......
(8) 檢查 nnc_system01.dbf 檔案
dbv file='/oradata/nc/nnc_ system01.d bf'
......
六:檢視壞塊所屬段及型別
(1) 檢視 file=6(459202) 對應段型別及名稱
select tablespace_name, segment_type, owner, segment_name
from dba_extents
where file_id = 6
and 459202 between block_id and block_id + blocks - 1;
(2) ) 檢視 file=6(643867) 對應段型別及名稱
select tablespace_name, segment_type, owner, segment_name
from dba_extents
where file_id = 6
and 643867 between block_id and block_id + blocks - 1;
(3) 檢視 file=6(1963727) 對應段型別及名稱
select tablespace_name, segment_type, owner, segment_name
from dba_extents
where file_id = 6
and 1963727 between block_id and block_id + blocks - 1;
(4) 檢視 file=8(169072) 對應段型別及名稱
select tablespace_name, segment_type, owner, segment_name
from dba_extents
where file_id = 8
and 169072 between block_id and block_id + blocks - 1;
(5) 檢視 file=7( 336465 ) 對應段型別及名稱
select tablespace_name, segment_type, owner, segment_name
from dba_extents
where file_id = 7
and 336465 between block_id and block_id + blocks - 1;
七:恢復之前需要先備份損壞資料塊對應的表
通過exp 備份不能直接備份出有壞塊的表,需要設定內部事件
ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10';
通過expdp 備份可以直接跳過壞塊;
八:檢視資料庫備份
歸檔模式,並且有rman 備份,有前兩天的 Rman 全備以及全備到今天的所有歸檔日誌;
恢復方式:基於資料塊的Rman 恢復
(1) 恢復 datafile=7 的所有壞塊
RMAN>backup validate datafile 7;
select * from v$database_block_corruption where file#=4;
RMAN>blockrecover datafile 7 block 336465 from backupset;
驗證壞塊位置
進行恢復
RMAN>blockrecover datafile 7 block 336465;
檢查是否恢復成功
(2) 恢復 datafile=6 的所有壞塊
RMAN>backup validate datafile 6;
select * from v$database_block_corruption where file#=6;
RMAN>blockrecover datafile 6 block 459202 , 643867, 1963727 ;
驗證壞塊位置
進行恢復
檢查是否恢復成功
(3) 恢復 datafile=8 的所有壞塊
RMAN>backup validate datafile 8;
RMAN> blockrecover datafile 8 block 169072 ;
驗證壞塊位置
進行恢復
檢查是否恢復成功
歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2675850/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN修復壞塊
- 【DATAGUARD】Oracle Dataguard nologging 塊修復Oracle
- 伺服器Oracle資料庫損壞修復伺服器Oracle資料庫
- oracle壞塊(二)Oracle
- Oracle資料庫處理壞塊問題常用命令Oracle資料庫
- 如何處理Oracle資料庫中的壞塊問題(轉)Oracle資料庫
- Oracle壞塊處理Oracle
- WPS文件損壞如何修復?WPS文件損壞的修復方法
- 驗證ADG的壞塊檢測和自動修復
- Oracle日常問題處理ORA-04031Oracle
- GRPC使用問題修復RPC
- 【LINUX】Oracle資料庫 linux磁碟頭資料損壞修復LinuxOracle資料庫
- linux下修復磁碟損壞Linux
- 行動硬碟壞道修復硬碟
- Jtti:如何修復Oracle資料庫執行過程的問題JttiOracle資料庫
- truncate操作消除ORACLE SEG壞塊解析Oracle
- SQL Anywhere db檔案損壞修復 DB檔案修復 DB資料庫修復SQL資料庫
- 解決Adobe Acrobat開啟PDF檔案時已損壞無法修復的問題BAT
- 日常問題分享
- 筆記本硬碟壞了修復方法教程 膝上型電腦硬碟壞了怎麼修復?筆記硬碟
- 如何修復Vue中的 “this is undefined” 問題VueUndefined
- SQL Server 資料頁損壞修復SQLServer
- 日常的問題也是日常的修行
- PostgreSQL 恢復大法 - 恢復部分資料庫、跳過壞塊、修復無法啟動的資料庫SQL資料庫
- Oracle資料庫壞塊典型案例分析Oracle資料庫
- 【BLOCK】Oracle壞塊處理命令參考BloCOracle
- Oracle日常問題-資料庫無法啟動(案例二)Oracle資料庫
- Oracle日常問題處理-資料庫無法啟動Oracle資料庫
- Oracle資料庫日常問題-歸檔異常增長Oracle資料庫
- 電腦硬碟分割槽表損壞怎麼修復?電腦硬碟分割槽表損壞的修復方法硬碟
- Oracle asm磁碟損壞異常恢復OracleASM
- system資料檔案頭損壞修復
- 磁頭損壞的修復方法有哪些
- linux檔案系統損壞如何修復Linux
- SQLite資料庫損壞及其修復探究SQLite資料庫
- 圖片、視訊損壞了,如何修復?
- Oracle資料庫壞塊典型案例擴充Oracle資料庫
- 問題:未清空磁碟被新增到磁碟組觸發壞塊