這邊所指的正常卸離狀況,例如:
1. 卸離此資料庫。
2. 離線此資料庫。
3. 關閉 SQL Server 服務後。
等。
但是附加的方式,則需要改變,若仍是採取一般方式來附加資料庫時,但因為沒有交易記錄檔,將遇到以下的錯誤訊息:
訊息 5120,層級 16,狀態 101,行 1 無法開啟實體檔案 "C:\myAdmin\DB\DBLog_log.ldf"。作業系統錯誤 2: "2(系統找不到指定的檔案。)"。
若僅複製其資料檔案,但不包含交易記錄檔案(*.ldf)。
符合上述的情境,可以在沒有包含交易記錄檔案(*.ldf)情況下,僅是附加資料檔案,系統可以自動重新建立交易記錄檔案(*.ldf)。
重建交易記錄檔案(*.ldf),以正常卸離情況為例:
適用版本:
SQL Server 2005 與 2008
方法1:使用 Transact-SQL 語法:
--01 建立範例資料庫:DBLog USE [master] GO IF EXISTS (SELECT name FROM sys.databases WHERE name = N'DBLog') DROP DATABASE [DBLog] GO CREATE DATABASE [DBLog] ON PRIMARY ( NAME = N'DBLog', FILENAME = N'C:\myAdmin\DB\DBLog.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB ), FILEGROUP [G1] ( NAME = N'DBLogG1F1', FILENAME = N'C:\myAdmin\DB\DBLogG1F1.ndf' , SIZE = 3072KB , FILEGROWTH = 1024KB ) LOG ON ( NAME = N'DBLog_log', FILENAME = N'C:\myAdmin\DB\DBLog_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%) GO -- USE DBLog GO -- 查詢資料庫檔案的磁碟使用空間與資料實際使用空間 SELECT name N'邏輯名稱' , size/128.0 N'使用的磁碟空間(MB)' , CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 N'資料實際上使用的空間(MB)' ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 N'剩餘的可用空間(MB)' FROM sys.database_files; /*=========================================================*/ --02 卸離此資料庫,請手動修改交易記錄檔案(*.ldf)的檔名。 USE [master] GO ALTER DATABASE [DBLog] SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO USE [master] GO EXEC master.dbo.sp_detach_db @dbname = N'DBLog' GO /*=========================================================*/ --03 重新附加此資料庫:僅是附加資料檔案,系統可以自動重新建立交易記錄檔案(*.ldf)。 USE [master] GO CREATE DATABASE [DBLog] ON ( FILENAME = N'C:\myAdmin\DB\DBLog.mdf' ), ( FILENAME = N'C:\myAdmin\DB\DBLogG1F1.ndf' ) FOR ATTACH GO /* 顯示的訊息: 檔案啟動錯誤。實體檔案名稱 "C:\myAdmin\DB\DBLog_log.ldf" 可能不正確。 已建立新記錄檔 'C:\myAdmin\DB\DBLog_log.LDF'。 */
方法2:使用 SSMS 管理工具,重建交易記錄檔案(*.ldf)的方式:
步驟01. 使用 SSMS 管理工具,「附加」此資料庫。 步驟02. 在「附加資料庫」視窗,在右下方的窗格內,選取指定的「記錄檔」之資料列,在「訊息」區域,也會被標示為「找不到」。 步驟03. 點選下方的「移除」,刪除此「記錄檔」。 步驟04. 再點選「確定」,進行附加資料庫作業。
原本建立資料庫時的交易記錄檔,改名為:DBLog_log.ldf_qq,預設初始化的大小約:3,072(KB)。
僅是附加資料檔案,系統自動重新建立交易記錄檔案(*.ldf):DBLog_log.LDF,大小約:504(KB) 。
參考資料:
卸離和附加資料庫
http://msdn.microsoft.com/zh-tw/library/ms190794.aspx
保護資料和記錄檔
http://msdn.microsoft.com/zh-tw/library/ms189128.aspx
沒有留言:
張貼留言