国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

只有mdf文件的數據庫附加失敗的修復方法分享(置疑、只讀)

2024-08-31 00:57:40
字體:
來源:轉載
供稿:網友
只有mdf文件的數據庫附加失敗的修復
附加時報如下錯誤:
服務器: 消息 1813,級別 16,狀態 2,行 1
未能打開新數據庫 'test'。CREATE DATABASE 將終止。
設備激活錯誤。物理文件名 "d:/data/test_log.LDF' 可能有誤。
步驟:
A、用“企業管理器”新建一個同名的數據。可以修改默認路徑,為表述方便,我使用D:/data/,數據文件名test.mdf,日志文件名test_log.ldf
B、停止SQL服務
C、刪除test_log.ldf文件,將新建的test.mdf文件用舊的test.mdf文件替換。
D、啟動SQL服務。進入企業管理器后發現test數據顯示為“置疑”,此后保證無人連接上此數據庫,并不做任何操作。
E、設置test數據庫允許直接操作系統表。此操作可以在SQL Server Enterprise Manager里面選擇數據庫服務器,按右鍵,選擇“屬性”,在“服務器設置”頁面中將“允許對系統目錄直接修改”一項選中。也可以使用如下語句來實現。我在實際操作的時候沒有使用命令,命令方式大家可以自己測試 ^_^

復制代碼 代碼如下:


use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go


F、設置test數據庫為緊急修復模式。在查詢分析器中執行如下語句:update sysdatabases set status=-32768 where dbid=DB_ID('test')
復制代碼執行后在企業管理器中刷新后會發現ttdb數據庫顯示為“只讀/置疑/脫機/緊急模式”。可以看到數據庫里面的表,但是僅僅有系統表。
G、重建數據庫日志文件。在查詢分析器中執行如下語句:

復制代碼 代碼如下:


dbcc rebuild_log('test','d:/Data/test_log.ldf')


執行之前必須退出企業管理器,并且沒有人連接些數據庫。否則會報如下錯誤:
服務器: 消息 5030,級別 16,狀態 1,行 1
未能排它地鎖定數據庫以執行該操作。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
正常的消息:
警告: 數據庫 'test' 的日志已重建。已失去事務的一致性。應運行 DBCC CHECKDB 以驗證物理一致性。將必須重置數據庫選項,并且可能需要刪除多余的日志文件。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
此時打開在SQL Server Enterprise Manager里面會看到數據庫的狀態為“只供DBO使用”。可以訪問數據庫里面的用戶表了。
H、驗證數據庫一致性(可省略,不過我忠實地執行了^_^),查詢分析器中執行:

復制代碼 代碼如下:


dbcc checkdb('test')


報出了每個表的執行情況后,最后報:
CHECKDB 發現了 0 個分配錯誤和 0 個一致性錯誤(在數據庫 'test' 中)。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
I、設置數據庫為正常狀態。執行語句:

復制代碼 代碼如下:


sp_dboption 'test','dbo use only','false'


走到這一步,如果沒有報錯,已經可以長長舒一口氣了,去喝口水吧。:P
J、最后一步,我們要將步驟E中設置的“允許對系統目錄直接修改”一項恢復。怎么做當然不用再多說啦。也可以執行語句:

復制代碼 代碼如下:


sp_configure 'allow updates',0
go
reconfigure with override
go

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌吉市| 福鼎市| 西林县| 五家渠市| 哈尔滨市| 张掖市| 佛学| 黄大仙区| 兰州市| 凤台县| 安国市| 郑州市| 江城| 泰来县| 仙居县| 潞城市| 虹口区| 屯留县| 武胜县| 遂宁市| 鲁山县| 利辛县| 察雅县| 从化市| 涿鹿县| 德庆县| 朔州市| 崇义县| 罗定市| 林芝县| 彭水| 乡宁县| 平陆县| 红桥区| 日土县| 荔浦县| 曲水县| 东至县| 海丰县| 仁化县| 鄯善县|