Amazon Web Services ブログ

Database Migration Playbook が公開されました!

Amazon Database Migration Playbooks シリーズの初版がリリースされたことを発表します。異種間データベース移行をより速く、より簡単に実現し、「Database Freedom」を実現するために有用なステップバイステップガイドとなるプレイブックです。

Database Migration Playbooks とは

Database Migration Playbooks(Amazon Web Services と NAYA Tech の共同プロジェクト)とは、異種間データベース移行計画を成功させるためのベストプラクティスに焦点を当てた一連のガイドです。このプレイブックは、AWS Schema Conversion Tool (AWS SCT)AWS Database Migration Servies (AWS DMS) を含む、既存の自動化および半自動化されたAmazonデータベース移行ソリューションおよびツールを補完するものです。

すべてではないにせよ、ほとんどの異種間データベース移行では、自動化されたツールとDBAのノウハウが混在しています。Database Migration Playbooks の目的は、データベース移行の方程式の一部であるDBAのノウハウを、読みやすく参照可能なリファレンスとしてキャプチャすることです。

プレイブックの構成を可能な限り実用的にするため、ソースデータベースエンジンに存在する機能と、選択したターゲットデータベースプラットフォームで使用可能な最も優れた同等のソリューションと考えられるものを列挙しています。

「Oracle to Amazon Aurora Migration」プレイブックの初版では、Oracle 11g と12cのデータベース機能とスキーマオブジェクトを Amazon Aurora with PostgreSQL compatibility に移行するためのベストプラクティスに重点を置いています。移行するためには、PostgreSQLデータベースエンジン自体に組み込まれている機能と、様々なAWSサービスやソリューションの両方を使用しています。

Oracleの機能を移行するための詳細な例やチュートリアルなどを含む、数多くの技術的な内容をこのプレイブックでカバーしています。たとえば、表パーティション、マテリアライズドビュー、トリガー、ストアドプロシージャとファンクション、データベースリンク、データ型、セッションやインスタンスの構成パラメータ、DBMS_パッケージやv$ビューの使用方法、索引、SQL言語の文法の違い、シーケンス、RMAN、Oracle Flashback Database、JSONストレージ、Oracle 12c PDB などなどたくさんです。

現在、ほかのソースおよびターゲットデータベースプラットフォームをカバーする追加のプレイブックを作成しています。2018年中にこれらを利用できるようにしたいと考えています。

Database Migration Playbook の構成

カバーする Oracle Database の機能ごとに、ソースからターゲットへ移行の青写真を提供します。この青写真には、ソースのOracleの機能がどのように機能するかと、Amazon Aurora with PostgreSQL compatibility で利用可能な最良の同等機能の概要があります。Oracleの機能と1対1で同等の機能が Aurora PostgreSQL にない場合は、存在する最善のワークアラウンドを提示します。

たとえば、表などのリモートデータベースオブジェクトを使用するために使われるスキーマオブジェクトであるOracleデータベースリンクのトピックを取り上げます。ここでは、Oracle Database でデータベースリンクを作成および使用する方法の例が載っています。

SQL
CREATE DATABASE LINK remote_db
   CONNECT TO username IDENTIFIED BY password
   USING 'remote';

そして、dblinkまたはpostgresql_fdw (Foreign Data Wrapper – FDW) 拡張機能を使った同様の機能を実現する方法がこちらです:

 

SQL
CREATE EXTENSION dblink;

SELECT dblink_connect('remote_db', 'dbname=postgres port=5432    
                      host=hostname user=username password=password');

SELECT *
FROM dblink('remote_db', 'SELECT id, name FROM EMPLOYEES')
AS p(id int,fullname text);

dblinkと PostgreSQL FDW の両方の詳細な例がプレイブックに用意されていますが、FDWの仕様には追加の手順が必要なため、この投稿からは省きます。

もう一つの例は Oracle Flashback Database です。これはデータベース全体を以前の時点に戻す機能を提供することで、人的ミスを防ぐためのバックアップメカニズムです。プレイブックでは、フラッシュバックデータベースの復元ポイントの作成方法に関する例を提供します。また、SQLコマンドを使用してOracleデータベース全体をその復元ポイントにリストアする方法について説明します。

SQL
create restore point before_update guarantee flashback database;

shutdown immediate;

startup mount;

flashback database to restore point before_update;

Aurora PostgreSQL では、データベーススナップショットを使用して同等の機能を実現できます。

Bash
aws rds create-db-cluster-snapshot --db-cluster-snapshot-identifier before_update --db-cluster-identifier aurora01

aws rds restore-db-cluster-from-snapshot --db-cluster-identifier NewCluster --snapshot-identifier before_update --engine aurora-postgresql

aws rds create-db-instance --region us-east-1 --db-subnet-group default --engine aurora-postgresql --db-cluster-identifier NewCluster --db-instance-identifier newinstance-nodeA --db-instance-class db.r4.large

先ほどのデータベースリンクの例と同様に、プレイブックにはスナップショットの作成方法の詳細なステップバイステップのガイドが含まれます。また、AWS管理コンソールと AWS CLI の両方を使用して Amazon Aurora クラスターをスナップショットから復元する方法が記載されています。

プレイブックの対象読者

Database Migration Playbooks は AWS SCT と AWS DMS と組み合わせてデータベース移行を実施するのに役立つだけでなく、Oracle Database 管理者のクリックリファレンスガイドとしても使用できます。Aurora PostgreSQL について学ぶことに関心のある Oracle DBA が、このプレイブックを利用して特定のOracle機能と Aurora PostgreSQL の最良の同等機能や代替機能をすばやく見つけられることを期待しています。オンラインで入手できる膨大な情報から必要なものを探す手間をDBAが省けることを願っています。

それぞれの Database Migration Playbook は、Amazon Aurora やPostgreSQLデータベース自身で新機能が利用できるたびに改訂、拡大、強化を続けていく生きた文書を目標としています。したがって、このブログに戻って、一般的なデータベース移行に関する最新ニュースやプレイブックの更新について確認することは価値があるはずです。

Oracle to PostgreSQL Aurora Database Migration Playbook はDMS製品ページの「開始方法」セクションにあります。


著者について

David Yahalom は NAYA Tech 社のCTOです。彼はOracle、Apache Hadoop、NoSQLデータベースの専門家であり、クラウドのソリューションアーキテクトです。

Doug Flora は Amazon Web Services の Amazon Relation Database Service (RDS) のためのシニアプロダクトマーケティングマネジャーです。

翻訳はソリューションアーキテクトの柴田(シバタツ)が行いました。原文は The Database Migration Playbook has landed! です。