RDSで可用性を高める方法を紹介した。今回は、それぞれの環境におけるデータの移行方法を説明する。Databaseからデータをどのように移行するのか、どのような移行が可能かは、データベース管理者にとって非常に気になるポイントだろう。ここを紹介していこう。Databaseの移行方法でよく利用する方法は以下の3つである。Oracle」へ移行する方法を説明したいと思う。Databaseにはデータベースに接続し、データ、テーブル、プロシージャなどの定義情報を抽出、ダンプファイルと呼ばれるファイルとしてデータベース外に出力できる「Datapumpユーティリティ」という便利なツールが存在する。Datapumpユーティリティでは、データベース全体の抽出、スキーマ単位での抽出、テーブル単位での抽出など、さまざまな抽出方法を設定でき、操作も比較的簡単である。当社でもデータベースの移行時に、ある程度停止時間が許容されるような場合、このDatapumpユーティリティを利用して移行元のデータベースから必要なデータ、定義情報を抽出し、移行先である新しいデータベースへ格納する方式を取る。Oracle」のいずれにおいても基本的には利用できる。Oracleの場合には少し注意が必要であるので詳しく解説したい。EC2」の場合、移行元のデータベースから抽出したダンプファイル(データや定義情報をデータベース外に出力したファイル)をSCPやFTPなどを利用して新しいマシンや仮想サーバであるEC2へ転送する。ファイル転送が完了すると、そのダンプファイルを新しいデータベースへIMPDPコマンドにより格納する。Oracleの場合、そもそもOSなどを利用者が意識できない。Database内部のプロシージャを利用することになる。linkを作成しておかなければならないことにも注意が必要だ。具体的な方法は以下の通りとなる。移行元のデータベースでDatapumpユーティリティのEXPDPを利用して、ダンプファイルを作成する。Oracle」へダンプファイルを転送する。Oracle」へデータを格納する。Oracle」では自動で削除されない点がある。このため、データの格納が完了した後は、UTL_FILE.FREMOVEを利用してファイルを削除しておかないと領域の無駄使いとなってしまうので、データ格納完了後はファイルのクリーンアップを推奨する。比較的大規模なデータベースを移行する場合、当社ではこの方法で行うことが多い。Manager(RMAN)」を利用して、移行元のデータベースでオンライン・フルバックアップを取得し、移行先のデータベースにリストアを行う。フルバックアップのリストア後は、随時移行元のデータベースから出力されるアーカイブログ(データベースの更新ログ)を移行先のデータベースへ転送し適用することで、移行元の変更情報の取り込みを移行先のデータベースで行う。新しいデータベースへの切り替えのタイミングで、最後のアーカイブログを移行元のデータベースで出力、移行先のデータベースへ反映させ、データベースをオープンすることで移行完了となり、切り替え当日のデータベースの停止時間などを比較的短くすることが可能となる。Oracle」では利用できない。Oracle」では利用できないので、この方法は使えないのである。昨今、データベースの移行ツールは非常に多く存在する。Service(DMS)」である。これは、移行元のデータベース、移行先のデータベースのいずれか一方がAWS内にあれば利用可能なサービスで、ダウンタイムを抑えながら安全に移行できる非常に便利なツールとなる。changesというチェンジ・データ・キャプチャ機能(CDC)である。これは、DMSが移行元であるソースデータベースのトランザクションログから更新差分を抽出し、移行先のターゲットデータベースへ継続的に更新情報をアプライするという機能であり、ソースデータベースへの負荷も非常に少なく、継続的なデータの移行が可能となる。この機能を利用してデータベースの移行設計を行うことで、移行時のデータベースの停止などのダウンタイムをきわめて短くすることが可能となる。Databaseのマイグレーションサービスを積極的に提案したいと考えている。AWSへのデータベース移行における注目のサービスとなる。Databaseの移行方法のうち、当社が良く利用する3つを紹介した。データベースの移行はデータの容量、移行時に許容されるデータベースの停止時間(ダウンタイム)など、さまざまな要素を鑑みて方式を決定する必要があるので、せひ参考にしていただければと思う。正寛1984年大阪府生まれ。データベースエンジニア、コンサルタントなどの活動経験が豊富。シニアマネージャーとして、主にDatabase(特にOracle、Redshift)領域を担当。Amazonの提供するリレーショナルデータベースのAuroraにも詳しい。ブログでときどき関連情報を発信している。掲載時点の情報であり、最新のものとは異なる場合があります。Corporation。