分離后附加數據庫
發布時間:2013/2/21 14:33:59 來源: 縱橫數據
分離后附加數據庫和直接關閉附加數據庫的不同
大家知道sp_attach_db和sp_detach_db可以用來附加和分離數據庫。但是不知道大家發現沒有,不使用sp_detach_db分離數據庫,直接關閉數據庫服務,然后用sp_attach_db就可以直接將數據文件附加。現在就有兩個問題
1、為什么不用分離也可以直接附加。
2、用sp_detach_db分離后附加和直接附加有什么不同。
2、用sp_detach_db分離后附加和直接附加有什么不同。
解:
分離和附加數據庫時最重要的是保持數據的一致性。其中一點是切斷數據庫使用戶不能再操作數據庫,這是肯定的,但最重要的是:數據庫運行中肯定會有一些臟頁,使用sp_detach_db可以保證所有臟頁都被寫入了磁盤。而直接關閉數據庫則不能保證這一點。
這就導致了分離后附加和直接關閉后附加的不同。
由于使用sp_detach_db分離保證了臟頁全部寫入了磁盤,所以附加時,即使沒有可用的日志文件,也可以成功附加。
這就導致了分離后附加和直接關閉后附加的不同。
由于使用sp_detach_db分離保證了臟頁全部寫入了磁盤,所以附加時,即使沒有可用的日志文件,也可以成功附加。
測試時mssql返回的信息(先分離后附加):
Device activation error. The physical file name'
d:\sqlserverdatabase\MSSQL\data\sqlbpa_log.LDF'
may be incorrect.New log file '
D:\sqlserverdatabase\MSSQL\Data\sqlbpa_log.LDF'
was created.
以上是使用sp_detach_db分離后,特意刪除了日志文件后附加的結果。很明顯mssql沒有找到日志文件后,重新創建了日志文件。
而直接關閉數據庫后附加數據文件就必須保證數據文件和日志文件都可用。如果沒有日志文件,將無法成功附加,因為不能保證數據的一致性。
也就是說用sp_detach_db會更安全一些
而直接關閉數據庫后附加數據文件就必須保證數據文件和日志文件都可用。如果沒有日志文件,將無法成功附加,因為不能保證數據的一致性。
也就是說用sp_detach_db會更安全一些
本文來源:
//66moju.cn/article/1171.html
[復制鏈接]
鏈接已復制
上一篇:沒有了
下一篇:沒有了