- 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
- Amazon Aurora 10.11 以降、11.6 以降、12.4 以降、13.3 以降、14、15
- セルフマネージド PostgreSQL(オンプレミスまたはお客様が完全に管理するクラウド VM 上)9.4、9.5、9.6、10、11、12、13、14、15
- Cloud SQL 9.6、10、11、12、13、14、15
- サポートされているリンク先
-
- AlloyDB for PostgreSQL 14、15、16
- クロス バージョンのサポートはありますか?
- Database Migration Service は、サポートされている移行元データベース バージョンから PostgreSQL への AlloyDB への移行をサポートしています。
- 移行されるデータ、スキーマ、メタデータ コンポーネント
- 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 または小規模なデータベース移行)に推奨されます。
- Bastion 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間の高可用性で低レイテンシの接続を使用します。 帯域幅が最も大きく、長時間実行される大規模な移行に最適です。 - 追加料金が発生します。
- 接続はデフォルトで安全ではありません。
- 複雑な構成(すでに配置されている場合を除く)。
- 既知の制限事項
- 既知の制限事項をご覧ください。