[レポート]GPSTEC313:OracleからAurora PostgreSQLへの移行を加速する #reinvent
こんにちは。コンサルティング部の崔です。
GPSTEC313:Accelerate Oracle to Aurora PostgreSQL Migration に参加しましたのでレポートをお届けします。
OracleからAurora PostgreSQLへの移行のヒントになれば幸いです。
セッション概要
There is a lot of interest these days in migrating data from commercial relational databases to open-source relational databases. PostgreSQL is a great choice for migration, offering advanced features, high performance, rock-solid data integrity, and a flexible open-source license. PostgreSQL is compliant with ANSI SQL. It supports drivers for nearly all development languages, and it has a strong community of active committers and companies to provide support. In this talk, we demonstrate an overall approach for migrating an application from your current Oracle database to an Amazon Aurora PostgreSQL database.
最近では、商用リレーショナルデータベースからオープンソースリレーショナルデータベースにデータを移行することに多くの関心が寄せられています。PostgreSQLは、高度な機能、高性能、強固なデータの完全性、柔軟なオープンソースライセンスを提供する、移行に最適な選択肢です。PostgreSQLはANSI SQLに準拠しています。ほぼすべての開発言語のドライバーをサポートしており、活発なコミッターと企業が強力なサポートを提供するコミュニティを持っています。この講演では、アプリケーションを現在のOracleデータベースからAmazon Aurora PostgreSQLデータベースに移行するための全体的なアプローチを示します。
スピーカー
セッションメモ
概要
- 異種DB間の移行を計画する
- OracleからAurora PostgreSQLへの移行にDMSとSCTを利用する
- 本番環境へ移行するときのベストプラクティス
典型的なデータベースマイグレーションライフサイクルとは
- スキーマオブジェクト
- データ移行
- アプリケーションコード
- これらをテストしてカットオーバーする必要がある
マイグレーションアセスメント
- 現在利用している機能をアセスメントする必要がある
- Oracle Features
- Edition, partitioning, Advanced Securitry, Advanced Compression
- Real Application Cluster, Real App Testing
- Active Data Guard, Goldengate, RAC Nodes
- Application Usage
- Sequences, Util packeges mail,smtp, Context, DBLinks
- Stored Procedures, Triggers
- Misc Features
- Real Application Testing, Data Guard, Automatic Storage Mgmt
- Locator, Database Vault, Java Support
- などなど
- Oracle Features
Workload qualification framework
- ソースDBのアセスメント
- OLTPかDWHか
- PL/SQLをどの程度利用しているか
- スキーマ内で利用しているオブジェクト毎に重み付けを行う
DBマイグレーションの労力の測定
- マトリクス
- オブジェクトの重み付け
- 1時間あたりの更新量 Redoログのサイズ
- これらからSimple/Middle/Difficult/Complexと判断する
スキーマ変換とデータ移行
- スキーマオブジェクトはSCTでコピー&変換
- データはDMSで移行
AWS Schema Conversion Tool
- Tools
- アセスメントレポートを出力可能
- 各種コードオブジェクトのソースを確認可能
- 多くの変換タスクを自動実行
- Tips
- ターゲットDBにテーブルDDLやPrimaryKeyを設定可能
- アセスメントレポートにはエグゼクティブサマリーと詳細が出力される
- SCTはスキーマオブジェクトやコードオブジェクトのSQLを変換してくれる
- Tables, Indexes, Sequences, Synonynms,
- Functions, Packages, Views, Stored Procedures ....
Oracle to Amazon Aurora PostgreSQL Migration Playbook
- Oracle から Amazon Aurora PostgreSQLへのMigration Playbookが公開されている
- migration playbook
AWS Database Migration Service
- AWS Database Migration Serviceとは
- レプリケーションインスタンス
- エンドポイント
- ソースDB、ターゲットDB
- タスク
- フルロード
- Change Data Capture(to replicate ongoing changes)
- の3つから構成される。
- レプリケーションインスタンスについて
- 移行に適したDMSレプリケーションインスタンスを選定
- レプリケーションインスタンスのEBSストレージについて知る
- CloudWatchメトリクスでレプリケーションインスタンスを監視する
- ソース&ターゲットエンドポイント側の設計
- Oracle(source)
- 'binary reader'もしくは'log miner'の使用
- NumberDataTypeScale:数値のスケールを指定
- standbyDelayTime:スタンバイ同期の遅延時間を分単位で指定
- PostgreSQL(target)
- maxFileSize:PostgreSQLへのデータ転送に指定されるCSVファイルの最大サイズを指定
- Oracle(source)
- DMSのタスクを構成する要素
- マイグレーションタイプの選定
- フルロード
- Change Data Capture(CDC)
- ターゲットテーブル作成モード
- DMSはテーブルを作成することができるが、SCTで事前に作成するほうがベター
- ときには、ターゲット上のテーブルを削除したり、Truncateすることも選択
- LOBサポートの設定
- テーブルマッピングを使用
- マイグレーションタイプの選定
Best practices for production rollout
- Key performance indicators for production
- KPIの設定が重要
- 例えば、KPIとして
- スケール、稼働時間、バックアップ/リストア、メンテナンス
- キャパシティ、リソース利用状況、パフォーマンス、スループット/TPS
- Example:スケールとパフォーマンス
- インフラ計画とパフォーマンスベンチマーク
- インフラ計画
- ストレージ、CPU、メモリ(例えば、AuroraはCPUをよく使用する)
- PostgreSQLの重要なパラメータ
- DB Cache Size
- Query Planning
- Example:メンテナンス
- autovacuumはoffにしない
- maintenance_work_mem:メンテナンスオペレーションに使用する最大メモリを設定
- EBSボリュームの使用量とパフォーマンスを監視
Understand basic database engine differences
-
- 基本的なデータベースエンジンの違いを理解する
Best practices on troubleshooting DMS tasks
-
- DMSタスクのトラブルシューティングのベストプラクティス
Summary
- 計画に最適なツールを使用
- SCTとDMSをを使って、スキーマ変換&データ移行を行う
- ソースDBとターゲットDBのDBエンジンの違いを理解すること
- KPI、ベンチマークを定義する
- 本番運用の計画を立てる
感想
OracleからAurora PostgreSQLへ移行するにあたり、どういった点に注意して計画するのか、SCTやDMSとを利用して、どのような流れで移行するのかが語られていました。
また、DMSについても、移行時の利用方法・ノウハウについて詳しく説明されていました。
本セッションで説明された内容はドキュメントで再確認しておくと理解が深まると思います。
以上です。