2013-11-25 45 views
0

假設服務器上有兩個Sql Server數據庫,即備份和分析。備份處於待機模式,並定期應用日誌。 Analysis上有一個長時間運行的存儲過程,用於訪問備份中的表。如果備份在存儲過程中進入恢復過程,則存儲過程失敗。 (我不關心在存儲過程啓動時Backup已經恢復的情況)。防止其他數據庫從存儲過程中恢復

有很多方法可以處理這個問題,比如調度存儲過程和恢復,以免在同一時間段內發生或將存儲過程分解爲較小的存儲過程。但是,我想要做的是在整個存儲過程期間阻止備份進入恢復過程(可能通過阻止恢復過程獲得獨佔訪問)。我曾嘗試調用Backup.sys.sp_getapplock來獲取並保存存儲過程中的應用程序鎖,但這並不妨礙還原發生。

有什麼辦法可以做到這一點?謝謝!

+0

您的意思是說備份數據庫處於日誌傳送配置的一部分處於只讀模式? – Sam

回答

0

如果在備份上使用日誌傳送,則將其設置爲僅在沒有用戶連接到數據庫時才應用t日誌。 http://technet.microsoft.com/en-us/library/ms189572(v=sql.105).aspx

您可以選擇不斷開用戶連接。在這種情況下,如果 有用戶連接到該數據庫,則還原作業 無法將事務日誌備份還原到輔助數據庫。事務日誌備份 將累積,直到沒有用戶連接到數據庫。

+0

我不確定此解決方案是否可行。有問題的進程在分析數據庫上運行,而不是在備份數據庫上運行。因此,當還原作業開始時,不一定會有與備份的任何連接。 – chris4600