對于事務 ID (0:233626),無法在數據庫 'master' (數據庫 ID 為 1)的頁 (1:86) 上重做日志記錄 (5053:264:5)。頁: LSN = (5048:200:11),類型 = 1。日志: 操作碼 = 4,上下文 2,上一頁的 LSN: (5053:224:5)。請從數據庫備份還原該數據庫,或者修復它。
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
前幾天因為處理T3的事兒,要裝SQL2005,因為“master”數據庫被損壞的事兒,可是咋也不能修復,如果你也整好看到這篇文章,那恭喜你,別浪費感情了,抓緊安裝一個一樣的系統,一個一樣的sql,替換master數據即可,其中,別無他法;那就來說說這次的事兒吧;先啦看看錯誤;
說說“master”數據庫
master庫對于SQLServer來說,是很重要的系統數據庫,保存著所有Sqlserver的用戶信息、數據庫信息等,當數據庫崩潰時,master數據庫的恢復成功與否起著重要的作用。這就跟Oracle的System表空間一樣,非常的重要。
“master”數據庫損壞解決方案
網上提供了很多解決方案,有的說將服務的賬號改成本地賬號、sql server 安裝目錄把“壓縮以釋放空間”選項勾選去掉都沒解決問題,根據N種方式來解決,所有都是白扯,最后的最后最后,還是通過將另一個正常啟動的數據庫的master庫的mdf和ldf文件拷貝覆蓋掉就正常了,這證實了master數據庫壞了。數據庫安裝路徑根據自己數據庫的版本和系統定。 查詢自己數據庫的版本再此??微軟SQL Server對應內部數據庫版本號(515、539、611、612、661、665、706、782、869)(sql版本號查詢)
“master”數據庫恢復方法:
備份數據前期準備:
(1)在備用機準備好和生產機器一樣的sql2005數據庫環境(注意數據庫版本要一致)
(2)準備好備份恢復所需的數據,將生產機bak文件全部copy到備用機其他備份文件夾下即可;
1、停止數據庫服務。
2、將需要恢復的數據庫文件復制到另外的位置。
3、最后,在Sql Server Configuration Manager中啟動SQL Server服務成功。啟動數據庫服務。
我這里提供兩個sql2005數據庫的master庫,一個是X68一個是X64 到時候自主選擇即可;
Microsoft SQL Server Management Studio 9.00.1399.00
Microsoft Analysis Services 客戶端工具 2005.090.1399.00
Microsoft 數據訪問組件 (MDAC) 6.1.7601.17514 (win7sp1_rtm.101119-1850)
Microsoft MSXML 3.0 6.0
Microsoft Internet Explorer 9.11.9600.19377
Microsoft .NET Framework 2.0.50727.8806
操作系統 6.1.7601
延伸閱讀:(看到一個略微寫的有效的,就截圖了一下)
其他雜項延伸閱讀:
在用SQL Server 2005進行一項測試:如何一次刪除所有用戶數據庫時,沒注意到當前數據庫是master,結果,把這里的一些表都給刪除了,從而,數據庫引擎可以正常使用,但如果右擊任一數據庫,都會出現查找master里的一個表的操作(對象名 master.dbo.spt_values' 無效。 (Microsoft SQL Server,錯誤: 208)),而這個表被我刪除了,所以就運行不成功了,想壓縮數據庫還行用SQL語句,很麻煩。
在網上找的大都是SQL Server 2000 master數據庫重建帖子,關于SQL Server 2005 重建master的帖子基本上都是只有提問的,沒有回答的,于是在國外網站上搜索了下,發現一個,但也很不好使,后來順著他的關鍵詞:rebuid sql Server 2005 master找到了微軟的網站,沒想到微軟早就解決這問題了,按他說的做了一遍,OK,成功,在寫這文章時又把他的MSDN地址改了下,看看有沒有中文版的,沒想到還真有,可憐的搜索引擎呀,這么好的東西我怎么在baidu及google里都找不到呢。
雖然問題是解決了,不過還有一個問題,就是:重建后相當于數據庫重新安裝了一次,所有的登錄用戶,數據庫都沒了(聽說數據都在master里,master被重建了里面的數據庫相關信息當然沒了。數據庫文件還在,沒被刪除。),所以重建或者說修復好后,你還得把每個數據庫都附加進來,并建相關用戶。
微軟官方解決方法:
start /wait <CD or DVD Drive>\setup.exe /qn INSTANCENAME=<InstanceName> REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=<NewStrongPassword>
舉例:
start /wait L:\Servers\setup.exe /qn INSTANCENAME="MSSQLSERVER" REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=www_yongfa365_com
在某些偶然的情況下,會引起SQL Server 2005數據庫日志文件的損壞,比如:硬件故障、計算機非正常重啟或關機。
當SQL Server 2005數據庫日志文件損壞時,可能會出現以下情況:
1、在SQL Server Management Studio中顯示數據庫處于置疑(suspect)狀態。
2、事件日志可能會出現如下錯誤信息:
Could not redo log record (21737:686:9), for transaction ID (0:2334886), on page (1:37527), database 'Test' (database ID 15). Page: LSN = (21735:299:5), type = 2. Log: OpCode = 3, context 19, PrevPageLSN: (21737:615:1). Restore from a backup of the database, or repair the database.
During redoing of a logged operation in database 'Test', an error occurred at log record ID (76116:286:2). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.
3、無法分離數據庫
4、用CREATE DATABASE DBName ON ( FILENAME = N'DBFile' ) FOR ATTACH_REBUILD_LOG附加數據庫時出現提示:The log cannot be rebuilt because the database was not cleanly shut down.
問題:
前幾天生產工控機上啟動SQL Server 的時候出現“Windows 不能在 本地計算機 啟動 SQL Server (MSSQLSERVER)。有關更多信息,查閱系統事件日志。如果這是非 Microsoft 服務,請與服務廠商聯系,并參考特定服務錯誤代碼 3417”
恢復方法:
1、停止數據庫服務。
2、將需要恢復的數據庫文件復制到另外的位置。
3、啟動數據庫服務。
4、確認要恢復的數據庫文件已經成功復制到另外的位置,然后在SQL Server Management Studio中刪除要恢復的數據庫。
5、新建同名的數據庫(數據庫文件名也要相同)。
6、停止數據庫服務。
7、用第2步中備份的.mdf文件覆蓋新數據庫的同名文件。
8、啟動數據庫服務。
9、運行alter database dbname set emergency,將數據庫設置為emergency mode
10、運行下面的命令就可以恢復數據庫:
最后,在Sql Server Configuration Manager中啟動SQL Server服務成功。
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!