- Database Migration Service とは何ですか?
- サポートされているソースは何ですか?
- クロス バージョンのサポートはありますか?
- 移行されるデータ、スキーマ、メタデータ コンポーネント
- 継続的な移行中に複製される変更
- 移行されないデータ
- どのネットワーク方法が使用されていますか?
- 既知の制限事項
- Database Migration Service とは何ですか?
- Database Migration Service は、データを Google Cloudに簡単に移行できるサービスです。Database Migration Service は、PostgreSQL ワークロードを AlloyDB にリフト&シフトするのに役立ちます。
- どのソースがサポートされていますか?
-
- Amazon RDS 9.6.10 以降、10.5 以降、11.1 以降、12、13、14、15、16、17
- Amazon Aurora 10.11 以降、11.6 以降、12.4 以降、13.3 以降、14、15、16、17
- セルフマネージド(オンプレミス、またはお客様が完全に管理するクラウド VM 上)の PostgreSQL 9.4、9.5、9.6、10、11、12、13、14、15、16、17
- Cloud SQL 9.6、10、11、12、13、14、15、16、17
- どの宛先がサポートされていますか?
-
- AlloyDB for PostgreSQL 14、15、16、17
- クロス バージョンのサポートはありますか?
- Database Migration Service は、サポートされている移行元データベースの任意のバージョンから PostgreSQL への移行をサポートしています。
- 移行されるデータ、スキーマ、メタデータ コンポーネント
- Database Migration Service は、移行元から移行先にスキーマ、データ、メタデータを移行します。データベース移行の一環として、以下のデータ、スキーマ、メタデータ コンポーネントがすべて移行されます。
データの移行
- 選択したデータベースのすべてのスキーマとテーブル。
- 命名
- 主キー
- データ型
- 順序位置
- デフォルト値
- null 可能性
- 自動増分属性
- セカンダリ インデックス
- ストアド プロシージャ
- 関数
- トリガー
- ビュー
- 外部キー制約
- 継続的な移行中に複製される変更
-
移行中に自動更新されるのは DML の変更のみです。移行元と移行先のデータベースの互換性を保つように DDL を管理する作業は、ユーザーの責任の下で行う必要があり、次の 2 つの方法があります。
- 移行元への書き込みを停止し、移行元と移行先の両方で DDL コマンドを実行します。移行先で DDL コマンドを実行する前に、DDL 変更を適用する Cloud SQL ユーザーに
alloydbexternalsync
ロールを付与します。データのクエリや変更を有効にするには、該当する Cloud SQL ユーザーにalloydbexternalsync
ロールを付与します。 pglogical.replicate_ddl_command
を使用して、移行元と移行先の一貫したポイントで DDL を実行します。このコマンドを実行するユーザーは、移行元と移行先の両方で同じユーザー名を持ち、移行するアーティファクト(テーブル、シーケンス、ビュー、データベースなど)のスーパーユーザーまたはオーナーである必要があります。以下に、
pglogical.replicate_ddl_command
の使用例をいくつか示します。データベース テーブルに列を追加するには、次のコマンドを実行します。
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] add column surname varchar(20)', '{default}');
データベース テーブルの名前を変更するには、次のコマンドを実行します。
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] RENAME TO [table_name]','{default}');
データベース テーブルを作成するには、次のコマンドを実行します。
select pglogical.replicate_ddl_command(command := 'CREATE TABLE [schema].[table] (id INTEGER PRIMARY KEY, name VARCHAR);', replication_sets := ARRAY['default'']);
select pglogical.replication_set_add_table('default', '[schema].[table]');
- 移行元への書き込みを停止し、移行元と移行先の両方で DDL コマンドを実行します。移行先で DDL コマンドを実行する前に、DDL 変更を適用する Cloud SQL ユーザーに
- 移行されないデータ
-
AlloyDB の移行先インスタンスにユーザーを追加するには、PostgreSQL クライアントから追加します。PostgreSQL ユーザーの作成と管理の詳細を確認する。
PostgreSQL の論理デコード機能はラージ オブジェクトの変更のデコードをサポートしていないため、ラージ オブジェクトを複製できません。ラージ オブジェクトを参照する 列タイプ oid を含むテーブルの場合、行は同期され、新しい行は複製されます。ただし、宛先データベースの大きなオブジェクトにアクセスしようとすると(lo_get を使用して読み取り、lo_export を使用してエクスポート、または指定された oid のカタログ
pg_largeobject
を確認)、大きなオブジェクトが存在しないというメッセージが表示されて失敗します。主キーがないテーブルの場合、Database Migration Service は、変更データ キャプチャ(CDC)フェーズでの初期スナップショットと
INSERT
ステートメントの移行をサポートします。UPDATE
ステートメントとDELETE
ステートメントは手動で移行する必要があります。Database Migration Service は、マテリアライズド ビューからデータを移行しません。ビュー スキーマのみを移行します。ビューにデータを入力するには、次のコマンド
REFRESH MATERIALIZED VIEW view_name
を実行します。新しい AlloyDB の宛先の
SEQUENCE
状態(last_value
など)は、移行元のSEQUENCE
状態と異なる場合があります。 - 使用されているネットワーク方法
- Database Migration Service で移行を作成するには、移行元と Cloud SQL 移行先インスタンス間の接続を確立する必要があります。さまざまな方法がサポートされています。特定のワークロードに最適なものを選択します。
ネットワーキングの方式 説明 長所 短所 クラウドでホストされている VM を経由したリバース SSH トンネル セキュアなリバース SSH トンネルを介して、移行先から移行元への接続を確立します。 Google Cloud プロジェクトの踏み台ホスト VM と、ソースに接続できるマシン(ネットワーク上のノートパソコンなど)が必要です。Database Migration Service は、移行の作成時に必要な情報を収集し、設定用のスクリプトを自動生成します。 - 簡単に構成できる。
- カスタム ファイアウォール構成は必要ありません。
- 短期間の移行シナリオ(POC や小規模なデータベースの移行)におすすめします。
- 踏み台 VM の所有と管理はお客様が行います。
- 追加費用が発生する場合があります。
クラウドでホストされている VM を経由した TCP プロキシ クラウドでホストされている VM を経由した TCP プロキシを介して、移行先から移行元への接続を確立します。Database Migration Service は、移行の作成時に必要な情報を収集し、設定用のスクリプトを自動生成します。ソースが古いネットワーク アーキテクチャにある AlloyDB 移行に関連します。 - 簡単に構成できる。
- カスタム ファイアウォール構成は必要ありません。
- Bastion VM はユーザーが所有して管理するため、追加費用が発生する場合があります。
VPC ピアリング この方法は、VPC が相互に通信するように構成することで機能します。 - ネイティブ Google Cloud ソリューション。
- 簡単に構成できる。
- 高帯域幅
- 長時間実行される移行や大量の移行におすすめします。
移行元と移行先の両方のデータベースが Google Cloudでホストされている場合にのみ適用されます。 VPN 公共のインターネット経由の安全な接続を介して、内部ネットワークと Google Cloud VPC を接続する IPSec VPN トンネルを設定します。 Google Cloud VPN または内部ネットワーク用に設定された VPN ソリューションを使用します。 - 堅牢でスケーラブルな接続ソリューション。
- 中~高帯域幅。
- 組み込みのセキュリティ。
- Google Cloud ソリューションとして提供されるか、他のサードパーティから提供されます。
- 追加費用が発生します。
- 複雑な構成(すでにインプレースの場合を除く)。
Cloud Interconnect オンプレミス ネットワークと Google Cloudの間の高可用性で低レイテンシの接続を使用します。 帯域幅が最も高く、大容量の移行に最適です。 - 追加費用が発生します。
- 接続はデフォルトで安全ではありません。
- 複雑な構成(すでにインプレースの場合を除く)。
- 既知の制限事項は何ですか?
- 既知の制限事項をご覧ください。