Babelfish を使った PostgreSQL への移行
Aurora 用の Babelfish PostgreSQL を使用しすると、SQL Server データベースから Amazon Aurora PostgreSQL DB クラスターへの移行が容易に可能です。移行前に 1 つのデータベースまたは複数のデータベースでの babelfish の使用 を確認する。
次の概要は、SQL Server アプリケーションを Babelfish で利用するために必要なステップを説明しています。
-
Babelfish を有効にして新しい Aurora PostgreSQL DB クラスターを作成し、SQL Server T-SQL の構文と機能のサポートを有効します。詳細については、「」を参照してくださいBabelfish を使用した Aurora PostgreSQL クラスターの作成
-
新しいデータベースに接続するには、sqlcmd
のようなネイティブ SQL Server ツールを使用します。詳細については、「」を参照してくださいSQL Server クライアントを使用した DB クラスターへの接続 -
移行したい SQL Server データベースのデータ定義言語 (DDL) をエクスポートします。DDL は、ユーザーデータ (テーブル、インデックス、ビューなど) とユーザーが作成したデータベースコード (保存された手順、ユーザー定義の関数、トリガーなど) を含むデータベースオブジェクトを記述する SQL コードです。
SQL Server Management Studio (SSMS) を使用して DDL をエクスポートできます。既存の SQL Server インスタンスに接続したら、以下のステップを実行します:
-
データベース名のコンテキストメニューを開きます (右クリック)。
-
コンテキストメニューからタスク、スクリプトの生成を選択します。
-
オブジェクトを選択のページで、データベース全体または特定のオブジェクトを選択します。
-
[Set Scripting Options] (スクリプティングオプションの設定) のページで [Advanced] (アドバンスト) を選択し、トリガー、ログイン、所有者、アクセス許可がオンになっていることを確認します。SSMS では、これらはデフォルトでオフになっています。
-
スクリプトを保存します。
-
-
移行したい SQL Server データベースのデータ操作言語 (DML) をエクスポートします。DML は、データベースのテーブルに行を挿入する SQL コードです。
SQL Server Management Studio (SSMS) を使用して DML をエクスポートできます。既存の SQL Server インスタンスに接続したら、以下のステップを実行します:
-
右クリックでデータベース名のメニューを開きます。
-
コンテキストメニューからタスク、スクリプトの生成を選択します。
-
オブジェクトを選択のページで、データベース全体または特定のオブジェクトを選択します。
-
スクリプティングオプションの設定のページでアドバンスト を選択し、スクリプト化するデータのタイプでデータのみを選択します。
-
スクリプトを保存します。
-
-
評価ツールを実行します。例えば、Babelfish コンパスツール
を実行できます。このツールを DDL で実行して、T-SQL コードが Babelfish でサポートされる範囲を設定します。Babelfish で実行する前に、変更が必要になる可能性がある T-SQL コードを特定します。 注記 Babelfish Compass はオープンソースツールのため、不具合は GitHub を介して報告します。Babelfish Compass の不具合は AWS Support に報告しないでください。
また、AWS Schema Conversion Tool を使用して、移行を支援することもできます。AWS Schema Conversion Tool は Babelfish を仮想ターゲットとしてサポートしています。詳細については、「AWS Schema Conversion Tool ユーザーガイド」の「仮想ターゲットの使用」を参照してください。
-
新しい Babelfish サーバーで DDL を実行し、SSMS または
sqlcmd
を使用して Babelfish でスキーマを再作成します。必要に応じてコードを調整します。このプロセスには複数のイテレーションが必要になる場合があります。 -
新しい Babelfish サーバーで DML を実行して、データベースのテーブルに行を挿入します。
-
SQL Server ではなく Babelfish エンドポイントに接続するようにクライアントアプリケーションを再構成します。詳細については、「」を参照してください有効化した Babelfish での DB クラスターへの接続
必要に応じてアプリケーションを変更し、再テストします。詳細については、「Aurora PostgreSQL と Babelfish と SQL Server の違い」を参照してください。
アプリケーションのテスト結果に問題がなければ、本番環境で Babelfish データベースの使用をスタートします。
準備ができたら元のデータベースを停止し、ライブクライアントアプリケーションをリダイレクトして Babelfish TDS ポートを使用します。
-
(任意) クライアント側の SQL クエリをキャプチャし、評価ツール (Babelfish Compass など) を介してこれらのクエリを実行します。リバースエンジニアリングされたスキーマは、サーバー側 SQL コードのみを変換します。複雑なクライアント側 SQL クエリを使用するアプリケーションでは、Babelfish の互換性のために、これらの分析もすることをお勧めします。分析により、クライアント側 SQL 文にサポートされていない SQL 機能が含まれていることが示された場合、クライアントアプリケーションの SQL の側面を確認し、必要に応じて変更を加えます。