0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SQL SERVER數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

Frombyte ? 來源:Frombyte ? 作者:Frombyte ? 2022-09-29 11:39 ? 次閱讀

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境:
品牌存儲(chǔ)存放大小約80TB的SQL SERVER數(shù)據(jù)庫,數(shù)據(jù)庫包含兩個(gè)LDF文件,每10天生成一個(gè)500GB大小的NDF文件。

poYBAGM1Ez6AGPpHAAB8zYigUZQ066.png

北亞數(shù)據(jù)恢復(fù)——SQL SERVER數(shù)據(jù)恢復(fù)

數(shù)據(jù)庫故障&分析:
存儲(chǔ)損壞,SQL SERVER數(shù)據(jù)庫不可用。對(duì)數(shù)據(jù)庫文件進(jìn)行恢復(fù)后發(fā)現(xiàn)有幾個(gè)NDF文件大小變?yōu)?KB。

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)過程:
1、對(duì)故障存儲(chǔ)所有硬盤做鏡像備份,基于鏡像文件掃描數(shù)據(jù)庫碎片。
2、北亞數(shù)據(jù)恢復(fù)工程師根據(jù)NDF文件的頁面特征,按照文件號(hào)、頁號(hào)拼接碎片,重組生成這些0kb的NDF文件。
3、檢測數(shù)據(jù)庫文件。使用北亞自主研發(fā)的MSSQL文件檢測工具對(duì)所有數(shù)據(jù)文件進(jìn)行檢測,結(jié)果發(fā)現(xiàn)除了拼接出的NDF文件有少量的空頁之外,其他的文件都是正常的。
4、數(shù)據(jù)恢復(fù)工程師分析損壞lun后發(fā)現(xiàn)這些數(shù)據(jù)頁在存儲(chǔ)層面已經(jīng)不存在了。如果不能恢復(fù)這些數(shù)據(jù)頁,這幾個(gè)拼接出來的NDF文件就不能完全恢復(fù)。
5、嘗試附加數(shù)據(jù)庫,報(bào)錯(cuò) “處理數(shù)據(jù)庫的日志時(shí)出錯(cuò),如果可能請(qǐng)從備份還原。如果沒有可用的備份,可能需要重新生成日志”。
6、修改系統(tǒng)表,從系統(tǒng)表剔除掉最后添加的LDF文件,計(jì)算并修改校驗(yàn)。進(jìn)行無日志附加數(shù)據(jù)庫。報(bào)錯(cuò):“數(shù)據(jù)庫存在一致性錯(cuò)誤?!?/p>

pYYBAGM1ExyAKwV6AAHI654oBUE859.png

北亞數(shù)據(jù)恢復(fù)——SQL SERVER數(shù)據(jù)恢復(fù)

7、修改系統(tǒng)表,將系統(tǒng)表記錄這幾個(gè)NDF文件的塊數(shù)量的值改為和掃描拼接出來的NDF文件的塊數(shù)量一致,同時(shí)更改這幾個(gè)NDF文件首頁,使得數(shù)據(jù)庫中記錄的文件的塊數(shù)量和拼接出來的NDF的塊數(shù)量一致,計(jì)算并修改校驗(yàn)值。
8、無日志附加數(shù)據(jù)庫,報(bào)錯(cuò)數(shù)據(jù)庫存在一致性錯(cuò)誤。

pYYBAGM1EyaARmr1AAHJZEEHL6Q540.png

北亞數(shù)據(jù)恢復(fù)——SQL SERVER數(shù)據(jù)恢復(fù)

9、逐個(gè)修改系統(tǒng)表中這幾個(gè)損壞的NDF文件的塊數(shù)量,使其值等于報(bào)錯(cuò)塊前一頁。分析報(bào)錯(cuò),由于空頁都出現(xiàn)在這幾個(gè)NDF文件后面的十幾個(gè)塊中,截?cái)辔募?duì)數(shù)據(jù)完整性影響不大。重新修改系統(tǒng)表和NDF文件,將數(shù)據(jù)庫中記錄NDF塊數(shù)量的值改至報(bào)錯(cuò)的前一頁,計(jì)算并修改校驗(yàn)。
10、重新進(jìn)行無日志附加數(shù)據(jù)庫,報(bào)錯(cuò)“由于數(shù)據(jù)庫沒有完全關(guān)閉,無法重新生成日志”。

poYBAGM1Ey2AboEdAAE1URGGv-c292.png

北亞數(shù)據(jù)恢復(fù)——SQL SERVER數(shù)據(jù)恢復(fù)

11、修改NDF文件中的數(shù)據(jù)庫的狀態(tài)值,讓數(shù)據(jù)庫認(rèn)為是完全關(guān)閉的。重新附加數(shù)據(jù)庫成功。

pYYBAGM1EzSAXfmnAAFsMv9EqJI012.png

北亞數(shù)據(jù)恢復(fù)——SQL SERVER數(shù)據(jù)恢復(fù)

數(shù)據(jù)庫恢復(fù)數(shù)據(jù)驗(yàn)證:
數(shù)據(jù)庫文件成功附加后,用戶通過數(shù)據(jù)庫中的對(duì)象進(jìn)行查詢、驗(yàn)證,表中信息完整,確認(rèn)恢復(fù)出來的數(shù)據(jù)有效。

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)恢復(fù)

    關(guān)注

    10

    文章

    525

    瀏覽量

    17311
  • SQL Server
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    13413
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例

    Oracle數(shù)據(jù)庫故障: 機(jī)房異常斷電后,Oracle數(shù)據(jù)庫報(bào)錯(cuò):“system01.dbf需要更多的恢復(fù)來保持一致性,數(shù)據(jù)庫無法打開
    的頭像 發(fā)表于 09-30 13:31 ?151次閱讀
    Oracle<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—異常斷電后Oracle<b class='flag-5'>數(shù)據(jù)庫</b>啟<b class='flag-5'>庫</b>報(bào)錯(cuò)的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)SQL Server數(shù)據(jù)庫出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫故障: SQL Server附加數(shù)據(jù)庫出現(xiàn)錯(cuò)誤823,附加
    的頭像 發(fā)表于 09-20 11:46 ?228次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—<b class='flag-5'>SQL</b> <b class='flag-5'>Server</b><b class='flag-5'>數(shù)據(jù)庫</b>出現(xiàn)823錯(cuò)誤的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    干貨分享 如何采集OPC DA數(shù)據(jù)并存儲(chǔ)到SQL Server數(shù)據(jù)庫?

    在工業(yè)自動(dòng)化系統(tǒng)中,將OPC DA數(shù)據(jù)采集并存儲(chǔ)到SQL Server數(shù)據(jù)庫具有顯著的應(yīng)用價(jià)值。本文手把手教您完成這一操作,實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一管
    的頭像 發(fā)表于 08-09 10:46 ?354次閱讀
    干貨分享  如何采集OPC DA<b class='flag-5'>數(shù)據(jù)</b>并存儲(chǔ)到<b class='flag-5'>SQL</b> <b class='flag-5'>Server</b><b class='flag-5'>數(shù)據(jù)庫</b>?

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SqlServer數(shù)據(jù)庫底層File Record被截?cái)酁?的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫數(shù)據(jù)無法被讀取。 經(jīng)過數(shù)據(jù)庫數(shù)據(jù)
    的頭像 發(fā)表于 07-26 11:27 ?295次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—SqlServer<b class='flag-5'>數(shù)據(jù)庫</b>底層File Record被截?cái)酁?的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    恒訊科技分析:sql數(shù)據(jù)庫怎么用?

    SQL數(shù)據(jù)庫的使用通常包括以下幾個(gè)基本步驟: 1、選擇數(shù)據(jù)庫系統(tǒng): 選擇適合您需求的SQL數(shù)據(jù)庫系統(tǒng),如MySQL、PostgreSQL、M
    的頭像 發(fā)表于 07-15 14:40 ?259次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)SQL Server數(shù)據(jù)庫所在分區(qū)空間不足報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 某品牌服務(wù)器存儲(chǔ)中有兩組raid5磁盤陣列。操作系統(tǒng)層面跑著
    的頭像 發(fā)表于 07-10 13:54 ?375次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)數(shù)據(jù)庫所在分區(qū)空間不足導(dǎo)致sqlserver故障的數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)。服務(wù)器上部署sql server數(shù)據(jù)庫,數(shù)據(jù)庫存放在C盤。 數(shù)據(jù)庫故障: 工作人員
    的頭像 發(fā)表于 05-22 13:16 ?321次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—<b class='flag-5'>數(shù)據(jù)庫</b>所在分區(qū)空間不足導(dǎo)致sqlserver故障的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—raid5陣列上層Sql Server數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 5塊硬盤組建一組RAID5陣列,劃分LUN供windows系統(tǒng)服務(wù)器使用。windows系統(tǒng)服務(wù)器內(nèi)運(yùn)行了Sql Serve
    的頭像 發(fā)表于 05-08 11:43 ?430次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—raid5陣列上層<b class='flag-5'>Sql</b> <b class='flag-5'>Server</b><b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—ndf文件大小變?yōu)?KB的數(shù)據(jù)恢復(fù)案例

    存儲(chǔ)設(shè)備損壞導(dǎo)致存儲(chǔ)中SQL Server數(shù)據(jù)庫崩潰。對(duì)數(shù)據(jù)庫文件進(jìn)行恢復(fù)后,用戶發(fā)現(xiàn)有4個(gè)ndf文件的大小變?yōu)?KB。該
    的頭像 發(fā)表于 05-07 11:19 ?364次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)Sql Server數(shù)據(jù)庫文件丟失的數(shù)據(jù)恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)安裝windows server操作系統(tǒng)的服務(wù)器。一組由8塊硬盤組建的RAID5,劃分LUN供這臺(tái)服務(wù)器使用。 在windows服務(wù)器內(nèi)裝有SqlServer數(shù)據(jù)
    的頭像 發(fā)表于 04-11 15:38 ?738次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—<b class='flag-5'>Sql</b> <b class='flag-5'>Server</b><b class='flag-5'>數(shù)據(jù)庫</b>文件丟失的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—未開啟binlog的Mysql數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 本地服務(wù)器,windows server操作系統(tǒng) ,部署有mysql單實(shí)例,數(shù)據(jù)庫引擎類型為innodb,
    的頭像 發(fā)表于 12-08 14:18 ?999次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—未開啟binlog的Mysql<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    SQL Server數(shù)據(jù)庫備份方法

    SQL Server是一種用于管理和存儲(chǔ)數(shù)據(jù)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。備份數(shù)據(jù)庫是保護(hù)和恢復(fù)數(shù)據(jù)
    的頭像 發(fā)表于 11-23 14:27 ?1273次閱讀

    sql數(shù)據(jù)庫入門基礎(chǔ)知識(shí)

    SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)是一種用于管理關(guān)系型數(shù)據(jù)庫的編程語言。它被廣泛應(yīng)用于企業(yè)應(yīng)用、數(shù)據(jù)倉庫和網(wǎng)站開發(fā)等領(lǐng)域。了解SQL的基礎(chǔ)知識(shí)
    的頭像 發(fā)表于 11-23 14:24 ?1806次閱讀

    mysql和sql server區(qū)別

    MySQL和SQL Server是兩種常見的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),用于存儲(chǔ)和管理數(shù)據(jù)庫。雖然它們都支持SQL語言,但在其他方面
    的頭像 發(fā)表于 11-21 11:07 ?1376次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MSSQL Server報(bào)錯(cuò)“附加數(shù)據(jù)庫錯(cuò)誤823”的數(shù)據(jù)恢復(fù)案例

    MSSQL Server數(shù)據(jù)庫比較常見的報(bào)錯(cuò)是“附加數(shù)據(jù)庫錯(cuò)誤823”。如果數(shù)據(jù)庫有備份,只需要還原備份即可;如果無備份或者備份不可用,則需要使用專業(yè)的
    的頭像 發(fā)表于 11-10 16:20 ?801次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—MSSQL <b class='flag-5'>Server</b>報(bào)錯(cuò)“附加<b class='flag-5'>數(shù)據(jù)庫</b>錯(cuò)誤823”的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例