SQLSERVER數(shù)據(jù)庫備份后無法還原的解決辦法
發(fā)布日期:2022-01-01 16:49 | 文章來源:源碼之家
可以直接復(fù)制數(shù)據(jù)庫文件, xxx.mdf 和 xxx.ldf (實(shí)際復(fù)制過程中需要先停止sqlserver服務(wù)才可以) 用 sp_attach_db 存儲過程 就能搞定. 示例
下面的示例將 pubs 中的兩個文件附加到當(dāng)前服務(wù)器。 EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
N表示Unicode的含義,就象類型中有varchar和nvarchar一樣,一個Unicode字符占兩個字節(jié).使用N'的情況主要是在雙字節(jié)系統(tǒng)環(huán)境中強(qiáng)制系統(tǒng)對每個字符用Unicode標(biāo)準(zhǔn)來解釋,否則如果你的數(shù)據(jù)庫.mdf文件是中文名而又不加N'的話,數(shù)據(jù)庫加載后名稱可能就變成亂碼,因?yàn)橄到y(tǒng)按單字節(jié)處理字符造成!
............................................................
如果確認(rèn)是SQL SERVER無法啟動,請按照下面步驟操作:
1.重裝SQL SERVER(注意要保留原來數(shù)據(jù)庫的數(shù)據(jù)庫文件,日志文件可不要)
2.在SQL Analysis中用sp_attach_db將數(shù)據(jù)庫加到服務(wù)器 sp_attach_db用法:
sp_attach_db
將數(shù)據(jù)庫附加到服務(wù)器。 語法
sp_attach_db [ @dbname = ] 'dbname'
, [ @filename1 = ] 'filename_n' [ ,...16 ] 參數(shù)
[@dbname =] 'dbname' 要附加到服務(wù)器的數(shù)據(jù)庫的名稱。該名稱必須是唯一的。dbname 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。 [@filename1 =] 'filename_n' 數(shù)據(jù)庫文件的物理名稱,包括路徑。filename_n 的數(shù)據(jù)類型為 nvarchar(260),默認(rèn)值為 NULL。最多可以指定 16 個文件名。參數(shù)名稱以 @filename1 開始,遞增到 @filename16。文件名列表至少必須包括主文件,主文件包含指向數(shù)據(jù)庫中其它文件的系統(tǒng)表。該列表還必須包括數(shù)據(jù)庫分離后所有被移動的文件。 返回代碼值
0(成功)或 1(失敗) 結(jié)果集
無 注釋
只應(yīng)對以前使用顯式 sp_detach_db 操作從數(shù)據(jù)庫服務(wù)器分離的數(shù)據(jù)庫執(zhí)行 sp_attach_db。如果必須指定多于 16 個文件,請使用帶有 FOR ATTACH 子句的 CREATE DATABASE。 如果將數(shù)據(jù)庫附加到的服務(wù)器不是該數(shù)據(jù)庫從中分離的服務(wù)器,并且啟用了分離的數(shù)據(jù)庫以進(jìn)行復(fù)制,則應(yīng)該運(yùn)行 sp_removedbreplication 從數(shù)據(jù)庫刪除復(fù)制。 權(quán)限
只有 sysadmin 和 dbcreator 固定服務(wù)器角色的成員才能執(zhí)行本過程。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章