PCDBE 合格対策
🚚 SECTION 3

データソリューションの移行

公式試験範囲: ~23%DMS と Datastream の使い分けがほぼ毎回出る。

🎯 1. DMS vs Datastream(最頻出)

DMS — Database Migration Service

用途: DB の完全移行、プライマリ切替

ターゲット: Cloud SQL / AlloyDB

モード: One-time / Continuous

対応: 同種 (MySQL→Cloud SQL MySQL) + 異種 (Oracle→PG)

Datastream

用途: CDC イベント連携

ターゲット: BigQuery / GCS / Pub/Sub

モード: 継続レプリ

対応ソース: Oracle / MySQL / PG / SQL Server / MongoDB

一発判定
「DBを移行する」「プライマリ切替」 → DMS
「変更を BigQuery に分析統合」「Pub/Sub にイベント連携」 → Datastream

🗺 2. 移行ツール選定マップ

シナリオ推奨ツール
MySQL → Cloud SQL MySQLDMS
PostgreSQL → Cloud SQL PostgresDMS
PostgreSQL → AlloyDBDMS
SQL Server → Cloud SQL SQL ServerDMS
Oracle → AlloyDB/PostgreSQL(異種)DMS Heterogeneous / Ora2Pg / Striim
Oracle → Bare Metal SolutionData Pump / RMAN(リフトアンドシフト)
任意 RDBMS → BigQuery(分析)Datastream
任意 RDBMS → Pub/Sub(イベント連携)Datastream
オフライン大容量(>10TB)Transfer Appliance
S3 → GCSStorage Transfer Service
MongoDB → Firestore (MongoDB-compatible)mongodump / mongorestore

⏱ 3. ダウンタイム別の戦略

許容ダウンタイム推奨手段注意
ゼロDMS Continuous + リバースレプリ最複雑、コスト高
数秒〜数分DMS Continuous標準、業務クリティカル
数時間DMS One-time or mysqldump / pg_dump夜間メンテで実施可
数日許容Transfer AppliancePB級・帯域不足の場合

🚀 4. ゼロダウンタイム移行フロー

Phase 0: 準備 ├ ソース DB バックアップ ├ ターゲット DB 構築 (HA 構成) ├ ネットワーク確立 (VPN / Interconnect) └ DMS ジョブ準備 (Continuous モード) Phase 1: 初期移行 ├ DMS スナップショット取得 ├ CDC 開始 (バイナリログ / WAL から継続適用) └ レプリ遅延を継続監視 (< 5秒目標) Phase 2: テスト ├ ステージングでカットオーバー リハーサル ├ 整合性チェック (行数・サンプル・ハッシュ) └ アプリ E2E テスト Phase 3: カットオーバー ├ アプリ書き込み停止 (数秒) ├ 残バイナリログ適用完了待ち ├ DMS Promote (新DBをPrimaryに) ├ アプリ接続先切替 └ 書き込み再開 Phase 4: 後処理 ├ リバースレプリケーション開始 (新→旧) ├ 監視強化 └ 数日〜数週間運用後、旧DB廃止

🔄 5. フォールバック / リバースレプリケーション

移行後の保険として、新 DB の変更を旧 DB に逆方向同期する。問題発生時に旧 DB に戻せる。

同種 DB の場合

DMS のジョブを 逆向き に作る(新→旧)

数日〜数週間運用後、問題なければ停止

異種 DB の場合

Striim や手動の Logical Replication で実現

複雑度高、テスト必須

🔍 6. 整合性検証 4 階層

  1. 行数チェックSELECT COUNT(*) を旧新で比較(最も基本)
  2. ハッシュチェックMD5(STRING_AGG(...)) で全体を厳密比較
  3. サンプリングチェック — ランダム n 行を抽出して詳細比較
  4. アプリ E2E テスト — 主要業務フローを実行(最終確認)

📋 7. 異種DB 移行で覚えるべき変換

Oracle → PostgreSQL/AlloyDB

  • NUMBER → NUMERIC
  • DATE → TIMESTAMP
  • CLOB → TEXT
  • PL/SQL → PL/pgSQL(要書き換え)
  • SEQUENCE → SEQUENCE(互換高)
  • ROWID → 別主キーで代替

SQL Server → PostgreSQL

  • T-SQL → PL/pgSQL
  • IDENTITY → SERIAL / GENERATED
  • NVARCHAR → TEXT / VARCHAR
  • Linked Server → FDW

📊 8. 主要ツール比較

ツール用途提供
DMS Migration Assistantスキーマ変換・データ移行Google 公式
Database Migration Assessment (DMA)移行前評価、難易度判定Google 公式
Ora2PgOracle → PostgreSQL 変換OSS
Striim商用 CDC、複雑な異種移行パートナー
このセクションの要点
  • DMS = DB 移行、Datastream = CDC 連携 を即答できる
  • ゼロダウンタイム = DMS Continuous + リバースレプリ
  • 異種 DB は DMA → DMS Migration Assistant or Ora2Pg
  • 整合性は4階層で検証
  • 失敗要因は「テスト不足 + ロールバック計画不在」