將SQL伺服器資料庫遷移到巴貝爾魚的 Aurora 郵政 SQL - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將SQL伺服器資料庫遷移到巴貝爾魚的 Aurora 郵政 SQL

您可以使用 Aurora Postgre 將SQL伺服器資料庫遷移SQL到 Amazon Aurora Post SQL gre 資料庫叢集。遷移之前,請檢閱搭配單一資料庫或多個資料庫來使用 Babelfish

遷移程序概觀

以下摘要列出了成功遷移SQL服務器應用程序並使其與 Babelfish 一起使用所需的步驟。如需與可用於匯出與匯入程序的工具相關的資訊,或其他詳細資料,請參閱 從服務SQL器遷移到Babelfish 的導入/導出工具。要加載數據,我們建議使用 AWS DMS 以 Aurora Postgre SQL 資料庫叢集做為目標端點。

  1. 在開啟「巴貝魚」的情況下建立新的「Aurora」SQL 資料庫叢集。如要瞭解如何作業,請參閱創建一個巴貝爾魚 Aurora 後SQL數據庫集群

    若要匯入從SQL伺服器資料庫匯出的各種SQL成品,請使用伺服器工具 (例如 sqlcmd) 連線至 Babelfish 叢集。SQL如需詳細資訊,請參閱使用 SQL Server 用戶端來連線至資料庫叢集

  2. 在您要移轉的SQL伺服器資料庫上,匯出資料定義語言 (DDL)。DDL是SQL描述包含使用者資料 (例如資料表、索引和檢視) 和使用者撰寫的資料庫程式碼 (例如預存程序、使用者定義函數和觸發程序) 的資料庫物件的程式碼。

    如需詳細資訊,請參閱使用SQL服務器管理工作室(SSMS)遷移到巴貝爾魚

  3. 運行評估工具來評估您可能需要進行的任何更改的範圍,以便 Babelfish 可以有效地支持在服務器上SQL運行的應用程序。如需詳細資訊,請參閱評估和處理SQL服務器和巴貝魚之間的差異

  4. 檢閱 AWS DMS 目標端點限制,並視需要更新DDL指令碼。如需詳細資訊,請參閱將波斯特雷SQL目標端點與 Babelfish 表一起使用限制,請參閱使用 Aurora Postgre 作為目標中的限制。SQL

  5. 在新的 Babelfish DB 叢集上,在指定的 T-資料SQL庫DDL內執行,以僅建立結構描述、使用者定義的資料類型,以及具有其主索引鍵條件約束的表格。

  6. 使用 AWS DMS 將您的數據從SQL服務器遷移到 Babelfish 表。對於使用SQL伺服器變更資料擷取或SQL複寫的連續複寫,請使用 Aurora Postgre SQL 而非 Babel 魚做為端點。要做到這一點,請參閱使用巴貝爾魚作為 Aurora Postgre SQL 作為目標 AWS Database Migration Service.

  7. 資料載入完成時,請在 Babelfish 叢集上建立支援應用程式的所有剩餘 T SQL 物件。

  8. 重新配置您的客戶端應用程序以連接到 Babelfish 端點,而不是服務器數據SQL庫。如需詳細資訊,請參閱連線至 Babelfish 資料庫叢集

  9. 視需要修改應用程式並重新測試。如需詳細資訊,請參閱Babelfish for Aurora PostgreSQL 與 SQL Server 之間的差異

您仍然需要評估客戶端SQL查詢。從SQL伺服器執行個體產生的結構描述只會轉換伺服器端SQL程式碼。建議您採取下列步驟:

  • 使用SQL伺服器效能分析工具搭配 TSQL _Replay 預先定義的範本來擷取用戶端查詢。此範本會擷取 T SQL 陳述式資訊,然後您可以重新顯示這些資訊以進行反覆調整和測試。您可以從 [工具] 功能表啟動SQL伺服器管理 Studio 中的效能分析工。選擇 [SQL伺服器效能分析工具] 以開啟效能分析工具,並選擇 _Replay 範本。TSQL

    若要用於 Babelfish 遷移,請啟動追蹤,然後使用功能測試執行應用程式。效能分析工具會擷取 T-SQL 陳述式。完成測試後,請停止追蹤。將結果儲存至含有用戶端查詢的XML檔案 (「檔案 > 另存新檔 > 追蹤XML檔案以重新顯示」)。

    如需詳細資訊,請參閱 Microsoft 文件中的SQL伺服器效能分析工具。如需 TSQL _Replay 範本的詳細資訊,請參閱SQL伺服器效能分析工具範本。

  • 對於具有複雜客戶端SQL查詢的應用程序,我們建議您使用 Babelfish 指南針來分析這些查詢是否具有 Babelfish 兼容性。如果分析指出用戶端SQL陳述式包含不支援的SQL功能,請檢閱用戶端應用程式中的各個SQL層面,並視需要進行修改。

  • 您也可以將SQL查詢擷取為擴充事件 (.xel 格式)。若要這麼做,請使用效能SSMSXEvent分析工具。產生 .xel 檔案之後,請將SQL陳述式解壓縮至 .xml 檔案,然後指南針可以處理。如需詳細資訊,請參閱 Microsoft 說SSMSXEvent明文件中的使用專案工具。

如果您對所遷移應用程式需要的所有測試、分析和任何修改都滿意,便可開始將 Babelfish 資料庫用於生產環境。若要這麼做,請停止原始資料庫,並重新導向即時用戶端應用程式以使用 Babelfish TDS 連接埠。

注意

AWS DMS 現在支持從巴貝魚複製數據。如需詳細資訊,請參閱 AWS DMS 現在支持巴貝爾魚為 Aurora 後SQL作為源。

評估和處理SQL服務器和巴貝魚之間的差異

為了獲得最佳結果,我們建議您在將SQL伺服器資料庫應用程式實際遷移到 Babelfish 之前,先評估產生的DDL/DML和用戶端查詢程式碼。根據 Babelfish 的版本和應用程序實現的SQL服務器的特定功能,您可能需要重構應用程序或使用 Babelfish 尚未完全支持的功能的替代方法。

  • 要評估您的SQL服務器應用程序代碼,請使用生成的 Babelfish 指南針DDL來確定 Babelfish 支持多少 T-SQL 代碼。確定在 Babelfish 上運行之前可能需要修改的 T SQL 代碼。如需此工具的詳細資訊,請參閱上的「Babel 魚指南針」工具。 GitHub

    注意

    Babelfish Compass 是一種開放原始碼工具。通過 GitHub 而不是通過報告巴貝爾魚指南針的任何問題 AWS Support。

您可以使用生成腳本嚮導與SQL服務器管理 Studio(SSMS)來生成由 Babelfish 指南針或評估的SQL文件 AWS Schema Conversion Tool CLI。我們建議採取下列步驟來簡化評估。

  1. Choose Objects (選擇物件) 頁面上,選擇 Script entire database and all database objects (編寫整個資料庫和所有資料庫物件的指令碼)。

    使用「SSMS產生命令檔精靈」來選擇物件。
  2. 針對 Set Scripting Options (設定指令碼選項),選擇 Save as script file (儲存為指令碼檔案) 作為 Single script file (單一指令碼檔案)。

    使用「SSMS產生命令檔精靈」來設定指令碼選項。
  3. 選擇 Advanced (進階) 來變更預設指令碼選項,以識別通常設定為 false 進行完整評估的功能:

    • Script Change Tracking (指令碼變更追蹤) 設為 True

    • Script Full-Text Indexes (指令碼全文檢索) 設為 True

    • Script Triggers (指令碼觸發條件) 設為 True

    • Script Logins (指令碼登入) 設為 True

    • Script Owner (指令碼擁有者) 設為 True

    • Script Object-Level Permissions (指令碼物件層級許可) 設為 True

    • Script Collations (指令碼定序) 設為 True

    使用「SSMS產生命令檔精靈」來設定進階指令碼選項。
  4. 執行精靈中的其餘步驟來產生檔案。

從服務SQL器遷移到Babelfish 的導入/導出工具

我們建議您使用 AWS DMS 作為從SQL服務器遷移到 Babelfish 的主要工具。但是,Babelfish 支持其他幾種使用包括以下內容的SQL服務器工具遷移數據的方法。

  • SQL伺服器整合服務 (SSIS) 適用於所有版本的巴貝魚。如需詳細資訊,請參閱SQL使用SSIS和 Babelfish 從SQL伺服器遷移至 Aurora 郵政

  • 針對 Babelfish 2.1.0 及更新版本使用「Im SSMS port/Export 精靈」。此工具可透過使用SSMS,但也可作為獨立工具使用。如需詳細資訊,請參閱 Microsoft 文件中的歡迎使用SQL伺服器匯入和匯出精靈

  • Microsoft 大量資料複製程式 (bcp) 公用程式可讓您以指定的格式,將資料從 Microsoft SQL Server 執行個體複製到資料檔案。如需詳細資訊,請參閱 Microsoft 文件中的 bcp 公用程式。Babelfish 現在支援使用用BCP戶端進行資料遷移,bcp 公用程式現在支援-E旗標 (用於識別欄) 和-b 旗標 (用於批次插入)。不支援某些 bcp 選項,包括 -C-T-G-K-R-V-h

使用SQL服務器管理工作室(SSMS)遷移到巴貝爾魚

建議針對每個特定物件類型產生個別的檔案。您可以先針對每一組DDL敘述句使SSMS用中的「產生命令檔」精靈,然後以群組的形式修改物件,以修正評估期間發現的任何問題。

執行下列步驟以移轉資料 AWS DMS 或其他資料移轉方法。首先運行這些創建腳本類型,以獲得更好,更快的方法來將數據加載到 Aurora Postgre 中的 Babelfish 表上。SQL

  1. 執行 CREATE SCHEMA 陳述式。

  2. 執行 CREATE TYPE 陳述式來建立使用者定義的資料類型。

  3. 執行具有主索引鍵或唯一條件約束的基本 CREATE TABLE 陳述式。

使用建議的匯入/匯出工具執行資料載入。針對下列步驟執行修改的指令碼,以新增剩餘的資料庫物件。您需要建立資料表陳述式來針對條件約束、觸發條件和索引執行這些指令碼。在指令碼產生之後,請刪除建立資料表陳述式。

  1. 針對檢查條件約束、外部索引鍵條件約束、預設條件約束執行 ALTER TABLE 陳述式。

  2. 執行 CREATE TRIGGER 陳述式。

  3. 執行 CREATE INDEX 陳述式。

  4. 執行 CREATE VIEW 陳述式。

  5. 執行 CREATE STORED PROCEDURE 陳述式。

針對每個物件類型產生指令碼

請遵循下列步驟,使用中的「產生命令檔」精靈建立基本建立表格陳述式SSMS。遵循相同步驟,針對不同的物件類型產生指令碼。

  1. Connect 至您現有的SQL伺服器執行個體。

  2. 在資料庫名稱上開啟內容選單 (按一下滑鼠右鍵)。

  3. 選擇 Tasks (任務),然後選擇 Generate Scripts... (產生指令碼...)。

  4. Choose Objects (選擇物件) 窗格中,選擇 Select specific database objects (選取特定資料庫物件)。選擇 Tables (資料表),然後選取所有資料表。選擇 Next (下一步) 繼續。

    使用「SSMS產生命令檔」精靈來選擇物件和表格。
  5. Set Scripting Options (設定指令碼選項) 頁面上,選擇 Advanced (進階) 以開啟 Options (選項) 設定。若要產生基本建立資料表陳述式,請變更下列預設值:

    • Script Defaults (指令碼預設值) 變更為 False。

    • Script Extended Properties (指令碼延伸屬性) 變更為 False。Babelfish 不支援延伸屬性。

    • Script Check Constraints (指令碼檢查條件約束) 變更為 False。Script Foreign Keys (指令碼外部索引鍵) 變更為 False。

    使用「SSMS產生命令檔精靈」來設定進階選項。
  6. 選擇確定

  7. Set Scripting Options (設定指令碼選項) 頁面上,選擇 Save as script file (儲存為指令碼檔案),然後選擇 Single script file (單一指令碼檔案)。輸入您的 File name (檔案名稱)。

    使用「SSMS產生命令檔精靈」來設定指令碼的預設值。
  8. 選擇 Next (下一步) 以檢視 Summary wizard (摘要精靈) 頁面。

  9. 選擇 Next (下一步) 以開始產生指令碼。

    您可以繼續在精靈中產生其他物件類型的命令檔。請選擇三次 Previous (上一步」按鈕,以回到 Choose Objects (選擇物件) 頁面,而不是在儲存檔案之後選擇 Finish (完成)。然後重複精靈中的步驟,為其他物件類型產生命令檔。