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