Babelfish を使った PostgreSQL への移行 - Amazon Aurora

Babelfish を使った PostgreSQL への移行

Aurora 用の Babelfish PostgreSQL を使用しすると、SQL Server データベースから Amazon Aurora PostgreSQL DB クラスターへの移行が容易に可能です。移行前に 1 つのデータベースまたは複数のデータベースでの babelfish の使用 を確認する。

次の概要は、SQL Server アプリケーションを Babelfish で利用するために必要なステップを説明しています。

  1. Babelfish を有効にして新しい Aurora PostgreSQL DB クラスターを作成し、SQL Server T-SQL の構文と機能のサポートを有効します。詳細については、「」を参照してくださいBabelfish を使用した Aurora PostgreSQL クラスターの作成

  2. 新しいデータベースに接続するには、sqlcmd のようなネイティブ SQL Server ツールを使用します。詳細については、「」を参照してくださいSQL Server クライアントを使用した DB クラスターへの接続

  3. 移行したい SQL Server データベースのデータ定義言語 (DDL) をエクスポートします。DDL は、ユーザーデータ (テーブル、インデックス、ビューなど) とユーザーが作成したデータベースコード (保存された手順、ユーザー定義の関数、トリガーなど) を含むデータベースオブジェクトを記述する SQL コードです。

    SQL Server Management Studio (SSMS) を使用して DDL をエクスポートできます。既存の SQL Server インスタンスに接続したら、以下のステップを実行します:

    1. データベース名のコンテキストメニューを開きます (右クリック)。

    2. コンテキストメニューからタスクスクリプトの生成を選択します。

    3. オブジェクトを選択のページで、データベース全体または特定のオブジェクトを選択します。

    4. [Set Scripting Options] (スクリプティングオプションの設定) のページで [Advanced] (アドバンスト) を選択し、トリガー、ログイン、所有者、アクセス許可がオンになっていることを確認します。SSMS では、これらはデフォルトでオフになっています。

    5. スクリプトを保存します。

  4. 移行したい SQL Server データベースのデータ操作言語 (DML) をエクスポートします。DML は、データベースのテーブルに行を挿入する SQL コードです。

    SQL Server Management Studio (SSMS) を使用して DML をエクスポートできます。既存の SQL Server インスタンスに接続したら、以下のステップを実行します:

    1. 右クリックでデータベース名のメニューを開きます。

    2. コンテキストメニューからタスクスクリプトの生成を選択します。

    3. オブジェクトを選択のページで、データベース全体または特定のオブジェクトを選択します。

    4. スクリプティングオプションの設定のページでアドバンスト を選択し、スクリプト化するデータのタイプデータのみを選択します。

    5. スクリプトを保存します。

  5. 評価ツールを実行します。例えば、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 ユーザーガイド」の「仮想ターゲットの使用」を参照してください。

  6. 新しい Babelfish サーバーで DDL を実行し、SSMS またはsqlcmdを使用して Babelfish でスキーマを再作成します。必要に応じてコードを調整します。このプロセスには複数のイテレーションが必要になる場合があります。

  7. 新しい Babelfish サーバーで DML を実行して、データベースのテーブルに行を挿入します。

  8. SQL Server ではなく Babelfish エンドポイントに接続するようにクライアントアプリケーションを再構成します。詳細については、「」を参照してください有効化した Babelfish での DB クラスターへの接続

  9. 必要に応じてアプリケーションを変更し、再テストします。詳細については、「Aurora PostgreSQL と Babelfish と SQL Server の違い」を参照してください。

  10. アプリケーションのテスト結果に問題がなければ、本番環境で Babelfish データベースの使用をスタートします。

    準備ができたら元のデータベースを停止し、ライブクライアントアプリケーションをリダイレクトして Babelfish TDS ポートを使用します。

  11. (任意) クライアント側の SQL クエリをキャプチャし、評価ツール (Babelfish Compass など) を介してこれらのクエリを実行します。リバースエンジニアリングされたスキーマは、サーバー側 SQL コードのみを変換します。複雑なクライアント側 SQL クエリを使用するアプリケーションでは、Babelfish の互換性のために、これらの分析もすることをお勧めします。分析により、クライアント側 SQL 文にサポートされていない SQL 機能が含まれていることが示された場合、クライアントアプリケーションの SQL の側面を確認し、必要に応じて変更を加えます。