2010-01-25 25 views
3

這涉及到數據複製,種類如下:將來自多個DB的數據庫數據複製到一個。數據複製

我們有很多安裝了SQL Express的站點,每個站點上都有一個「審計」數據庫,其中第一個標準表單中有一個表生活簡單:)

現在我需要從每個網站獲取此表,並複製內容(例如,與日期時間值> 1/1/200 00:00,但這將明顯改變)並複製它到SQL Server本身的一個大型「超級表」,它也具有主鍵作爲站點名稱(需要注入)和SQL Express表中的當前主鍵)

例如許多SQL Express的數據塊與下表列

ID,定義名稱,定義類型,日期時間,成功,NvarChar1,NVARCHAR2等等等等

而大超霸表需要有:

網站名,ID,定義名稱,定義類型,日期時間,成功,NvarChar1,NVARCHAR2等等等等

凡大膽的項目是主鍵(一個或多個)

是否有微軟(或非MS我想)應用程序/工具/事情管理器複製所有這些數據已經跨過,還是我們需要寫我們自己的?

非常感謝。

回答

1

您可以使用SSIS(隨SQL Server一起提供)進行填充,可以通過設置變量來將連接字符串更改爲各種數據庫。我有一個循環遍歷整個列表,並使用來自三個不同供應商的三個不同文件執行相同的過程。你可以通過不同的站點數據庫來模擬循環。將想要複製審計數據的整個數據庫列表放入一個表中,並在每次更改連接字符串時循環。

但是,您爲什麼要在每個站點上放置一個大型審計表?如果數據庫中的每個表都隨着更改的發生而填充審計表,那麼審計表最終將成爲性能的一個巨大問題。每一個插入,更新和刪除都必須打到這個表格,然後你建議在其上添加一個導出。這對我來說似乎是一個鎖定和僵局以及各種骯髒的保證結構。幫你一個忙,並將每個審計表限制在正在審計的表中。

+0

謝謝你指點我SSIS我會研究。 「審計」表不是對數據庫發生的情況進行審計,而是審計系統上發生的情況。例如用戶XYZ保存配置頁面ABC。用戶ASD已刪除配置項目Y.用戶B已登錄。等 而巨型審計表將從所有網站的所有較小的副本,以便人們可以在適時的莊園運行報告(你看到的網絡很慢!) 再次感謝。 這不是真有那麼大 – adudley 2010-01-26 11:34:38

1

需要考慮的事項: 鏈接服務器和sp_msforeachdb作爲自己動手解決方案的一部分。 SQL Server複製(由Microsoft)(我​​相信它可以從SQL Server Express中提取數據) 可以從SQL Server Express實例中提取數據的SQL Server Integration Services。

就我個人而言,我會首先調查Integration Services。

祝你好運。

+0

謝謝你,我會看看每一個,並回到我選擇的解決方案。 – adudley 2010-01-26 11:35:20

+0

使用SSIS工作真的很好,謝謝。你可以有一個數據源,並有一個派生列,可以讓你添加任何東西。太棒了,它可以循環並連接到各種各樣的東西。 – adudley 2010-01-27 16:51:44

1

你可以用SymmetricDS來做到這一點。 SymmetricDS是開源的,基於Web的,獨立於數據庫的數據同步/複製軟件。它使用Web和數據庫技術近實時地在關係數據庫之間複製表。該軟件旨在擴展大量數據庫,跨越低帶寬連接並承受網絡中斷期。

截至目前,然而,你將需要實現(在Java中)的自定義IDataLoaderFilter擴展點添加額外的列。元數據將可用,因爲您的SiteName將是external_id。

+0

開源是一個有點不走我們的客戶,並SSIS做什麼,我需要開箱(一些學習),但感謝你的頭了,因爲我使用OS的東西對於所有其他可能的項目:) – adudley 2010-01-27 16:53:01

相關問題