您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么用sql語句實現(xiàn)分離和附加數(shù)據(jù)庫”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
對于用Manage Studio自己看著界面操作就可以應付了。
分離數(shù)據(jù)庫: 對于用存儲過程來分離數(shù)據(jù)庫,如果發(fā)現(xiàn)無法終止用戶鏈接,可以使用ALTER DATABASE命令,并利用一個能夠中斷已存在鏈接的終止選項來把數(shù)據(jù)庫設(shè)置為SINGLE_USER模式,設(shè)置為SIGLE_USER代碼如下: ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE下面是分離數(shù)據(jù)庫的CMD命令 EXEC sp_detach_db DatabaseName一旦一個數(shù)據(jù)庫分離成功,從SQL Server角度來看和刪除這個數(shù)據(jù)庫沒有什么區(qū)別。
附加數(shù)據(jù)庫: 對于附加數(shù)據(jù)庫,可以使用sp_attach_db存儲過程,或者使用帶有FOR ATTACH選項的CREATE DATABASE命令,在SQL Server2005或更高的版本中推薦使用后者,前者是為了向前兼容,它正在逐漸淘汰,而后者更提供更多對文件的控制。 CREATE DATABASE databasename ON (FILENAME = 'D:\Database\dbname.mdf') FOR ATTACH | FOR ATTACH_REBUILD_LOG 然而對于這樣的附加,我們要注意幾個地方。因為涉及到重建日志。 1.對于一個讀/寫數(shù)據(jù)庫,如果含有一個可用的日志文件,無論使用FOR ATTACH ,還是使用FOR ATTACH_REBULD_LOG,都是一樣,都不會對此數(shù)據(jù)庫重建日志文件。如果日志文件不可用或者物理上沒有該日志文件,使用FOR ATTACH或FOR ATTACH_REBULID_LOG都會重建日志文件,所以如果我們復制一個帶有大量日志文件的數(shù)據(jù)庫到另一臺服務(wù)器中,就可以只復制.mdf文件,不用復制日志文件,然后使用FOR ATTACH_REBULD_LOG選項重建日志。條件是這臺服務(wù)器將主要使用或只用改數(shù)據(jù)庫的副本進行讀操作。 2.對于一個只讀數(shù)據(jù)庫,就有點區(qū)別了,如果日志文件不可用,那么就不能更新主文件,所以也就不能重建日志,因此當我們附加一個只讀數(shù)據(jù)庫是,必須在FOR ATTACH從句中指定日志文件。 如果使用附加數(shù)據(jù)庫重建了日志文件。使用FOR ATTACH_REBUILD_LOG會中斷日志備份鏈,進行這種操作之前最好做一次數(shù)據(jù)庫完全備份。 使用sp_detach_db存儲過程一個好處就是可以保證一個數(shù)據(jù)庫是被干凈的關(guān)閉,那日志文件就不是附加數(shù)據(jù)庫所必須的,我們可以使用FOR ATTACH_REBUILD_LOG命令重建日志,得到一個最小的日志文件。也算是一種快速收縮一個大日志文件的方法。
“怎么用sql語句實現(xiàn)分離和附加數(shù)據(jù)庫”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。