mysql数据库置疑_SQL数据库置疑 823 824 错误修复 无法附加处理
SQL數(shù)據(jù)庫為什么會置疑?
這個原因有很多,例如陣列崩潰導(dǎo)致數(shù)據(jù)庫文件頁面損壞,病毒破壞,分區(qū)損壞。斷電 非法關(guān)機等因素
怎樣防止數(shù)據(jù)庫置疑?
遠(yuǎn)程備份或者備份到本機另一塊硬盤是最佳方式,平時要多注意預(yù)防病毒 文件系統(tǒng)檢查(chkdsk檢測分區(qū)看看有無壞道或者文件系統(tǒng)問題) UPS電源檢測 ?沒事的時候就行 DBCC CHECKDB檢測 再小的故障都要立即解決,數(shù)據(jù)庫不可以帶故障運行。
出現(xiàn)故障恢復(fù)方案?
數(shù)據(jù)庫立即改成完整模式,MDF放在A磁盤分區(qū),LDF放在B磁盤分區(qū),勤做備份和事務(wù)日志備份,如果數(shù)據(jù)庫置疑你自己無法解決 完全可以通過老備份跟事務(wù)日志自己恢復(fù)數(shù)據(jù)。,
假設(shè) 你沒有老的備份,那么怎么樣恢復(fù)數(shù)據(jù)?首先新建同名數(shù)據(jù)庫然后停止SQL服務(wù),刪除新建的MDF LDF文件 然后將損壞MDF文件放到新建位置,啟動SQL 執(zhí)行以下命令。
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='數(shù)據(jù)庫名字'
Go
sp_dboption '數(shù)據(jù)庫名字', 'single user', 'true'
Go
update sysdatabases set status =28 where name='數(shù)據(jù)庫名字'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption '數(shù)據(jù)庫名字', 'single user', 'false'
Go
dbcc rebuild_log('數(shù)據(jù)庫名字','D:\dataJIJIA\數(shù)據(jù)庫名字.ldf')
這樣就數(shù)據(jù)庫就OK了,下面在檢測數(shù)據(jù)庫有沒有損壞 執(zhí)行DBCC CHECKDB ('數(shù)據(jù)庫名字')如果出現(xiàn)紅色的故障 立即修復(fù)之,修復(fù)不了 就找專業(yè)人士了。
關(guān)于823 824 頁撕裂錯誤
這個823 就是數(shù)據(jù)庫物理頁面損壞,有時可能是頁面有但是校驗值損壞 導(dǎo)致無法識別該頁面,有時呢 因為斷電 或者文件系統(tǒng)問題 出現(xiàn)頁面丟失了也會報這個823錯誤。
824和頁撕裂錯誤 這兩個都是SQL頁面校驗機制搞的鬼,824這個錯誤SQL2005及以上版本的 checksum 校驗會報告,只要他報告了就表示頁面損壞了,或者頁面被垃圾數(shù)據(jù)填充了,或者有頁面上下指針指向了垃圾頁面。
頁撕裂這個錯誤就是 當(dāng)頁面正在寫入數(shù)據(jù)時由于斷電等原因造成頁面只寫了一半,或者頁面一半數(shù)據(jù)成了垃圾數(shù)據(jù) 就好比一張紙撕了一樣 裂開了,你明白了吧。
這些錯誤可以通過老備份的頁面還原,也可以重新生成校驗值,或者直接去除掉頁面指針 再次修復(fù)即可。
總結(jié)
以上是生活随笔為你收集整理的mysql数据库置疑_SQL数据库置疑 823 824 错误修复 无法附加处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Laravel5.2目录结构及compo
- 下一篇: transformer bert GP