成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

遇到物理壞塊后數(shù)據(jù)恢復(fù)過(guò)程

IT那活兒 / 2619人閱讀
遇到物理壞塊后數(shù)據(jù)恢復(fù)過(guò)程

點(diǎn)擊上方藍(lán)字關(guān)注我們


故障描述


工作中發(fā)現(xiàn)主機(jī)b-domain3上AAA數(shù)據(jù)庫(kù)異常,數(shù)據(jù)庫(kù)處于mount狀態(tài),使用命令打開(kāi)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)出現(xiàn)如下錯(cuò)誤

經(jīng)查詢此錯(cuò)誤為磁盤(pán)產(chǎn)生壞塊,數(shù)據(jù)庫(kù)編號(hào)為20的文件在進(jìn)行CP命令時(shí),無(wú)法正常進(jìn)行,其余文件可正常進(jìn)行,確定為已損壞文件。


  故障恢復(fù)  


數(shù)據(jù)庫(kù)處于noarchivelog模式,備份文件時(shí)間為2017年份,無(wú)法使用,故進(jìn)行數(shù)據(jù)恢復(fù)時(shí)會(huì)丟失數(shù)據(jù),只能進(jìn)行部分恢復(fù)。

1.確定表空間所有對(duì)象

a) LOB字段

b) 子分區(qū)

c) 分區(qū)表

d) 普通表

e) 子分區(qū)索引

f) 分區(qū)索引

g) 普通索引

2.確定非20號(hào)文件對(duì)象

select ‘a(chǎn)lter 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)  使用步驟三中生成的腳本進(jìn)行表空間遷移,將正常表從AAA_OBS_DATA表空間遷移到AAA_OBS_DATA1表空間。

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

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)  遷移索引(根據(jù)步驟1中g(shù)序列生成的內(nèi)容)

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號(hào)文件中的對(duì)象

selectdistinct owner,segment_name from dba_extents wheresegment_type=TABLE and relative_fno=20;(部分?jǐn)?shù)據(jù))  

5.恢復(fù)20號(hào)文件中受影響對(duì)象

根據(jù)步驟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;


根據(jù)data_object_id,relative_fno,block_id構(gòu)造最大/最小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;


創(chuàng)建表:

根據(jù)影響最小rowid創(chuàng)建表

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

根據(jù)插入影響最大的rowid之后數(shù)據(jù)

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;

創(chuàng)建關(guān)于新表的索引。

其他表根據(jù)以上操作,進(jìn)行創(chuàng)建恢復(fù)。

6.無(wú)法恢復(fù)對(duì)象

在步驟5中對(duì)受影響表進(jìn)行數(shù)據(jù)恢復(fù),只能恢復(fù)部分?jǐn)?shù)據(jù),有部分表在構(gòu)造rowid時(shí),產(chǎn)生了錯(cuò)誤的rowid,無(wú)法進(jìn)行恢復(fù)。

無(wú)法恢復(fù)數(shù)據(jù)表:(共計(jì)14張表無(wú)法恢復(fù))

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.建議

數(shù)據(jù)庫(kù)運(yùn)行在非歸檔模式下,故障發(fā)生后沒(méi)有有效的備份,很難進(jìn)行數(shù)據(jù)的完全恢復(fù),因此建議:

1.數(shù)據(jù)開(kāi)啟歸檔模式

2.每日對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份(全備,增量備份)

3.后續(xù)業(yè)務(wù)使用新用戶,新表空間存儲(chǔ)數(shù)據(jù)。


END



文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129986.html

相關(guān)文章

  • Java 異常處理

    摘要:下面是異常處理機(jī)制的語(yǔ)法結(jié)構(gòu)業(yè)務(wù)實(shí)現(xiàn)代碼輸入不合法如果執(zhí)行塊里業(yè)務(wù)邏輯代碼時(shí)出現(xiàn)異常,系統(tǒng)自動(dòng)生成一個(gè)異常對(duì)象,該對(duì)象被提交給運(yùn)行時(shí)環(huán)境,這個(gè)過(guò)程被稱為拋出異常。 Java的異常機(jī)制主要依賴于try、catch、finally、throw和throws五個(gè)關(guān)鍵字, try關(guān)鍵字后緊跟一個(gè)花括號(hào)括起來(lái)的代碼塊(花括號(hào)不可省略),簡(jiǎn)稱try塊,它里面放置可能引發(fā)異常的代碼 catch后對(duì)...

    senntyou 評(píng)論0 收藏0
  • java:異常處理

    摘要:異常處理機(jī)制異常與異常類(lèi)的繼承體系在程序中,當(dāng)程序出現(xiàn)意外情況時(shí),系統(tǒng)會(huì)自動(dòng)生成一個(gè)來(lái)通知程序,從異常發(fā)生出逐漸向外傳播,如果沒(méi)有人來(lái)處理該異常,就會(huì)交給來(lái)處理,對(duì)異常的處理方法是,打印異常跟蹤棧信息,并中止程序的執(zhí)行。 1 為什么要處理異常? 異常機(jī)制可以使程序的異常處理代碼與正常業(yè)務(wù)代碼分離,保證程序代碼的健壯性。在設(shè)計(jì)程序的時(shí)候,好的程序需要盡可能處理已知的可能產(chǎn)生的錯(cuò)誤,但是事...

    LuDongWei 評(píng)論0 收藏0
  • java 多線程編程核心技術(shù) 3—線程間通信

    摘要:在從返回前,線程與其他線程競(jìng)爭(zhēng)重新獲得鎖。就緒隊(duì)列存儲(chǔ)了將要獲得鎖的線程,阻塞隊(duì)列存儲(chǔ)了被阻塞的線程。當(dāng)線程呈狀態(tài),調(diào)用線程對(duì)象的方法會(huì)出現(xiàn)異常。在執(zhí)行同步代碼塊過(guò)程中,遇到異常而導(dǎo)致線程終止,鎖也會(huì)被釋放。 方法wait()的作用是使當(dāng)前執(zhí)行代碼的線程進(jìn)行等待,wait()方法是Object類(lèi)的方法,該方法用來(lái)將當(dāng)前線程置入預(yù)執(zhí)行隊(duì)列中,并且在wait()所在的代碼行處停止執(zhí)行,直...

    Dogee 評(píng)論0 收藏0
  • 異常機(jī)制詳解

    摘要:當(dāng)運(yùn)行時(shí)系統(tǒng)遍歷調(diào)用棧而未找到合適的異常處理器,則運(yùn)行時(shí)系統(tǒng)終止。不可查異常編譯器不要求強(qiáng)制處置的異常包括運(yùn)行時(shí)異常與其子類(lèi)和錯(cuò)誤。 目錄介紹 1.什么是異常 2.異常 2.1 異常的概述和分類(lèi)【了解】 2.2 JVM默認(rèn)是如何處理異常的【理解】 2.3 異常處理的兩種方式【理解】 2.4 try...catch的方式處理異?!菊莆铡?2.5 編譯期異常和運(yùn)行期異常的區(qū)別【理解】...

    wanghui 評(píng)論0 收藏0
  • 分布式鎖的原理和實(shí)現(xiàn)詳解

    摘要:分布式情況下這個(gè)就需要換成分布式鎖以保證數(shù)據(jù)一致性。三分布式鎖實(shí)現(xiàn)原理所需的依賴一個(gè)擁有強(qiáng)一致性的服務(wù)發(fā)現(xiàn)存儲(chǔ)倉(cāng)庫(kù)。保證數(shù)據(jù)一致性一個(gè)具有高可用性的服務(wù)發(fā)現(xiàn)存儲(chǔ)倉(cāng)庫(kù)。 一、基本概念 分布式鎖,是單機(jī)鎖的一種擴(kuò)展,主要是為了鎖住分布式系統(tǒng)中不同機(jī)器代碼的物理塊或邏輯塊。以此保證不同機(jī)器之間的邏輯一致性。 二、一個(gè)簡(jiǎn)單的案例 對(duì)DB寫(xiě)操作的雙檢鎖案例 偽代碼如下 if (可以插入一條數(shù)...

    young.li 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<