日韩欧美人妻无码精品白浆,夜夜嗨AV免费入口,国产欧美官网在线看,高校回应聋哑女生因长相完美被质疑

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQL Server 數(shù)據(jù)文件 MDF 修復

admin
2025年1月9日 21:54 本文熱度 372

對于CS模式的軟件系統(tǒng),數(shù)據(jù)庫文件損壞是常有的事。之所以損壞,我見過最多的場景無非是兩種:一是磁盤老化,很多系統(tǒng)使用了較長時間,磁盤還是win7上市前一直使用到現(xiàn)在的;二是斷電,有用戶一下班就將排插斷電或關電源總閘,無非是為了方便和省電。

不管是什么系統(tǒng),只要使用數(shù)據(jù)庫,我們一定要非常迫切需要對數(shù)據(jù)庫進行備份。CS軟件系統(tǒng),用戶是不會主動去備份的,因為他們也不了解數(shù)據(jù)庫,對數(shù)據(jù)安全也不敏感。也許有較負責任的商家,會幫助客戶做好定時備份任務。但發(fā)生損壞了,也需要人員進行修復。

接下來我們用一個實際案例進行數(shù)據(jù)庫的修復。某用戶附加數(shù)據(jù)庫的 mdf 和 ldf 文件,發(fā)生報錯無法附加,給到我們進行數(shù)據(jù)庫修復。一般遇到這種情況,我們也會懷疑客戶是不是直接拷貝 mdf 和 ldf 進行數(shù)據(jù)庫備份的。

我們可以用SSMS進行數(shù)據(jù)庫附加

USE [master]GOCREATE DATABASE [SampleDB] ON( FILENAME = N'E:\Backup\AAA\mssql\DATA\SampleDB_Data.mdf' ),( FILENAME = N'E:\Backup\AAA\mssql\DATA\SampleDB_log.ldf' ) FOR ATTACHGO

消息 1813,級別 16,狀態(tài) 2,第 3 行 無法打開新數(shù)據(jù)庫 'SampleDB'。CREATE DATABASE 中止。

消息 824,級別 24,狀態(tài) 2,第 3 行SQL Server 檢測到基于一致性的邏輯 I/O 錯誤 頁撕裂(簽名應該為: 0xaaaaaaaa,但實際為: 0x5555aaaa)。在文件 'E:\Backup\AAA\mssql\DATA\SampleDB_Data.mdf' 中、偏移量為 0x0000000a37c000 的位置對數(shù)據(jù)庫 ID 5 中的頁 (1:20926) 執(zhí)行 讀取 期間,發(fā)生了該錯誤。SQL Server 錯誤日志或系統(tǒng)事件日志中的其他消息可能提供了更詳細信息。這是一個威脅數(shù)據(jù)庫完整性的嚴重錯誤條件,必須立即糾正。請執(zhí)行完整的數(shù)據(jù)庫一致性檢查(DBCC CHECKDB)。此錯誤可以由許多因素導致;有關詳細信息,請參閱 SQL Server 聯(lián)機叢書。

消息 3313,級別 21,狀態(tài) 2,第 3 行 在重做數(shù)據(jù)庫 'SampleDB' 的日志中記錄的操作時,日志記錄 ID (9071:366:30) 出錯。通常,特定故障以前會在 Windows 事件日志服務中記錄為錯誤。請利用完整備份還原數(shù)據(jù)庫,或者修復該數(shù)據(jù)庫。

在預期內(nèi),果然報錯。我們要恢復數(shù)據(jù)庫,必須先把數(shù)據(jù)文件掛到數(shù)據(jù)庫實例中,我們可以另辟蹊徑來達到我們的目的。

  1. 創(chuàng)建一個同名數(shù)據(jù)庫

  2. 將數(shù)據(jù)庫設置離線

  3. 替換數(shù)據(jù)庫mdf與ldf

  4. 將數(shù)據(jù)庫設置在線

  5. 進行數(shù)據(jù)庫修復

當然,也有些第三方工具可以直接讀取 mdf 或 ldf 文件進行數(shù)據(jù)提取修復,這里我們就不考慮了?,F(xiàn)在我們先看看 mdf 與 ldf 的文件信息。

USE [master]GO-- 查看數(shù)據(jù)庫信息DBCC checkprimaryfile (N'E:\Backup\AAA\mssql\DATA\SampleDB_data.mdf' , 2)GODBCC checkprimaryfile (N'E:\Backup\AAA\mssql\DATA\SampleDB_data.mdf' , 3)GO

這些信息可以看到數(shù)據(jù)庫名稱、數(shù)據(jù)庫版本、邏輯文件名、原物理文件路徑等。我們盡量創(chuàng)建與原路徑同名的數(shù)據(jù)庫,可以用 Powershell 直接創(chuàng)建一個完整的路徑名稱

New-Item -Path "D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA" -ItemType Directory -Force

?

接下來我們根據(jù)以上信息,創(chuàng)建一個新的同名數(shù)據(jù)庫。

CREATE DATABASE [SampleDB]ON  PRIMARY ( NAME = N'xxxx00_Data', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\SampleDB_Data.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB ) LOG ON ( NAME = N'xxxx00_log', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\SampleDB_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)GO

創(chuàng)建完成后,我們將該數(shù)據(jù)庫離線(脫機)

ALTER DATABASE [SampleDB] SET OFFLINEGO

離線后,數(shù)據(jù)文件 mdf 和日志文件 ldf 就可以直接刪除了,然后用我們有問題的 mdf 和 ldf 進行替換,有時候需要注意 SQL Server 服務賬號是否有權限訪問該文件。

替換完成后,我們設置數(shù)據(jù)庫在線。

ALTER DATABASE [SampleDB] SET ONLINEGO

此時會提示出現(xiàn)錯誤如下,數(shù)據(jù)庫也處于“可疑”狀態(tài)。

消息926,級別14,狀態(tài)1,第43行無法打開數(shù)據(jù)庫'SampleDB'?;謴筒僮饕褜⒃摂?shù)據(jù)庫標記為SUSPECT。有關詳細信息,請參閱SQL Server錯誤日志。

消息5069,級別16,狀態(tài)1,第43ALTER DATABASE語句失敗。

消息9003,級別20,狀態(tài)15,第43行傳遞給數(shù)據(jù)庫'SampleDB'中的日志掃描操作的日志掃描號(1419:83:1)無效。此錯誤可能指示數(shù)據(jù)損壞,或者日志文件(.ldf)與數(shù)據(jù)文件(.mdf)不匹配。如果此錯誤是在復制期間出現(xiàn)的,請重新創(chuàng)建發(fā)布。否則,如果該問題導致啟動期間出錯,請從備份還原。

消息3414,級別21,狀態(tài)1,第43行恢復期間出錯,導致數(shù)據(jù)庫'SampleDB' (數(shù)據(jù)庫ID 5)無法重新啟動。請診斷并糾正這些恢復錯誤,或者從已知的正確備份中還原。如果無法更正錯誤,或者為意外錯誤,請與技術支持人員聯(lián)系。

接下來我們可以直接用常用的命令來進行數(shù)據(jù)庫修復。

-- 設置緊急模式ALTER DATABASE SampleDB SET EMERGENCY;--再次檢查DBDBCC CHECKDB (SampleDB);--設置單用戶模式ALTER DATABASE SampleDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE;--允許數(shù)據(jù)丟失修復數(shù)據(jù)庫DBCC CHECKDB (SampleDB, REPAIR_ALLOW_DATA_LOSS);--設置多用戶模式ALTER DATABASE SampleDB SET MULTI_USER;GO

通過 REPAIR_ALLOW_DATA_LOSS 修復數(shù)據(jù),相關修復信息如下。其中大部分是系統(tǒng)元數(shù)據(jù)有問題,還有一些用戶表的索引有問題。修復后新的頁面關系可能導致一些異常頁面數(shù)據(jù)丟失。


如果企業(yè)丟失了數(shù)據(jù),哪怕僅僅幾行數(shù)據(jù),對企業(yè)和客戶來說都是非常嚴重的問題。如果發(fā)現(xiàn)數(shù)據(jù)庫損壞,應盡快修復,在修復完成前不建議繼續(xù)使用該數(shù)據(jù)庫。若某個頁面損壞,我們還可以通過備份恢復某個頁面的數(shù)據(jù)。如果損壞過多,即使有損修復數(shù)據(jù),數(shù)據(jù)的完整性也沒有保障,數(shù)據(jù)之間的關系可能已經(jīng)不存在了,損失也相當于進一步在擴大。

因此,企業(yè)或用戶系統(tǒng)的數(shù)據(jù)庫,一定要做好備份。不僅要完整的全量備份,還需要日志增量備份。相互結合起來,可以保證任意時刻的數(shù)據(jù)都能被找回。這一定是數(shù)據(jù)管理者深入骨髓的理念!


閱讀原文:原文鏈接


該文章在 2025/1/10 11:11:58 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved