本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將SQL伺服器資料庫遷移到巴貝爾魚的 Aurora 郵政 SQL
您可以使用 Aurora Postgre 將SQL伺服器資料庫遷移SQL到 Amazon Aurora Post SQL gre 資料庫叢集。遷移之前,請檢閱搭配單一資料庫或多個資料庫來使用 Babelfish。
遷移程序概觀
以下摘要列出了成功遷移SQL服務器應用程序並使其與 Babelfish 一起使用所需的步驟。如需與可用於匯出與匯入程序的工具相關的資訊,或其他詳細資料,請參閱 從服務SQL器遷移到Babelfish 的導入/導出工具。要加載數據,我們建議使用 AWS DMS 以 Aurora Postgre SQL 資料庫叢集做為目標端點。
-
在開啟「巴貝魚」的情況下建立新的「Aurora」SQL 資料庫叢集。如要瞭解如何作業,請參閱創建一個巴貝爾魚 Aurora 後SQL數據庫集群。
若要匯入從SQL伺服器資料庫匯出的各種SQL成品,請使用伺服器工具 (例如 sqlcmd) 連線至 Babelfish 叢集。SQL
如需詳細資訊,請參閱使用 SQL Server 用戶端來連線至資料庫叢集。 -
在您要移轉的SQL伺服器資料庫上,匯出資料定義語言 (DDL)。DDL是SQL描述包含使用者資料 (例如資料表、索引和檢視) 和使用者撰寫的資料庫程式碼 (例如預存程序、使用者定義函數和觸發程序) 的資料庫物件的程式碼。
如需詳細資訊,請參閱使用SQL服務器管理工作室(SSMS)遷移到巴貝爾魚。
-
運行評估工具來評估您可能需要進行的任何更改的範圍,以便 Babelfish 可以有效地支持在服務器上SQL運行的應用程序。如需詳細資訊,請參閱評估和處理SQL服務器和巴貝魚之間的差異。
-
檢閱 AWS DMS 目標端點限制,並視需要更新DDL指令碼。如需詳細資訊,請參閱將波斯特雷SQL目標端點與 Babelfish 表一起使用限制,請參閱使用 Aurora Postgre 作為目標中的限制。SQL
-
在新的 Babelfish DB 叢集上,在指定的 T-資料SQL庫DDL內執行,以僅建立結構描述、使用者定義的資料類型,以及具有其主索引鍵條件約束的表格。
-
使用 AWS DMS 將您的數據從SQL服務器遷移到 Babelfish 表。對於使用SQL伺服器變更資料擷取或SQL複寫的連續複寫,請使用 Aurora Postgre SQL 而非 Babel 魚做為端點。要做到這一點,請參閱使用巴貝爾魚作為 Aurora Postgre SQL 作為目標 AWS Database Migration Service.
-
資料載入完成時,請在 Babelfish 叢集上建立支援應用程式的所有剩餘 T SQL 物件。
-
重新配置您的客戶端應用程序以連接到 Babelfish 端點,而不是服務器數據SQL庫。如需詳細資訊,請參閱連線至 Babelfish 資料庫叢集。
-
視需要修改應用程式並重新測試。如需詳細資訊,請參閱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。我們建議採取下列步驟來簡化評估。
-
在 Choose Objects (選擇物件) 頁面上,選擇 Script entire database and all database objects (編寫整個資料庫和所有資料庫物件的指令碼)。
-
針對 Set Scripting Options (設定指令碼選項),選擇 Save as script file (儲存為指令碼檔案) 作為 Single script file (單一指令碼檔案)。
-
選擇 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
-
-
執行精靈中的其餘步驟來產生檔案。
從服務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
-
執行
CREATE SCHEMA
陳述式。 -
執行
CREATE TYPE
陳述式來建立使用者定義的資料類型。 -
執行具有主索引鍵或唯一條件約束的基本
CREATE TABLE
陳述式。
使用建議的匯入/匯出工具執行資料載入。針對下列步驟執行修改的指令碼,以新增剩餘的資料庫物件。您需要建立資料表陳述式來針對條件約束、觸發條件和索引執行這些指令碼。在指令碼產生之後,請刪除建立資料表陳述式。
-
針對檢查條件約束、外部索引鍵條件約束、預設條件約束執行
ALTER TABLE
陳述式。 -
執行
CREATE TRIGGER
陳述式。 -
執行
CREATE INDEX
陳述式。 -
執行
CREATE VIEW
陳述式。 -
執行
CREATE STORED PROCEDURE
陳述式。
針對每個物件類型產生指令碼
請遵循下列步驟,使用中的「產生命令檔」精靈建立基本建立表格陳述式SSMS。遵循相同步驟,針對不同的物件類型產生指令碼。
-
Connect 至您現有的SQL伺服器執行個體。
-
在資料庫名稱上開啟內容選單 (按一下滑鼠右鍵)。
-
選擇 Tasks (任務),然後選擇 Generate Scripts... (產生指令碼...)。
-
在 Choose Objects (選擇物件) 窗格中,選擇 Select specific database objects (選取特定資料庫物件)。選擇 Tables (資料表),然後選取所有資料表。選擇 Next (下一步) 繼續。
-
在 Set Scripting Options (設定指令碼選項) 頁面上,選擇 Advanced (進階) 以開啟 Options (選項) 設定。若要產生基本建立資料表陳述式,請變更下列預設值:
-
Script Defaults (指令碼預設值) 變更為 False。
-
Script Extended Properties (指令碼延伸屬性) 變更為 False。Babelfish 不支援延伸屬性。
-
Script Check Constraints (指令碼檢查條件約束) 變更為 False。Script Foreign Keys (指令碼外部索引鍵) 變更為 False。
-
-
選擇確定。
-
在 Set Scripting Options (設定指令碼選項) 頁面上,選擇 Save as script file (儲存為指令碼檔案),然後選擇 Single script file (單一指令碼檔案)。輸入您的 File name (檔案名稱)。
-
選擇 Next (下一步) 以檢視 Summary wizard (摘要精靈) 頁面。
-
選擇 Next (下一步) 以開始產生指令碼。
您可以繼續在精靈中產生其他物件類型的命令檔。請選擇三次 Previous (上一步」按鈕,以回到 Choose Objects (選擇物件) 頁面,而不是在儲存檔案之後選擇 Finish (完成)。然後重複精靈中的步驟,為其他物件類型產生命令檔。