用sql語(yǔ)句實(shí)現(xiàn)分離和附加數(shù)據(jù)庫(kù)的方法
發(fā)布日期:2022-01-30 11:13 | 文章來(lái)源:CSDN
分離數(shù)據(jù)庫(kù):
對(duì)于用存儲(chǔ)過(guò)程來(lái)分離數(shù)據(jù)庫(kù),如果發(fā)現(xiàn)無(wú)法終止用戶(hù)鏈接,可以使用ALTER DATABASE命令,并利用一個(gè)能夠中斷已存在鏈接的終止選項(xiàng)來(lái)把數(shù)據(jù)庫(kù)設(shè)置為SINGLE_USER模式,設(shè)置為SIGLE_USER代碼如下:
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE下面是分離數(shù)據(jù)庫(kù)的CMD命令
EXEC sp_detach_db DatabaseName一旦一個(gè)數(shù)據(jù)庫(kù)分離成功,從SQL Server角度來(lái)看和刪除這個(gè)數(shù)據(jù)庫(kù)沒(méi)有什么區(qū)別。
附加數(shù)據(jù)庫(kù):
對(duì)于附加數(shù)據(jù)庫(kù),可以使用sp_attach_db存儲(chǔ)過(guò)程,或者使用帶有FOR ATTACH選項(xiàng)的CREATE DATABASE命令,在SQL Server2005或更高的版本中推薦使用后者,前者是為了向前兼容,它正在逐漸淘汰,而后者更提供更多對(duì)文件的控制。
CREATE DATABASE databasename
ON (FILENAME = 'D:\Database\dbname.mdf')
FOR ATTACH | FOR ATTACH_REBUILD_LOG
然而對(duì)于這樣的附加,我們要注意幾個(gè)地方。因?yàn)樯婕暗街亟ㄈ罩尽?
1.對(duì)于一個(gè)讀/寫(xiě)數(shù)據(jù)庫(kù),如果含有一個(gè)可用的日志文件,無(wú)論使用FOR ATTACH ,還是使用FOR ATTACH_REBULD_LOG,都是一樣,都不會(huì)對(duì)此數(shù)據(jù)庫(kù)重建日志文件。如果日志文件不可用或者物理上沒(méi)有該日志文件,使用FOR ATTACH或FOR ATTACH_REBULID_LOG都會(huì)重建日志文件,所以如果我們復(fù)制一個(gè)帶有大量日志文件的數(shù)據(jù)庫(kù)到另一臺(tái)服務(wù)器中,就可以只復(fù)制.mdf文件,不用復(fù)制日志文件,然后使用FOR ATTACH_REBULD_LOG選項(xiàng)重建日志。條件是這臺(tái)服務(wù)器將主要使用或只用改數(shù)據(jù)庫(kù)的副本進(jìn)行讀操作。
2.對(duì)于一個(gè)只讀數(shù)據(jù)庫(kù),就有點(diǎn)區(qū)別了,如果日志文件不可用,那么就不能更新主文件,所以也就不能重建日志,因此當(dāng)我們附加一個(gè)只讀數(shù)據(jù)庫(kù)是,必須在FOR ATTACH從句中指定日志文件。
如果使用附加數(shù)據(jù)庫(kù)重建了日志文件。使用FOR ATTACH_REBUILD_LOG會(huì)中斷日志備份鏈,進(jìn)行這種操作之前最好做一次數(shù)據(jù)庫(kù)完全備份。
使用sp_detach_db存儲(chǔ)過(guò)程一個(gè)好處就是可以保證一個(gè)數(shù)據(jù)庫(kù)是被干凈的關(guān)閉,那日志文件就不是附加數(shù)據(jù)庫(kù)所必須的,我們可以使用FOR ATTACH_REBUILD_LOG命令重建日志,得到一個(gè)最小的日志文件。也算是一種快速收縮一個(gè)大日志文件的方法。
Author:興百放
Web:Http://xbf321.cnblogs.com
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
相關(guān)文章