在SQL Server 7中由于MS重新設(shè)計(jì)了數(shù)據(jù)庫(kù)文件的存儲(chǔ)方式,取消了新建設(shè)備再建數(shù)據(jù)庫(kù)這一繁瑣的過程。新的存儲(chǔ)格式,一個(gè)數(shù)據(jù)庫(kù)包括兩個(gè)文件,mdf數(shù)據(jù)庫(kù)文件和ldf日志文件。所以我們?cè)谥匮b機(jī)器備份時(shí)可以
把你要備份的數(shù)據(jù)庫(kù)的這兩個(gè)文件拷貝出來,重新安裝之后再恢復(fù)。
在SQL Server中提供了這種恢復(fù)方式的存儲(chǔ)過程。
1.sp_attach_db [@dbname =] dbname,[@filename1 =] filename_n
給系統(tǒng)添加一個(gè)數(shù)據(jù)庫(kù),在dbname指定數(shù)據(jù)庫(kù)名稱,filename_n指定數(shù)據(jù)庫(kù)的文件和日志文件。比如我有一個(gè)voogiya的庫(kù),停止SQL Server服務(wù)備份voogiya_data.mdf,voogiya_log.ldf,啟動(dòng)SQL server,刪除掉這個(gè)庫(kù),然后再把這兩上文件拷到sql server DATA目錄中,在Query Analyzer中執(zhí)行如下語句:
EXEC sp_attach_db @dbname = Nvoogiya, @filename1 = Nd:\mssql7\data\voogiya_data.mdf, @filename2 = Nd:\mssql7\data\voogiya_log.ldf |
就會(huì)把這個(gè)庫(kù)加入到SQL Server Group中.
2.sp_attach_single_file_db [@dbname =] dbname,
[@physname =] physical_name |
這個(gè)命令和上面的功能一樣,在physical_name中只要寫上據(jù)庫(kù)的物理文件名就可以了,日志文件SQL server會(huì)重新建立。這個(gè)存儲(chǔ)過程的運(yùn)行要先執(zhí)行下面的存儲(chǔ)過程:
sp_detach_db @dbname = dbname |
同樣以上面的為例:
EXEC sp_detach_db @dbname = voogiya EXEC sp_attach_single_file_db @dbname = voogiya, @physname = d:\mssql7\data\voogiya_data.mdf |
要注意執(zhí)行以上存儲(chǔ)過程的用戶要在sysadmin中.
以上方法在windows Nt 4.0,service pack5,sql server 7.0上運(yùn)行通過。