但是“最後一招”究竟是什麼意思呢?當你使用這條命令時會怎樣呢?那你應使用哪條命令來代替它呢?最後,若這條命令如此有問題,為什麼Sybase卻要提供它呢?
Sybase支援人員建議你週期性dump你的transaction log。你必鬚根據你的資料庫中記入日記的活動的量的大小以及你的資料庫的大小來決定dump的方式。有些地方按月dump transaction;有些地方每夜dump transaction。
注意:若你正運行SQL Server10.0,你可以用sp_thresholdaction在空間緊缺之前來自動dump tran;另外,此時Backup Server會保證在dump進行時,任務不會被掛起。請在你的SQL Server參考手冊中擷取更詳細的資訊。這篇文章的剩餘部分將適用於運行系統10以前版本SQL Server的領域。
若你從未dump transaction過,transactionlog將最終會滿。 SQLServer使用log(日誌)是出於恢複目的的。 當log滿時,伺服器將停止事物的繼續進行,因為伺服器將不能將這些事物寫進日誌,而伺服器不能運行大多數的dump tran命令,因為SQL Server也需在日誌中記錄這些命令。
這就是為什麼當其它dump tran命令不能執行時no_log可執行檔原因。但是想一下dump transaction with no_log被設計執行的環境。所有對不做並發性檢查。
若你在對資料庫的修改發生時使用dump transaction with no_log,你就會冒整個資料庫崩潰的風險。在多數情況下,它們被反映成813或605錯誤。為了在資料庫被修改時,刪除transaction log中的不活躍部分可使用dump transaction with trancate_only。這條命令寫進transaction log時,並且它還做不要的並發性檢查。這兩條命令都有與其相關的警告,在命令參考手冊中會看到這些警告。請確保在使用其中任一條命令以前,你已理解這些警告和指示。 Syase提供dump transaction with no_log來處理某些非常緊迫的情況。為了盡量確保你的資料庫的一致性,你應將其作為“最後一招”。