国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

遇到物理壞塊后數據恢復過程

IT那活兒 / 2607人閱讀
遇到物理壞塊后數據恢復過程

點擊上方藍字關注我們


故障描述


工作中發現主機b-domain3上AAA數據庫異常,數據庫處于mount狀態,使用命令打開數據庫。數據庫出現如下錯誤

經查詢此錯誤為磁盤產生壞塊,數據庫編號為20的文件在進行CP命令時,無法正常進行,其余文件可正常進行,確定為已損壞文件。


  故障恢復  


數據庫處于noarchivelog模式,備份文件時間為2017年份,無法使用,故進行數據恢復時會丟失數據,只能進行部分恢復。

1.確定表空間所有對象

a) LOB字段

b) 子分區

c) 分區表

d) 普通表

e) 子分區索引

f) 分區索引

g) 普通索引

2.確定非20號文件對象

select ‘alter table ‘||owner||’.’||table_name||’ move tablespace AAA_OBS_DATA1 PARALLEL 8;’ from dba_dba_extents where segment_type=’TABLE’  and relative_fno<>20 and tablespace_name=’AAA_OBS_DATA’;

生成遷移表空間腳本


3.遷移正常表到新表空間

a)  使用步驟三中生成的腳本進行表空間遷移,將正常表從AAA_OBS_DATA表空間遷移到AAA_OBS_DATA1表空間。

b)  遷移lob字段(根據步驟1中a序列生成的內容)

ALTER TABLE AAA.BAK_I_BUSI MOVE LOB (HUB_INFO) STORE AS (TABLESPACE AAA_OBS_DATA1);

ALTER TABLE AAA.BAK_I_BUSI MOVE LOB (COMMAND_CONTENT) STORE AS (TABLESPACE AAA_OBS_DATA1);


c)  遷移索引(根據步驟1中g序列生成的內容)

ALTER INDEX AAA.SYS_IL0000020524C00010$$ REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.SYS_IL0000020524C00009$$ REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.I191000_0_PK REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.I191000_0_UK REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.I191000_1_UK REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.I185000_0_INDEX REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.PK_SVC_TEMPLET_INFO REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.PK_BIZ_INFO REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.PK_TRAN_INFO REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.PK_COMM_INTERF_SVC_INFO REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.I135000_0_INDEX REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.I135000_1_INDEX REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.GJ7_CK_AAA_USERINFO_ALL_BID REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.I162000_0_PK REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.SYS_C0067279 REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.SYS_C0067280 REBUILD TABLESPACE AAA_OBS_DATA1;

ALTER INDEX AAA.SYS_C0067283 REBUILD TABLESPACE AAA_OBS_DATA1;

4.確定20號文件中的對象

selectdistinct owner,segment_name from dba_extents wheresegment_type=TABLE and relative_fno=20;(部分數據)  

5.恢復20號文件中受影響對象

根據步驟4中查詢到的表檢索extents分布狀況

SELECT e.segment_name,

      o.data_object_id,

      e.relative_fno,

      e.block_id,

      e.blocks

 FROM dba_extents e, dba_objects o

WHERE o.owner = e.owner

  AND o.object_name = e.segment_name

  AND e.owner = AAA

  AND e.segment_name = ACCESS_LOG_2020070112

  AND e.relative_fno = 20

ORDER BY e.relative_fno, o.data_object_id, e.block_id;


根據data_object_id,relative_fno,block_id構造最大/最小rowid

最小:

SELECT dbms_rowid.rowid_create(1, 92499, 20, 2057856, 0) low_rid FROM dual;

最大:

SELECT dbms_rowid.rowid_create(1, 92499, 20, 3145857, 0) low_rid FROM dual;


創建表:

根據影響最小rowid創建表

CREATE TABLE aaa.ACCESS_LOG_2020070112_BAK TABLESPACE AAA_OBS_DATA1 AS SELECT * FROM aaa.ACCESS_LOG_2020070112 where rowid < AAAWlTAAUAAH2aAAAA;

根據插入影響最大的rowid之后數據

INSERT INTO aaa.ACCESS_LOG_2020070112_BAK SELECT * FROM aaa.ACCESS_LOG_2020070112 WHERE ROWID > AAAWlTAAUAAMACBAAA;

提取原表索引信息,

SELECT DBMS_METADATA.GET_DDL(INDEX,INDEX_NAME,AAA) FROM DUAL;

創建關于新表的索引。

其他表根據以上操作,進行創建恢復。

6.無法恢復對象

在步驟5中對受影響表進行數據恢復,只能恢復部分數據,有部分表在構造rowid時,產生了錯誤的rowid,無法進行恢復。

無法恢復數據表:(共計14張表無法恢復)

ACCESS_LOG_2020090147

ACCESS_LOG_2020090141

ACCESS_LOG_2020090118

ACCESS_LOG_2020070135

ACCESS_LOG_2020070132

ACCESS_LOG_2020110156

ACCESS_LOG_2020110151

ACCESS_LOG_2020110152

ACCESS_LOG_2020110148

ACCESS_LOG_2020110146

ACCESS_LOG_2020100157

ACCESS_LOG_2020100150

ACCESS_LOG_2020100135

ACCESS_LOG_2020100132

7.建議

數據庫運行在非歸檔模式下,故障發生后沒有有效的備份,很難進行數據的完全恢復,因此建議:

1.數據開啟歸檔模式

2.每日對數據庫進行備份(全備,增量備份)

3.后續業務使用新用戶,新表空間存儲數據。


END



文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129986.html

相關文章

  • Java 異常處理

    摘要:下面是異常處理機制的語法結構業務實現代碼輸入不合法如果執行塊里業務邏輯代碼時出現異常,系統自動生成一個異常對象,該對象被提交給運行時環境,這個過程被稱為拋出異常。 Java的異常機制主要依賴于try、catch、finally、throw和throws五個關鍵字, try關鍵字后緊跟一個花括號括起來的代碼塊(花括號不可省略),簡稱try塊,它里面放置可能引發異常的代碼 catch后對...

    senntyou 評論0 收藏0
  • java:異常處理

    摘要:異常處理機制異常與異常類的繼承體系在程序中,當程序出現意外情況時,系統會自動生成一個來通知程序,從異常發生出逐漸向外傳播,如果沒有人來處理該異常,就會交給來處理,對異常的處理方法是,打印異常跟蹤棧信息,并中止程序的執行。 1 為什么要處理異常? 異常機制可以使程序的異常處理代碼與正常業務代碼分離,保證程序代碼的健壯性。在設計程序的時候,好的程序需要盡可能處理已知的可能產生的錯誤,但是事...

    LuDongWei 評論0 收藏0
  • java 多線程編程核心技術 3—線程間通信

    摘要:在從返回前,線程與其他線程競爭重新獲得鎖。就緒隊列存儲了將要獲得鎖的線程,阻塞隊列存儲了被阻塞的線程。當線程呈狀態,調用線程對象的方法會出現異常。在執行同步代碼塊過程中,遇到異常而導致線程終止,鎖也會被釋放。 方法wait()的作用是使當前執行代碼的線程進行等待,wait()方法是Object類的方法,該方法用來將當前線程置入預執行隊列中,并且在wait()所在的代碼行處停止執行,直...

    Dogee 評論0 收藏0
  • 異常機制詳解

    摘要:當運行時系統遍歷調用棧而未找到合適的異常處理器,則運行時系統終止。不可查異常編譯器不要求強制處置的異常包括運行時異常與其子類和錯誤。 目錄介紹 1.什么是異常 2.異常 2.1 異常的概述和分類【了解】 2.2 JVM默認是如何處理異常的【理解】 2.3 異常處理的兩種方式【理解】 2.4 try...catch的方式處理異常【掌握】 2.5 編譯期異常和運行期異常的區別【理解】...

    wanghui 評論0 收藏0
  • 分布式鎖的原理和實現詳解

    摘要:分布式情況下這個就需要換成分布式鎖以保證數據一致性。三分布式鎖實現原理所需的依賴一個擁有強一致性的服務發現存儲倉庫。保證數據一致性一個具有高可用性的服務發現存儲倉庫。 一、基本概念 分布式鎖,是單機鎖的一種擴展,主要是為了鎖住分布式系統中不同機器代碼的物理塊或邏輯塊。以此保證不同機器之間的邏輯一致性。 二、一個簡單的案例 對DB寫操作的雙檢鎖案例 偽代碼如下 if (可以插入一條數...

    young.li 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<