Sql-Server

將 SQL Server 數據遷移到新架構

  • May 2, 2016

我有一個數據庫,最初是由幾個人為 MS Access 中的一個小型業務部門(大約 8 名員工和 10 名客戶)創建的。最初的“開發人員”是一位非極客,他被前雇主派去參加為期兩天的 ms 訪問課程。它的設計很糟糕,但執行良好,隨著單位的增長,需要不止一個人來管理數據。當時我已經加入了單位,建議使用SQL server作為後端,並保持訪問前端允許多個使用者,當時三個或四個。

它現在有大約 40 個使用者為 50 多個企業客戶提供服務,基本上是一團糟。但是我們需要這個工具來跟踪我們的工作隊列,誰在做什麼,什麼時候到期,誰來做每一件事。沒有它,我們就無法運作。

所以我現在想把它扔掉並從頭開始重建並正確地完成它,並在此過程中放棄訪問前端。在執行此操作時,我需要保持目前系統執行,開發新系統以及如何保持數據同步並並行執行一段時間,直到滿足更高的功率它不會引起任何問題。

鑑於我將採用幾個巨型表並將它們規範化為新模式中的合理表,是否有人對如何保持數據同步有任何建議或指示?

它不是一個龐大的數據庫,例如,列出所有作業的主表每月增長大約 1500 條記錄,目前大約有 100,000 行。

我的想法是在表中添加一個行版本列,然後將一些東西組合在一起來監控它並轉換為新模式。

有沒有更好的辦法?

遷移數據本身就是一項工作 保持數據同步是一項工作,也是另一項工作。創建一個新的前端是另一項工作。

有很多方法可以解決這個問題。

數據遷移有很多問題,所以如果你以前從未做過,除非業務大喊大叫,否則我會非常緩慢而小心地移動。

第一個我會複製模式,然後簡單地導入到 sql 中。

從那裡建構您希望新架構的外觀並建構腳本以將數據移動到新架構中,確保您記錄每個插入更新刪除等,如果您記錄執行的命令,這是最簡單的移動它,並使用命令撤消中央表中的操作。

然後建立你的新前端並徹底測試它。

然後測試您的腳本以從訪問中導出並導入到您的新模式中,然後您可以自動化導出導入過程,直到每次我可能執行至少 100 次左右的執行以在移動之前測試該過程時它完美執行。

在您使用新流程和應用程序從業務中購買之前,我不會擔心保持同步,然後我只需為 Switch 設置時間。

如果您必須同時擁有 2 個系統,那麼您將遇到一系列完全不同的問題。

哪一個成為真相的來源?您是否需要能夠在任何給定時間導出所有內容以供訪問。

幾乎任何範圍的變化都會給項目增加額外的時間。

如果您有任何其他問題,請聯繫我。我已經完成了大約 50 次左右的這些小規模數據遷移,從平面文件到 sql,從訪問到 sql,從 sql 到訪問,oracle 到 MongoDB,從 SQL 到 Mongodb,從 mysql 到 sql,從 mongodb 到 SQL,它們如果你想把它做好,花費的時間比你想像的要長得多。

引用自:https://dba.stackexchange.com/questions/137029