我有一個使用兩個數據庫的Web應用程序。 DB1用戶執行他們的CRUD(創建,讀取,更新,刪除)操作。數據庫DB2是用於報告目的的不同服務器上的只讀數據庫。每個小時,我的DB1都會保存事務日誌,而在DB2上,我有一份工作可以在DB2上恢復它們以保持它最新。在恢復SQL Server數據庫之前等待連接關閉
我面臨的問題是,如果有用戶在DB2上運行報告(經常發生),他們會從sql服務器斷開連接,因爲我獲得了獨佔訪問來還原數據庫。恢復每個日誌所需的時間範圍在1-4分鐘之間。
我該如何實現讓我們稱之爲等待 - 恢復功能,其中我的作業等待用戶的查詢完成,然後再將數據庫切換到獨佔訪問並恢復日誌?
我的機器上運行兩個SQL Server 2008中的64位標準版
我acctually使用存儲的過程,踢大家出: ALTER PROCEDURE [DBO] [USP_GETEXCLUSIVE] @dbname VARCHAR(100)AS DECLARE @KILL_ID INT DECLARE VARCHAR @QUERY(320) DECLARE GETEXCLUSIVE_CURSOR CURSOR FOR SELECT A.SPID FROM SYSPROCESSES A JOIN SYSDATABASES乙ON A.DBID = B.DBID WHERE [email protected] OPEN GETEXCLUSIVE_CURSOR FETCH NEXT FROM GETEXCLUSIVE_CURSOR INTO @KILL_ID WHILE(@@ FETCH_STATUS = 0) BEGIN SET @QUERY ='KIL L「+ CONVERT(VARCHAR,@ KILL_ID) EXEC(@QUERY) NEXT來去GETEXCLUSIVE_CURSOR INTO @KILL_ID END CLOSE GETEXCLUSIVE_CURSOR DEALLOCATE GETEXCLUSIVE_CURSOR – lstanczyk 2009-06-25 19:13:37
最大的問題是如何不要讓數據庫接受的時間,而新的連接我在等。 – lstanczyk 2009-06-25 19:14:31