2016-03-02 79 views
1

我不是DBA,而是程序員。最近我們每天都在獲取LOG SUSPEND問題。由於我的本地系統無法重現,因此我無法捕捉到這種情況。 上傳到生產時的文件失敗,日誌掛起時,同一文件上傳到本地似乎工作正常。另外,當一段時間後再次上傳相同的文件時,它在生產中似乎也能正常工作。 真的很困惑,爲什麼發生這種情況。日誌暫停原因未知

回答

2

Log Suspend表示事務日誌已滿,可能無法正確確定您所支持的事務處理速率。讓DBA /系統管理員爲有問題的數據庫添加額外的日誌設備空間。如果可能的話,您可能還想分解任何大型交易以降低可能性

至於原因,它非常依賴於系統設置。首先檢查數據庫設置。

sp_helpdb將打印出服務器上的數據庫列表以及可能爲每個數據庫設置的任何選項。

如果您沒有看到trunc log on chkpt,則會設置數據庫的最大可恢復性,日誌空間僅在運行備份後或在轉儲事務日誌後釋放。這允許在發生故障時進行第二次恢復,但是會犧牲使用更多的日誌空間。

如果您看到trunc log on chkpt,那麼在數據庫中發生檢查點之後,數據庫將自動截斷日誌。檢查點由數據庫本身作爲例行處理的一部分發布,但該命令也可以手動發佈。如果設置了該選項,並且數據庫仍然進入日誌掛起狀態,那麼您可能有一個沒有正確關閉的事務(無論是通過提交還是回滾)。您可以檢查master..syslogshold表以查找長時間運行的交易。

第三種可能性是,如果系統正在使用SAP/Sybase Replication Server,則實際上有一個輔助截斷點用作複製過程的一部分。在RepAgent進程讀取事務之後,系統纔會截斷事務日誌,因此這也可能導致系統進入日誌掛起狀態。

+0

謝謝邁克爾 對我來說,它似乎是第三種選擇。任何想法我們如何解決這個問題? –

+0

@shrutirawat添加額外的日誌空間將有所幫助。另外,您還需要查看是否可以將一些事務分解爲更小的部分,因爲大事務可能會導致複製延遲。同時檢查以確保Replication鏈接沒有任何未確診的問題(網絡降級,目標服務器上的索引等)。 –