程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> 使用dump transaction with no_log的危險性

使用dump transaction with no_log的危險性

編輯:SyBase綜合文章

在命令參考手冊中的dump transaction with no_log條目下,有一條警告信息告訴你,你應該把這條命令作為沒有其它辦法時的最後一招才使用它。但是“最後一招”究竟是什麼意思呢?當你使用這條命令時會怎樣呢?那你應使用哪條命令來代替它呢?最後,若這條命令如此有問題,為什麼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來處理某些非常緊迫的情況。為了盡量確保你的數據庫的一致性,你應將其作為“最後一招”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved