国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

如何在 SQL Server 2005 中使用 DBCC SHRINKFILE 語句收縮事務日志文件

2024-08-31 00:51:04
字體:
來源:轉載
供稿:網友

簡介
在 Microsoft SQL Server 2005 中,您可以收縮數據庫中的事務日志文件以刪除未使用的頁面。數據庫引擎將有效地重新使用空間。但是,當事務日志文件意外增長時,可能必須要手動收縮事務日志文件。

本文介紹如何在 SQL Server 2005 數據庫中在完整恢復模式下使用 DBCC SHRINKFILE 語句手動收縮事務日志文件。您在 SQL Server 2005 中用于收縮事務日志文件的方法可能與在 SQL Server 2000 中用于收縮事務日志文件的方法有所不同。 有關如何在 SQL Server 2000 中收縮事務日志文件的更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
272318 (http://support.microsoft.com/kb/272318/) INF:使用 DBCC SHRINKFILE 收縮 SQL Server 2000 中的事務日志
 回到頂端

更多信息
在 SQL Server 2005 中,收縮操作 (DBCC SHRINKFILE) 會立即嘗試將指定的事務日志文件收縮為要求的大小。要在完整恢復模式下手動收縮事務日志文件,請首先備份事務日志文件。然后,使用 DBCC SHRINKFILE 語句收縮該事務日志文件。

通常,在 SQL Server 2005 中收縮事務日志文件比在 SQL Server 2000 中收縮事務日志文件要快。原因是 SQL Server 2005 日志管理器會根據物理磁盤存儲順序創建或重新使用非活動的虛擬日志文件。因此,事務日志文件的非活動部分通常位于文件的末尾。

例如,事務日志文件可能包含 100 個虛擬日志文件,但僅使用 2 個虛擬日志文件。SQL Server 2000 會將使用的第一個虛擬日志文件存儲在事務日志文件的開頭,將使用的第二個虛擬日志文件存儲在事務日志文件的中間。為了將事務日志文件僅收縮為 2 個虛擬日志文件,SQL Server 將使用虛擬日志項填充第二個虛擬日志文件的剩余部分。SQL Server 會將邏輯日志的開頭移到日志管理器指定的下一個可用的虛擬日志文件中。日志管理器可能會在事務日志文件的中間、上一個活動的虛擬日志文件之前創建一個虛擬日志文件。在這種情況下,必須使用多個日志備份操作和多個收縮操作才能成功地將事務日志文件收縮為 2 個虛擬日志文件。最糟糕的情況是,您可能必須使用 50 個日志備份操作和 50 個收縮操作才能成功地將事務日志文件收縮為 2 個虛擬日志文件。

不過,在 SQL Server 2005 中,您執行一個 DBCC SHRINKFILE 語句就可以立即將事務日志文件收縮為 2 個虛擬日志文件。這是因為 SQL Server 2005 日志管理器按照物理磁盤存儲順序創建了 2 個虛擬日志文件。這兩個虛擬日志文件都位于事務日志文件的開頭。

當您嘗試在 SQL Server 2005 中收縮可用空間很小的事務日志文件時,必須執行另一個日志備份操作。這個附加的日志備份操作會將事務日志文件截斷為較小的大小。在 SQL Server 2000 中收縮事務日志文件時,除了要執行上述三個步驟外,還要執行此日志備份操作。有關更多信息,請參閱“簡介”一節提到的 Microsoft 知識庫文章。要在 SQL Server 2005 中收縮可用空間很小的事務日志文件,請按照下列步驟操作:1. 備份事務日志文件,以使大多數活動虛擬日志文件處于非活動狀態。因此,可在以后的步驟中刪除非活動的虛擬日志文件。為此,請運行與以下 Transact-SQL 語句相似的 Transact-SQL 語句。BACKUP LOG <DatabaseName> TO DISK = '<BackupFile>'
注意:在此語句中,<DatabaseName> 是要備份的數據庫名稱的占位符。在此語句中,<BackupFile> 是備份文件完整路徑的占位符。

例如,運行以下 Transact-SQL 語句。BACKUP LOG TestDB TO DISK='C:/TestDB1.bak'
 
2. 收縮事務日志文件。為此,請運行與以下 Transact-SQL 語句相似的 Transact-SQL 語句。DBCC SHRINKFILE (<FileName>, <TargetSize>) WITH NO_INFOMSGS
注意:在此語句中,<FileName> 是事務日志文件名稱的占位符。在此語句中,<TargetSize> 是事務日志文件目標大小的占位符。目標大小必須合理。例如,您不能將事務日志文件收縮為小于 2 個虛擬日志文件的大小。
3. 如果 DBCC SHRINKFILE 語句未將事務日志文件收縮為目標大小,則運行步驟 1 中提到的 BACKUP LOG 語句,以使更多的虛擬日志文件處于非活動狀態。
4. 運行步驟 2 中提到的 DBCC SHRINKFILE 語句。執行此操作后,事務日志文件就應接近目標大小了。
總而言之,在 SQL Server 2005 中更改了日志管理器用于選取下一個虛擬日志文件的算法。因此,在 SQL Server 2005 中收縮事務日志文件與在 SQL Server 2000 中收縮事務日志文件不同,具體表現在: • 如果日志文件具有大量可用空間,在 SQL Server 2005 中收縮事務日志文件比在 SQL Server 2000 中收縮事務日志文件要快。
• 如果日志文件沒有可用空間,在 SQL Server 2005 中收縮事務日志文件與在 SQL Server 2000 中收縮事務日志文件相同。
• 如果日志文件的可用空間很小,在 SQL Server 2005 中收縮事務日志文件要比在 SQL Server 2000 中執行此操作時多執行一個日志備份操作。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 本溪| 常山县| 启东市| 江阴市| 嘉义县| 廊坊市| 普兰店市| 宜春市| 武强县| 萨迦县| 康保县| 大兴区| 宕昌县| 涞水县| 武平县| 定州市| 济宁市| 启东市| 留坝县| 南开区| 甘德县| 桦南县| 宁武县| 钦州市| 台北市| 运城市| 阿合奇县| 荣昌县| 平阴县| 新津县| 宁海县| 枣强县| 兴国县| 乌拉特中旗| 神农架林区| 鹿邑县| 留坝县| 邵阳市| 河津市| 德化县| 余姚市|