SQLSERVER資料庫中的5173錯誤解決方案_MsSql

來源:互聯網
上載者:User

昨天同事給你我一個有問題的資料庫,叫我修複一下因為客戶那邊需要這個資料庫,這個資料庫只有一個mdf檔案和一個ldf檔案,

當我附加資料庫的時候報錯,資料庫是SQL2005

附上有損壞的資料庫檔案:

因為之前在論壇也遇到過,所以按照論壇的方法來解決,結果還是不行

把ldf檔案移到別的地方,然後附加的時候使用下面SQL語句重建交易記錄檔

我的資料庫檔案放在C:\Users\Administrator\Desktop\建立檔案夾目錄下

複製代碼 代碼如下:

USE [master]
GO
CREATE DATABASE [AdventureWorks2012] ON
( FILENAME = N'C:\Users\Administrator\Desktop\建立檔案夾\GPOSDB.mdf' )
FOR ATTACH_REBUILD_LOG
GO

報錯內容:
複製代碼 代碼如下:

1 檔案啟用失敗。物理檔案名稱'D:\MSSSQL\Data\GPOSDB_log.LDF'可能不正確。
2 由於資料庫沒有完全關閉,無法重建日誌。
3 訊息 1813,層級 16,狀態 2,第 1 行
4 無法開啟新資料庫 'GPOSDB'。CREATE DATABASE 中止。

我現在按照這篇文章再試一下

http://www.blogjava.net/kent/articles/200991.html

先建立一個GPOSDB的空庫,然後停掉SQL服務

將剛才產生的資料庫的記錄檔GPOSDB_log.ldf刪除

用要恢複的GPOSDB.mdf檔案覆蓋剛才產生的資料庫資料檔案GPOSDB.mdf

然後把有問題的GPOSDB.mdf檔案放在D盤,因為我建立的GPOSDB資料庫放在D盤

啟動SQL服務

文章說會顯示資料庫置疑,但是我的沒有顯示置疑

設定資料庫允許直接作業系統表

在SSMS裡輸入下面SQL語句

複製代碼 代碼如下:

USE master
go
sp_configure 'allow updates', 1
go
RECONFIGURE WITH OVERRIDE
go

設定GPOSDB為緊急修複模式
複製代碼 代碼如下:

ALTER DATABASE [GPOSDB] SET EMERGENCY
GO
ALTER DATABASE GPOSDB SET SINGLE_USER
GO

UPDATE sysdatabases
SET status = -32768
WHERE dbid = DB_ID('GPOSDB')
GO

但是報錯
複製代碼 代碼如下:

1 訊息 259,層級 16,狀態 1,第 1 行
2 不允許對系統目錄進行即席更新。

嘗試重建日誌,但是語法錯誤,估計那篇文章是SQL2000的
複製代碼 代碼如下:

1 DBCC rebuild_log('GPOSDB','D:\GPOSDB_log.ldf')
2 GO
1 訊息 2526,層級 16,狀態 3,第 1 行
2 DBCC 語句錯誤。請查閱文檔以瞭解正確的 DBCC 文法和選項。

一查果然是

--* DBCC REBUILDLOG
--重建SQL Server 2000交易記錄檔

其實一開始在步驟“設定資料庫允許直接作業系統表” 就懷疑是不是SQL2000的,因為SQL2005或以後已經不能修改系統資料表了

最後把交易記錄檔也放到D盤,然後使用下面的SQL語句來修複還是不行

複製代碼 代碼如下:

ALTER DATABASE [GPOSDB] SET EMERGENCY
GO
ALTER DATABASE GPOSDB SET SINGLE_USER
GO

DBCC CheckDB (GPOSDB, REPAIR_ALLOW_DATA_LOSS)
GO

複製代碼 代碼如下:

訊息 5173,層級 16,狀態 1,第 2 行
一個或多個檔案與資料庫的主檔案不匹配。如果是嘗試附加資料庫,請使用正確的檔案重試該操作。如果這是現有資料庫,則檔案可能已損壞,應該從備份進行還原。
記錄檔 'D:\GPOSDB_log.ldf' 與主檔案不匹配。該檔案可能來自另一資料庫,或者可能以前重建了日誌。
訊息 5123,層級 16,狀態 1,第 2 行
嘗試開啟或建立物理檔案 'D:\MSSSQL\Data\GPOSDB_log.LDF' 時,CREATE FILE 遇到作業系統錯誤 3(系統找不到指定的路徑。)。
訊息 5024,層級 16,狀態 2,第 2 行
在 sysfiles1 中找不到主記錄檔所對應的條目。無法重建日誌。
訊息 5028,層級 16,狀態 2,第 2 行
系統無法啟用足夠的資料庫來重建日誌。
GPOSDB的 DBCC 結果。
CHECKDB 在資料庫 'GPOSDB' 中發現 0 個分配錯誤和 0 個一致性錯誤。
訊息 7909,層級 20,狀態 1,第 2 行
緊急模式修複失敗。您必須從備份中還原。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.