文章編號: 873235 - 上次校閱: 2006年2月20日 - 版次: 2.1 如何避免 SQL Server 資料庫的交易記錄檔超出預期大小在此頁中簡介本文將告訴您,當交易記錄檔擴充到超出預期限制時,必須依照哪些步驟來處理。交易記錄檔擴充,可能會造成 Microsoft
SQL Server 資料庫無法使用。本文也會提供一些選項,可以用來避免交易記錄檔超出預期大小。 其他相關資訊在 SQL Server 2000 和 SQL Server 2005
中,每個資料庫至少都包含一個資料檔以及一個交易記錄檔。SQL Server 實際上會將資料儲存在資料檔中。交易記錄檔則是儲存您在 SQL Server
資料庫中執行的所有修改的詳細資料,以及執行每項修改時的詳細交易資料。因為交易完整性被視為 SQL Server 的基本特性,因此無法關閉 SQL Server
中,詳細交易資料的記錄功能。 交易記錄檔會依照邏輯分成較小的區段,稱之為虛擬記錄檔。在 SQL Server 2000 中,您可以設定交易記錄檔依照需要來擴充。交易記錄檔的擴充範圍可由使用者決定,或者也可以設定為使用所有的可用磁碟空間。SQL Server 對交易記錄檔大小所做的任何修改 (例如,截斷交易記錄檔或擴充交易記錄檔),在執行時都是以虛擬記錄檔為單位。 如果對應於 SQL Server 資料庫的交易記錄檔已滿,而且您已經設定了讓交易記錄檔自動擴充的選項,則交易記錄檔將會以虛擬記錄檔為單位來進行擴充。有時候,交易記錄檔可能會變得非常大,而導致磁碟空間不足。當交易記錄檔擴充到用完所有的可用磁碟空間,而無法再繼續擴充時,您就無法再對資料庫執行任何資料修改的作業。此外,如果因為沒有空間可供交易記錄檔進行擴充時,SQL Server 可能會將資料庫標示為可疑 (Suspect)。 如需有關哪些情況可能造成交易記錄檔超出預期大小的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件: 317375?
(http://support.microsoft.com/kb/317375/
)
INF:Transaction Log Grows Unexpectedly or Becomes Full on SQL Server
縮減交易記錄檔的大小如果要復原超出預期限制的交易記錄檔,您必須縮減交易記錄檔的大小。如果要執行這項操作,必須截斷交易記錄檔中的非現用交易,並且壓縮交易記錄檔。注意 交易記錄檔對於維持資料庫的交易完整性是非常重要的。因此,您千萬不能刪除交易記錄檔,即使是已為資料庫和交易記錄檔製作備份後,也不能刪除。 截斷交易記錄檔中的非現用交易當交易記錄檔超出預期限制時,必須立即備份交易記錄檔。在建立交易記錄檔的備份時,SQL Server 會自動截斷交易記錄檔中的非現用部份。交易記錄檔中的非現用部份包含已經完成的交易,因此,在復原過程中,SQL Server 不會再用到交易記錄檔。SQL Server 會重新使用交易記錄檔中已截斷的非現用空間,而不是讓交易記錄檔繼續擴充並且使用更多的空間。如需有關製作交易記錄檔備份時所必須考慮的問題,以及還原交易記錄檔備份時所必須考慮的問題等詳細資訊,請參閱《SQL Server 線上叢書》中的下列主題:
重要 在您以手動方式截斷交易記錄檔後,必須先建立完整的資料庫備份,才能建立交易記錄檔備份。 如需有關截斷交易記錄檔時可能發生的問題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件: 62866?
(http://support.microsoft.com/kb/62866/
)
INFO:Reasons Why SQL Transaction Log Is Not Being Truncated
壓縮交易記錄檔備份作業或截斷方式都不會縮減記錄檔的大小。如果要縮減交易記錄檔的大小,必須壓縮交易記錄檔。如果要將交易記錄檔壓縮成所需的大小,並且移除未使用的頁面,必須使用 DBCC SHRINKFILE 作業。但是,DBCC SHRINKFILE Transact-SQL 陳述式只能壓縮記錄檔內的非現用部份。注意 DBCC SHRINKFILE Transact-SQL 陳述式本身並不能截斷記錄檔,也不能壓縮記錄檔內的已使用空間。 如需有關壓縮交易記錄檔的詳細資訊,請參閱《SQL Server 線上叢書》中的下列主題:
272318?
(http://support.microsoft.com/kb/272318/
)
INF:Shrinking the transaction log in SQL Server 2000 with DBCC SHRINKFILE
如需有關壓縮交易記錄檔時可能發生的問題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:814574?
(http://support.microsoft.com/kb/814574/
)
PRB:Error message "Cannot shrink log file ..." occurs when you shrink the transaction log file
324432?
(http://support.microsoft.com/kb/324432/
)
PRB:DBCC SHRINKFILE and SHRINKDATABASE commands may not work because of sparsely populated text, ntext, or image columns
避免交易記錄檔超出預期大小如果要避免交易記錄檔超出預期大小,請考慮使用下列其中一種方式:
?考如需有關在復原過程中如何解決額外磁碟空間需求問題的詳細資訊,請參閱《SQL Server
線上叢書》中的<磁碟空間不足>主題。如需有關交易記錄檔架構的詳細資訊,請參閱《SQL Server 線上叢書》中的下列主題:
這篇文章中的資訊適用於:
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。 | 文章翻譯
|
回此頁最上方
