すべてのプロダクト
Search
ドキュメントセンター

Data Management:スキーマを同期する

最終更新日:Mar 29, 2025

データ管理 (DMS) は、スキーマ同期機能を提供します。 この機能を使用すると、2 つのデータベースのスキーマ、またはデータベース内の特定のテーブルのスキーマを比較し、スキーマ同期用の SQL 文を生成できます。 次に、文を実行して、スキーマをターゲットデータベースに同期できます。 この機能を使用すると、本番環境のデータベースとテスト環境のデータベース、テスト環境の異なるデータベース、または本番環境の異なるデータベースなど、異なる環境にあるデータベースのスキーマを比較および同期できます。

前提条件

  • ソースデータベースとターゲットデータベースは、次のタイプです。

    • MySQL: ApsaraDB RDS for MySQLPolarDB for MySQLApsaraDB MyBase for MySQLPolarDB-XAnalyticDB for MySQL V3.0、およびその他のソースからの MySQL データベース

    • SQL Server: ApsaraDB RDS for SQL ServerApsaraDB MyBase for SQL Server、およびその他のソースからの SQL Server データベース

    • PostgreSQL: ApsaraDB RDS for PostgreSQLPolarDB for PostgreSQLApsaraDB MyBase for PostgreSQLAnalyticDB for PostgreSQL、およびその他のソースからの PostgreSQL データベース

    • MariaDB: ApsaraDB RDS for MariaDB およびその他のソースからの MariaDB データベース

    • MySQL モードの ApsaraDB for OceanBase

    • PolarDB for PostgreSQL (Oracle 互換)

  • ターゲットデータベースに対して [実行機能を有効にする (閉じている場合、他のルールは無効)] というセキュリティルールが有効になっています。 詳細については、「テーブル同期」トピックの実行機能を有効にするセクションをご参照ください。

    説明

    このルールが無効になっている場合、スキーマ同期機能は 2 つの異なるデータベースのスキーマを比較することのみが可能で、スキーマを同期するための SQL 文を実行することはできません。

  • ソースデータベースに対するクエリ権限がアカウントに付与されています。 詳細については、所有している権限を表示するをご参照ください。

  • ターゲットデータベースのテーブルを変更する権限がアカウントに付与されています。 詳細については、所有している権限を表示するをご参照ください。

使用上の注意

スキーマ同期機能を使用して、ソースデータベースのスキーマをターゲットデータベースに同期できますが、同期プロセス中はデータは同期されません。 次の 2 つのシナリオに注意してください。

  • ターゲットデータベースに、ソースデータベースで同期されるテーブルと同じ名前のテーブルが含まれていません。 この場合、DMS はターゲットデータベースにそれらのテーブルを作成します。

  • ターゲットデータベースに、ソースデータベースで同期されるテーブルと同じ名前のテーブルが含まれています。 この場合、DMS はスキーマの整合性を確保するために、ターゲットデータベースのそれらのテーブルにフィールドを作成するか、フィールドを削除します。 フィールドが削除されると、フィールドのデータも削除されます。 注意して進めてください。

説明

同期プロセス中に、DMS はソースデータベースのどのテーブルとも一致しないターゲットデータベース内のテーブルを削除しません。

手順

  1. DMS コンソール V5.0 にログインします。
  2. 上部のナビゲーションバーで、[データベース開発] > [スキーマ変更] > [スキーマ同期] を選択します。

    説明

    シンプルモードで DMS コンソールを使用する場合は、コンソールの左上隅にある 2023-01-28_15-57-17.png アイコンにポインターを移動し、[すべての機能] > [データベース開発] > [スキーマ変更] > [スキーマ同期] を選択します。

  3. [テーブル同期チケット] ページで、パラメーターを構成します。 次の表にパラメーターを示します。

    パラメーター

    説明

    [ソースデータベース]

    1. スキーマ同期のソースデータベース。 [ソースデータベース] フィールドにデータベース名のキーワードを入力して、データベースを検索できます。

    2. オプション: データベースのスキーマ [バージョン番号] を指定します。 デフォルトでは、最新のスキーマが使用されます。 スキーマバージョンの詳細については、スキーマバージョンを管理するをご参照ください。

    [ターゲットデータベース]

    1. スキーマ同期のターゲットデータベース。 [ターゲットデータベース] フィールドにデータベース名のキーワードを入力して、データベースを検索できます。

    2. オプション: データベースのスキーマ [バージョン番号] を指定します。 デフォルトでは、最新のスキーマが使用されます。 スキーマバージョンの詳細については、スキーマバージョンを管理するをご参照ください。

    [同期されるテーブル]

    同期するテーブル。 有効な値:

    • [一部のテーブル]: このオプションを選択した場合は、ソーステーブルとターゲットテーブルの名前を入力する必要があります。 ターゲットテーブルの名前を指定しない場合、DMS はターゲットテーブル名がソーステーブル名と同じであると想定します。

    • [すべてのテーブル]: このオプションを選択すると、ソースデータベース内のすべてのテーブルが同期されます。

    [エラーを無視するかどうか]

    SQL 文の実行時に発生したエラーをスキップするかどうかを指定します。 有効な値:

    • [無視しない]: SQL 文の実行時にエラーが発生した場合、DMS は現在および後続の SQL 文の実行を停止します。

    • [無視]: SQL 文の実行中にエラーが発生した場合、DMS は現在の SQL 文をスキップし、残りのすべての文が実行されるまで後続の SQL 文の実行を続けます。

      警告

      エラーを無視することを選択した場合、一部の DDL 実行がスキップされ、同期結果が期待どおりにならない可能性があります。 慎重に進んでください。

  4. [送信] をクリックします。

    DMS はスキーマの分析を開始します。

    説明

    スキーマ分析中にスキーマが変更された場合は、スキーマ分析ステップで [再分析] をクリックします。

  5. [承認のために送信] をクリックし、承認を待ちます。

  6. アプリケーションが承認されたら、[送信してターゲットデータベースに同期] をクリックします。

  7. 実行する SQL 文を確認し、[同期の確認] をクリックします。

    説明

    同期の所要時間は、同期するテーブルの数やタスクキューのサイズなど、さまざまな要因の影響を受けます。 閑散時にスキーマを同期することをお勧めします。

    [同期の確認] をクリックすると、DMS は SQL 文を実行してスキーマの同期を開始します。 [詳細] をクリックすると、SQL 文、実行時間、スケジューリングの詳細などの詳細情報を含む操作ログを表示できます。

  8. [同期済み。] メッセージが表示されたら、ソースデータベースのスキーマはターゲットデータベースに同期されています。