2013-07-19 36 views
-1

我們有一個場景。我們的內部數據庫(SQL2008)有幾個表被推送到其他數據庫服務器(SQL2008),並且這個數據庫服務器被我們的網站(ASP.NET)使用。只要內部數據庫中有任何更改,就會完成此複製。設計網絡服務(或任何其他想法)

我們的網站有幾個網頁依賴於推送的數據。我們每天早上運行一個網頁來處理這些數據。作爲這一過程的結果,我們更新了我們網站使用的更多表格。

我們要做到的是我們沒有依靠網頁上更新其他表的東西,它應該這樣做立刻複製已經做了。我們無法執行存儲過程,因爲收集數據的邏輯有點複雜。

有沒有人有這個想法如何實現?

謝謝。

+1

如何執行邏輯並由調度程序(例如CRON)運行的命令行工具? – LuigiEdlCarno

+0

我們不想要調度程序任務,因爲可能有多個推式複製。在這種情況下,我們將缺少最新信息,因爲調度程序將在特定時間運行。 – SSiddiqui

+0

那麼,我只能想到在複製表上創建觸發器,在完成某個複製步驟後觸發。雖然如果你說邏輯複雜,那可能仍然很難。 – LuigiEdlCarno

回答

0

嘗試查看SQLDependency對象,它可以在不使DB脫機的情況下執行相同的操作。

+1

做了一些研究後,我發現這是最好的選擇。感謝您讓我知道這個功能。我寫了一個windows服務來監視sql服務器上的表。使用Sqldependency對象我能夠捕獲Windows服務中的onChange事件。 – SSiddiqui

0

爲什麼不嘗試使用File Watcher?

你可以看數據庫的MDF文件,只要有變化它會做要緊的。

http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

http://www.codeproject.com/Articles/58740/FileSystemWatcher-Pure-Chaos-Part-1-of-2

大概能想到開箱的。

+0

這看起來像是我的問題的解決方案。但是請原諒我有限的知識,即使在DB有其他變化時也會觸發文件更改事件,例如,更新數據,創建複製過程之外的表等。如果是這種情況,那麼我們的服務將會被過度殺死,顯着減緩網站的速度。 – SSiddiqui

+0

是的,它每次都會啓動。 但是,您可以將條件放在方法中玩耍。 如果你編碼良好,它不會減慢過程。 –

+0

我試着從一個簡單的Windows服務開始觀察特定情況。mdf文件使用filesystemwatcher chage事件,但這是我在web上發現的關於mdf和ldf文件 當SQL Server關閉文件(SQL Server關閉或數據庫分離)時修改的日期發生更改 http:// social .msdn.microsoft.com/Forums/sqlserver/en-US/b7db6744-cd7b-42b5-a84e-5e511a5e8e59/mdf-ldf-files-last-modified-date-not-increasing-as-expected – SSiddiqui

相關問題