SQL Server:管理移轉

移轉規模龐大的資料庫從來不是一件容易的工作,但是 Microsoft 有工具可以減輕麻煩,並確保您做好準備。

偉立李

最新小版本的 SQL Server,代號為"德納",提供了許多令人信服的功能,並將驅動器將移動到 SQL Server 的許多組織。 不過,即使使用性能和總體擁有成本 (TCO) 優勢將移動到 SQL Server,一些組織可能有資料庫遷移的成本和風險的擔憂。

幸運的是,Microsoft 提供了一種工具,SQL 伺服器遷移助手 (址),遷移過程自動化。 最新址 v.5.1 (本月與 SQL 伺服器德納具備同時公佈) 支援遷移從 Oracle、 Sybase、 MySQL 和訪問資料庫,SQL Server。 可以使用址減輕您的資料庫遷移專案。 例如,這裡是從 Oracle 資料庫遷移過程看 — — 但過程和步驟都相同時從其他資料庫遷移。

評估您的資料庫

址自動遷移的大多數資料庫物件包括存儲的過程、 函數、 包和觸發器。 有幾個特殊資料類型,如物件類型或空間類型按址的當前版本不受支援的。 此外,您也可能不能自動轉換的複雜 PL/SQL 語句。 在您的 Oracle 資料庫上運行遷移評估並確定,是否您的資料庫架構包含這些語句,可以使用址。

評估摘要報告包含以下資訊:

  • **架構樹狀檢視:**源 Oracle 資料庫架構中的物件的清單。
  • 轉化率:址是能夠自動轉換的語句的百分比。 對於此示例 (請參閱圖 1),址工具可以將轉換的源 Oracle 架構中的所有語句 99.39%。
  • **物件計數:**的資料庫數發現在 Oracle 架構和"錯誤"的物件的計數 (更上的物件這以後)。
  • **轉換郵件摘要:**在遷移源 Oracle 架構時遇到的問題的描述。

有三種類型的你可能會遇到使用址工具遷移過程中的轉換郵件: 錯誤、 警告和資訊:

  • 錯誤消息址不能轉換資料庫物件或資料庫物件中的語句時引發。
  • A警告消息時址是能夠轉換 Oracle 語句,但轉換後的語句可能不會產生相同的結果,對於某些情況下引發。 例如,址將 Oracle SUBSTR() 轉換為 SQL 伺服器 substring ()。 在大多數情況下,substring () 會返回相同的輸出。 有一些,但是,結果的情況下不同。 例如,Oracle SUBSTR() 功能支援負值字元的位置。 SUBSTR('TechNet',-3,3) 返回 '網' Oracle,而 SUBSTRING('TechNet',-3,3) 將在 SQL Server 中返回一個空字串。
  • 資訊消息是址提供有關它如何轉換某些物件的其他資訊。

圖 1看看轉化率時轉換從 Oracle 資料庫。

每個錯誤消息包含顯示包含錯誤的物件的連結。 也是放在左側,轉換後的語句會什麼樣在 SQL Server 中的原始語句-並排比較 (請參閱圖 2) 在右邊。 錯誤消息還包括多少小時的手動轉換通常會解決這一問題所需的估計。

圖 2偶爾會遷移錯誤消息。

大多陣列織經常執行大量的 Oracle 資料庫架構進行評估。 他們會使用的總的轉化率和總估計手動轉換時間比較和優先遷移的 Oracle 資料庫架構。

轉換資料庫架構

址為您提供了多個架構轉換選項。 例如,您可以修改資料類型映射。 址提供了 Oracle 和 SQL Server 之間的預設資料類型映射。 但是,您可以自訂特定的表,所有表、 特定的物件 (如存儲的過程或函數) 或不同的使用 (例如,資料類型的列、 資料類型的變數或過程的輸入/輸出參數的資料類型) 的資料類型映射。

通過按一下"轉換模式"按鈕,將轉換資料庫架構。 然後您可以導航到不同的資料庫物件和比較原始的架構物件和轉換的物件 (請參見圖 3)

圖 3架構轉換的觀點。

時物件包含址是無法自動轉換的聲明,該工具將添加遷移錯誤說明、 評論特定語句或替換泛型類型。 此分離方法,可以繼續進行資料庫遷移和以後解決這一問題。

也可以解決問題,並直接從址語句修改。 例如,在圖 3,有一個使用者定義的函數,稱為"使用權"。這將返回 SQL Server 不支援間隔的資料類型。 您可以修改數量的返回類型 (請參見圖 4) 和重組的功能。 這將刪除該錯誤,並將返回的值轉換為 float(53)。

圖 4您可以修改語句中址來解決不相容性。

您還可以修改轉換後的語句。 例如,可以將"float(53)"的返回類型替換"int"。請注意您同址所做的任何修改存儲在本地。 源語句所做的更改不會應用於您已在生產中的 Oracle 資料庫架構。 同樣,目標伺服器 SQL 語句所做的任何更改不會立即應用到伺服器。 這允許您繼續改進,並進行必要的修改,轉換後的架構,而不會影響您的目標伺服器。

通過按右鍵 SQL 伺服器中繼資料資源管理器視窗上的架構名稱,可以將轉換後的架構部署到目標 SQL Server。 您還可以生成一個腳本來創建的整個架構的資訊,然後您可以將其部署到目標伺服器 (請參閱圖 5)。

圖 5部署轉換架構以 SQL 伺服器。

資料移轉

後在目標 SQL Server 中創建資料庫架構,可以使用址遷移 Oracle 資料。 址不是唯一的選擇遷移資料,儘管。 您也可以使用 SQL 伺服器集成服務 (SSIS)。 不過,同址遷移資料,可以使用相同類型的映射架構轉換。 從 Oracle 遷移到 SQL Server 時,它還處理一些常見的資料移轉問題。

例如,Oracle 具有更廣泛的支援的日期類型比 SQL Server。 預設情況下,址引發資料移轉錯誤,當發現這種情況。 你可以有址自動轉換與空值或 SQL 伺服器可以支援的最近日期範圍的日期值。 您可以修改此設置通過工具 |專案設置 |一般 |資料移轉 (請參見圖 6)。

圖 6有選項用於處理資料移轉錯誤。

完成資料移轉、 址將後顯示的行數與報告的遷移,成功率和遷移的每個表所花費的時間 (請參閱圖 7)。

圖 7址會給你一個完整的資料移轉報告。

測試資料庫遷移

您已經成功地遷移您的資料庫後下, 一步是驗證。 當從 Oracle 和 Sybase 遷移,址可以來源資料庫和遷移的資料庫進行比較。 您可以定義一系列的測試用例 ; 然後址在源和目標資料庫上運行測試用例。 它將比較結果,以及任何變化對基礎資料表進行測試用例。

要定義一個測試用例,從測試功能表中選擇新的測試案例。 測試用例嚮導將引導您完成創建測試用例的過程。 您還可以選擇要測試的特定資料庫物件。 例如,有一個稱為 ADD_EMPLOYEE 的過程。 此過程提供從輸入參數的值基於在雇員表中插入新記錄。 您可以定義在調用值選項卡通過測試中使用的特定輸入的參數 (請參見圖 8)。 您可以定義任意多個調用值根據您的需要。

圖 8指定調用值的測試用例的嚮導。

除了比較測試物件執行,址還可以測試對基礎資料表的更改。 例如,當執行 ADD_EMPLOYEE 存儲過程,SQL Server 將插入一個附加行雇員表。 址比較在源和目標之間的受影響表中已更改的行。 如果需要,您還可以指定用於比較的細微性級別 (請參見圖 9)。

圖 9指定的基礎資料表比較。

在確定測試用例中的最後一步是其他設置。 一項重要的設定是否回滾到表測試所做的任何更改 (請參閱圖 10)。 在我的示例中,當執行 ADD_EMPLOYEE 存儲過程中,新的記錄將添加到來源資料庫和目標 SQL Server 資料庫。 如果您選擇的資料回滾選項,址將在測試完成後刪除插入的值。

Defining test case settings

圖 10定義測試用例的設置。

定義測試用例之後, 您可以根據需要多次作為運行。 每次運行,您將收到比較結果的測試結果報告 (請參閱圖 11)。

SSMA will give you a full test result report

圖 11址會給你一個完整的測試結果報告。

址為您提供了豐富的功能,自動資料庫遷移。 評估計畫遷移、 轉換資料庫架構中,資料庫的複雜性解決常見的資料庫遷移問題、 遷移資料從來源資料庫並驗證遷移的資料庫,可以使用該工具。

該工具用於遷移到 SQL Server,但它也支援直接遷移到 SQL Azure (從 MySQL,Sybase 和訪問資料庫)。 當遷移到 SQL Azure,址考慮到 SQL Azure 平臺的帳戶要求。 例如,SQL Azure 要求其表具有聚集的索引。 如果源表不包含主鍵或聚簇的索引,該工具可以自動添加 ROWID 列和列上的聚集的索引設置轉換過程中。

你可以下載址從 Microsoft SQL 伺服器 Web 網站。 不僅是免費的該工具,您還可以獲得免費的電子郵件支援從微軟客戶服務和支援。 上址的詳細資訊,請訪問址團隊博客的視頻演示和操作方法的文章,以及指導解決常見的遷移問題。

WellyLee

偉立李與 SQL 伺服器遷移助理團隊的高級專案經理,是從 Oracle 和 MySQL 資料庫遷移工具,到 SQL Server 的功能所有者。 在 2007 年加入微軟,之前,他曾擔任顧問對資料庫解決方案的開發和企業應用程式實現超過 10 年。

相關內容