Sql-Server

在沒有中間版本的情況下將 SQL 7 數據庫還原到 SQL 2014?

  • February 21, 2020

我們的軟體已有 20 多年的歷史,可以追溯到 Sybase 和 SQL 7 等數據庫。現在讓我們忽略 Sybase 部分。我們有許多老客戶使用我們軟體的非常舊版本,從 SQL 7(2001-2002)到 SQL 2014(我們今天支持)不等。從技術上講,我們的軟體實際上仍然可以在 MSDE 2000 上執行。但這不是重點。我們強制所有更新的客戶端至少使用SQL Server 2008 R2,但官方支持到 2014 年。是的,我們確實有許多老客戶仍在 Windows ‘95 上使用我們軟體的舊版本。

無論如何,歸結為問題。目前,每當我們有這些老客戶返回並希望升級時,我們都必須經過一個大而精心的升級過程。現在腳本是簡單的部分。我實際上只是完成了最新的主要升級腳本,它支持將數據庫從我們的 2001 (SQL 7) 版本升級到我們的最新版本。相同的腳本適用於任何中間版本。

但是,在我可以執行這些腳本之前,我首先必須通過一系列手動和繁瑣的步驟來處理數據庫。我已經加快了這個過程:

  1. 通過網際網路從客戶那裡獲取數據庫
  2. 將 SQL 7 數據庫直接還原到 MSDE 2000(在專用 XP 機器上)
  3. 提高數據庫對 MSDE 2000 的兼容性
  4. 將數據庫備份到新文件
  5. 將 MSDE 2000 數據庫直接還原到 SQL Server 2008 R2
  6. 提高數據庫對 SQL Server 2008 的兼容性
  7. 將數據庫備份到新文件
  8. 將 SQL 2008 R2 數據庫直接還原到 SQL Server 2014
  9. 提高數據庫與 SQL Server 2014 的兼容性
  10. 執行數據庫上的所有腳本以隨著時間的推移進行軟體更改
  11. 將數據庫備份到新文件
  12. 為客戶安裝軟體後,通過網際網路恢復數據庫

所以你可以想像,很多回頭客將是一份全職工作。我想我可以在這台 XP 機器上建構某種自動化,但這仍然是我希望消除的手動過程。我們甚至不想獲取他們的數據庫,而且他們中的許多人不希望我們看到他們的數據。

作為安裝程序的一部分,有沒有一種方法可以輕鬆分發到我們的客戶端電腦上,它可以自動執行從任何給定數據庫版本從 SQL 7 到 SQL Server 2014 的升級?


編輯

為了更清楚地了解安裝過程,這是我們已經能夠直接從 2000 恢復到 2008 R2 的數據庫的安裝程序。但是我們需要擴展這個安裝程序以適應從 MSSQL 7 到 2014 的數據庫升級。據我所知,我可以直接從 7 > 2005 > 2014 跳轉。但如果可能的話,我仍然想消除這一跳。我討厭我們的安裝程序在我們客戶的機器上傳入 2005 和 2014。

如果我在你的位置,我會走下面的路線,這並不像你想像的那麼乏味。

  • 備份你的 sql 7.0 數據庫並在 sql server 2005 上恢復它。
  • 備份您的 sql server 2005 數據庫並在 sql server 2014 上恢復。

這是一個神話,您不能將數據庫升級到比兩個新版本更多的版本

我已經寫了一個關於遷移前和遷移後步驟的詳細答案,這將是一個方便的參考。

對於自動化,您可以使用 dbatools(基於 powershell)-支持從 sql server 2000 遷移到 2016(最新版本)的start-sqlmigration 。

注意:您必須測試很多東西,因為這是您的應用程序的重大飛躍!

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