新聞中心
以下的文章主要向大家講述的是MS SQL Server問(wèn)題與其正確解答方案,MS SQL Server在實(shí)際操作中我們經(jīng)常會(huì)遇到一些問(wèn)題,你是否對(duì)其頭疼至極,以下的文章主要是對(duì)這些問(wèn)題的實(shí)際解答。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到祁縣網(wǎng)站設(shè)計(jì)與祁縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋祁縣地區(qū)。
MS SQL Server問(wèn)題一、數(shù)據(jù)庫(kù)恢復(fù)時(shí)出現(xiàn)諸如“設(shè)備激活錯(cuò)誤,請(qǐng)使用with move選項(xiàng)來(lái)標(biāo)志該文件的有效位置”報(bào)錯(cuò)的解決方法
MS SQL Server問(wèn)題一、數(shù)據(jù)庫(kù)恢復(fù)時(shí)出現(xiàn)諸如“設(shè)備激活錯(cuò)誤,請(qǐng)使用with move選項(xiàng)來(lái)標(biāo)志該文件的有效位置”報(bào)錯(cuò)的解決方法
別人將一個(gè)數(shù)據(jù)庫(kù)備份發(fā)給了我,我為了看里面的表,所以我就在我機(jī)器里裝一個(gè)MSSQL數(shù)據(jù)庫(kù)?,F(xiàn)在我想把保存的這個(gè)備份數(shù)據(jù)庫(kù) caiwu.db 導(dǎo)入到我的 MS SQL數(shù)據(jù)庫(kù)中,發(fā)現(xiàn)在企業(yè)管理器中,操作:所有任務(wù)——>還原數(shù)據(jù)庫(kù)——>選擇“從設(shè)備”還原,在硬盤里找到了那個(gè)備份數(shù)據(jù)庫(kù)文件caiwu.db,導(dǎo)入。報(bào)錯(cuò):設(shè)備激活錯(cuò)誤,請(qǐng)使用with move選項(xiàng)來(lái)標(biāo)志該文件的有效位置。
解決方法:右鍵點(diǎn)“數(shù)據(jù)庫(kù)”(注意不是某個(gè)特定的數(shù)據(jù)庫(kù))--》所有任務(wù)--》還原數(shù)據(jù)庫(kù)--》選擇“從設(shè)備”還原,選擇要還原成的數(shù)據(jù)庫(kù)名,然后在選項(xiàng)卡中,選擇最現(xiàn)有數(shù)據(jù)庫(kù)上強(qiáng)制還原數(shù)據(jù)庫(kù),然后在下面修改數(shù)據(jù)庫(kù)還原后的物理路徑,這個(gè)路徑要是存在的一個(gè)路徑,否則就會(huì)出現(xiàn)上面的錯(cuò)誤,邏輯文件名可以不用改。
MS SQL Server問(wèn)題三、怎么樣把sql server 2000的用戶表的所有者,改成dbo,而不是用戶名。
(附修改存儲(chǔ)過(guò)程的方法,在查詢器中執(zhí)行:
EXEC sp_changeobjectowner 'usera.hishop_creatorder', 'dbo'),就把 usera的存儲(chǔ)過(guò)程改為dbo所有了。
答:方法一:右鍵點(diǎn)擊該表-》設(shè)計(jì)表,在上面的一排小圖標(biāo)中,點(diǎn)最后一個(gè)“條件約束”,點(diǎn)“表”頁(yè),在里面更改所有者。(若沒(méi)有條件約束的小圖標(biāo),可以點(diǎn)右鍵,能看到一個(gè)“check約束”的選項(xiàng))
方法二:利用腳本直接執(zhí)行,用系統(tǒng)帳號(hào)或者超戶登陸到該數(shù)據(jù)庫(kù),然后執(zhí)行下面語(yǔ)句:
- sp_configure 'allow updates','1'
- go
- reconfigure with override
- go
- update sysobjects set uid=1 where uid<>1
- go
- sp_configure 'allow updates','0'
- go
- reconfigure with override
第二種方法只能使用一次,第二次使用會(huì)出錯(cuò)。
三、只有mdf和ldf文件,甚至只有mdf文件,如何恢復(fù)數(shù)據(jù)庫(kù)
1. 首先確認(rèn)已經(jīng)備份了.mdf和.ldf文件。
2. 在SQL Server中新建一個(gè)同名的數(shù)據(jù)庫(kù),然后停止SQL Server服務(wù)。
3. 用原有的.mdf和.ldf文件覆蓋新建數(shù)據(jù)庫(kù)對(duì)應(yīng)的.mdf和.ldf文件。
4. 重新啟動(dòng)SQL Server服務(wù),這是應(yīng)該會(huì)看到這個(gè)數(shù)據(jù)庫(kù)處于置疑(Suspect)狀態(tài)。(人品好的話,這個(gè)時(shí)候數(shù)據(jù)庫(kù)就已經(jīng)恢復(fù)正常了,上次xrf的數(shù)據(jù)庫(kù)就是這樣被我恢復(fù)的。人品不好的話,下面的步驟也不行,我有一次就是找了一個(gè)北京做數(shù)據(jù)恢復(fù)的公司才恢復(fù)完畢。)
5. 在SQL查詢分析器中執(zhí)行以下命令,以允許更新系統(tǒng)表:
- use master
- go
- sp_configure ‘a(chǎn)llow updates’,1
- reconfigure with override
- go
6. 將這個(gè)數(shù)據(jù)庫(kù)置為緊急模式:
- update sysdatabases set status = 32768 where name = 'db_name'
- go
7. 使用DBCC CHECKDB命令檢查數(shù)據(jù)庫(kù)中的錯(cuò)誤:
- DBCC CHECKDB(‘db_name’)
- GO
8. 如果DBCC CHECKDB命令失敗,請(qǐng)轉(zhuǎn)至第10步,否則先將數(shù)據(jù)庫(kù)置為單用戶模式,再嘗試對(duì)其進(jìn)行修復(fù):
- sp_dboption 'db_name',’single user’,’true’
- DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)
- GO
如果在執(zhí)行DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令時(shí)提示說(shuō)數(shù)據(jù)庫(kù)未處于單用戶模式狀態(tài)的話,則重新啟動(dòng)SQL Server服務(wù),然后繼續(xù)嘗試。
9. 如果DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令失敗,請(qǐng)轉(zhuǎn)至第10步,否則若成功修復(fù)了數(shù)據(jù)庫(kù)中的錯(cuò)誤:
重新執(zhí)行DBCC CHECKDB(‘db_name’)命令,確認(rèn)數(shù)據(jù)庫(kù)中已沒(méi)有錯(cuò)誤存在。
清除數(shù)據(jù)庫(kù)的置疑狀態(tài):sp_resetstatus 'db_name'
清除數(shù)據(jù)庫(kù)的單用戶模式狀態(tài):sp_dboption 'db_name',’single user’,’false’
重新啟動(dòng)SQL Server服務(wù),如果一切正常的話,則數(shù)據(jù)庫(kù)已經(jīng)成功恢復(fù)。
10. 如果以上步驟都不能解決問(wèn)題的話,請(qǐng)參考附件中的文檔嘗試通過(guò)重建事務(wù)日志來(lái)恢復(fù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
如果您只有MDF文件,問(wèn)題就更加復(fù)雜一些,我們需要直接重建事務(wù)日志了:
1. 在SQL Server中新建一個(gè)同名的數(shù)據(jù)庫(kù),然后停止SQL Server服務(wù)。
2. 用原有的ldf文件覆蓋新建數(shù)據(jù)庫(kù)對(duì)應(yīng)的.mdf文件,將其日志文件(.ldf)刪除。
3. 啟動(dòng)SQL Server服務(wù),并將數(shù)據(jù)庫(kù)置為緊急模式(同上: 步驟5和步驟6)。
4. 停止并重新啟動(dòng)SQL Server服務(wù)。
5. 執(zhí)行以下命令重建數(shù)據(jù)庫(kù)日志文件:(下面是個(gè)示例,您要用您實(shí)際的數(shù)據(jù)庫(kù)名)
- DBCC REBUILD_LOG(’cas_db’, 'D:\cas_db\cas_db_Log.LDF')
6. 重新將該數(shù)據(jù)庫(kù)置為單用戶模式。(http://support.microsoft.com/?id=264154)
7. 再次嘗試使用DBCC CHECKTABLE或DBCC CHECKDB命令檢查并修復(fù)數(shù)據(jù)庫(kù)中的錯(cuò)誤
本篇文章來(lái)源于:開(kāi)發(fā)學(xué)院 http://edu.codepub.com 原文鏈接:http://edu.codepub.com/2009/0714/9655.php
標(biāo)題名稱:MSSQLServer問(wèn)題與其正確解答方案
轉(zhuǎn)載來(lái)于:http://fisionsoft.com.cn/article/djgojos.html


咨詢
建站咨詢
