2012-10-30 57 views
3

在一個企業項目,我需要登錄數據的高容量(原始值,修正值,用戶誰改變數據等) 我使用NLOG記錄這些數據和ELMAH記錄異常。 我不確定是使用單獨的數據庫來存儲日誌信息還是使用主數據庫。使用單獨的數據庫 優點是:單獨的數據庫來存儲日誌和異常

  • 日誌和異常不是業務的一部分,所以他們並不需要 在主數據庫。
  • 加載主數據庫上會減少,從而有更好的表現。

缺點是:

  • 如果日誌,數據庫也會停止,我們會想念木頭,在這個項目中非常重要的 。 (儘管我們可以防止儲蓄如果記錄不 成功)
  • 處理交易將是困難的。 (如果日誌保存的是什麼,但數據 都沒有)

有更多的優勢,當然缺點,但所有的一切,我需要知道:什麼是企業軟件利用龐大的事務的最佳實踐RDBMS? 或者,也許它根據一些因素因項目而異?

回答

5

你要分開,並分離誤差與數據訪問記錄。如果數據訪問回滾,您希望保持日誌訪問記錄它回滾的事實。如果數據庫關閉,您確實希望記錄下數據庫。如果您的日誌記錄與數據訪問在事務上一致,那麼您的系統可能會每分鐘經歷10次回滾,但您的錯誤日誌不會顯示任何內容!

另一個原因是記錄應該是它自己的存儲(數據庫)是,更多的往往不是關係不是1:1,錯誤日誌通常聚合來自多個系統,可以通過幾個數據庫支持報告的錯誤。

您使用提交錯誤報告應該處理錯誤日誌庫的可用性的基礎設施(即記錄數據庫宕機或網絡劃分),利用現有的許多排隊的解決方案(MSMQRabbitMQZeroMQ等)中的一個。

+1

注意,有「記錄」和「審計」之間的差異。當你說*我們可以防止保存,如果日誌記錄不成功*聽起來更像審計而不是記錄。 –

相關問題