* 將要附加的文件拷貝到 SQL Server 默認的 Data 目錄,此時附加就會成功;

成都創(chuàng)新互聯(lián)公司主營翔安網(wǎng)站建設(shè)的網(wǎng)絡公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),翔安h5微信小程序開發(fā)搭建,翔安網(wǎng)站營銷推廣歡迎翔安等地區(qū)企業(yè)咨詢
* 在登錄驗證時,選擇“Windows 身份驗證”,而不是“SQL Server 身份驗證”,即便你的登錄帳號是 sa;
* 如果一定要使用“SQL Server 身份驗證”,請更改登錄帳號的權(quán)限使其對要附加文件有完全操作權(quán)限;
* 將 SQL Server 服務的帳戶登錄身份由 Network Service 改為 Local Service;
sqlserver附加數(shù)據(jù)庫錯誤823的解決方案
一、SQL-Server附加數(shù)據(jù)庫時失敗。
1、異常情況:服務器在正常運行的情況下突然斷電,導致數(shù)據(jù)庫文件損壞,具體表現(xiàn)是:數(shù)據(jù)庫名后面有“(置疑)”字樣。
2、異常分析:關(guān)于823錯誤的 SQL-SERVER 中的幫助:
================================
錯誤 823
嚴重級別 24
消息正文
在文件 "%4!" 的偏移量 %3! 處的 %2! 過程中,檢測到 I/O 錯誤 %1!。
解釋
Microsoft SQL Server 在對某設(shè)備進行讀或?qū)懻埱髸r遇到 I/O 錯誤。該錯誤通常表明磁盤問題。但是,錯誤日志中在錯誤 823 之前記錄的其它核心消息應指出涉及了哪個設(shè)備。
3、解決辦法:
在SQL-Server企業(yè)管理器中,新建同名數(shù)據(jù)庫(這里假設(shè)為Test)后,停止數(shù)據(jù)庫,把損壞的數(shù)據(jù)庫文件Data.mdf和Test_log.LDF覆蓋剛才新建數(shù)據(jù)庫目錄下的Data.mdf和Test_log.LDF,同時刪除Test_log.LDF文件;啟動數(shù)據(jù)庫服務,發(fā)現(xiàn)數(shù)據(jù)庫名Test后面有“置疑”字樣。不要緊,打開SQL自帶查詢分析器,分別執(zhí)行如下SQL語句:
第一、
exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打開修改系統(tǒng)表的開關(guān) */
第二、
update sysdatabases set status=32768 where name='數(shù)據(jù)庫名' /* 設(shè)置數(shù)據(jù)庫狀態(tài) */
第三、
DBCC REBUILD_LOG ('數(shù)據(jù)庫名','D:\database\Test_Log.LDF') /* 重建LDF文件 */
第四、
update sysdatabases set status=0 where name='數(shù)據(jù)庫名' /* 重置數(shù)據(jù)庫狀態(tài) */
第五、
restore database 數(shù)據(jù)庫名 WITH RECOVERY /* 恢復數(shù)據(jù)庫 */
第六、
exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 關(guān)閉打開修改系統(tǒng)表的開關(guān) */
按照此方法操作,應該能修復數(shù)據(jù)庫正常訪問了。如果問題依然存在,最笨的一個方法就是新建另一個數(shù)據(jù)庫,把原數(shù)據(jù)庫(Test)各個表的數(shù)據(jù)導出到新建數(shù)據(jù)庫表中。
============================================================
補充說明:用上面的六步把數(shù)據(jù)庫置疑的問題解決了,但是數(shù)據(jù)庫表里還有損壞的表(inf_gdscode),把壞表導出的時候也不成功。最后在查詢分析器里運行:
USE nmgbt_hcxuexipos (數(shù)據(jù)庫名)
GO
DBCC CHECKTABLE ('inf_gdscode',REPAIR_ALLOW_DATA_LOSS)
GO
打開sqlserver management studio,登錄身份選擇windows身份驗證,點擊連接
進入管理器中,選擇數(shù)據(jù)庫,右鍵,在彈出的菜單選擇“附加”,如圖所示,選擇要附加的文件后,點擊附加,如果沒有報錯,則完成附加,否則,需要接下來的數(shù)據(jù)修復。
報錯,附加失敗后,請新建數(shù)據(jù)庫,且要與要附加的數(shù)據(jù)庫同名。如要附加的數(shù)據(jù)庫為skhprint,要新建的數(shù)據(jù)庫名也要命名為skhprint,如圖,點擊確定,完成數(shù)據(jù)庫創(chuàng)建
停止數(shù)據(jù)庫
將原mdf文件,如skhprint.mdf復制到新創(chuàng)建的數(shù)據(jù)庫所在目錄中,之后,開啟服務器
這是,會發(fā)現(xiàn)skhprint質(zhì)疑,接下來要打開查詢分析器,輸入如下代碼:
use master
--declare @databaseName varchar(50)
--set @databaseName='skhprint'
--1修改服務器設(shè)置:允許對系統(tǒng)目錄進行直接修改
sp_configure 'allow updates',1 reconfigure with override
--2將數(shù)據(jù)庫置為緊急狀態(tài)
update master.dbo.sysdatabases set status = 32768 where name = 'skhprint'
--3刪除新的ldf文件,重建日志:
dbcc rebuild_log('skhprint', 'f:\skhprint_log_new.ldf')--假設(shè)把新日志在f盤
update master.dbo.sysdatabases set status = 16 where name = 'skhprint'
--4修改服務器設(shè)置:取消 允許對系統(tǒng)目錄進行直接修改
sp_configure 'allow updates', 0 reconfigure with override
--再使用檢查工具修復錯誤 dbcc
--5設(shè)置為單用戶模式
alter database skhprint set single_user with rollback immediate
--6 修復數(shù)據(jù)庫
dbcc checkdb ('skhprint',REPAIR_ALLOW_DATA_LOSS)
--7 設(shè)置為多用戶模式
alter database skhprint set multi_user
--執(zhí)行完畢之后,如果還有錯誤,重復執(zhí)行6,直到?jīng)]有錯誤為止。
--根據(jù)提示操作
--如果沒有其他問題,則修復成功!
你的master中已經(jīng)有一個和你的附加的數(shù)據(jù)庫同名的數(shù)據(jù)庫了,你可以將同名的數(shù)據(jù)庫改個名字,在附加別的數(shù)據(jù)庫,如果不想,先備份刪除了在附加!
分享文章:sqlserver附加與,sqlserver數(shù)據(jù)庫附加
URL網(wǎng)址:http://chinadenli.net/article29/dsgjhch.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、自適應網(wǎng)站、定制網(wǎng)站、移動網(wǎng)站建設(shè)、定制開發(fā)、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)