ここからは、アップグレード作業に伴うデータベース移行、データ移行の方法を見ていこう。
アップグレードでは、既存のデータベースを別の環境に移す作業がしばしば発生する。最も多いケースは、現行サーバーの保守切れに伴う新規サーバーへの移行だ。この作業では、主に次のような手段を使うことができる。
export/importは、Oracle Databaseで古くから提供されている手法であり、移行元のデータベースをダンプファイルとして出力し、それを移行先のデータベースに取り込むというものだ。ただし、Oracle Database 11g以降ではexportコマンドをサポートしていない(ユーティリティとしてインストールはされる)。また、パフォーマンスも後述のData Pumpに比べて大きく劣る。古いバージョンのOracle Databaseを最新バージョンに移行するといった場合以外では、export/importを使うケースはないだろう。
Oracle Database 10g以降では、export/importに代わるツールとしてData Pumpが提供されている。これはexport/importと似たツールだが、パラレル処理をサポートするなど高速化されているほか、APIによる呼び出し、ジョブ管理/状況監視、停止/再開といった操作が可能となっている。なお、export/importとの間に互換性はなく、exportで出力した旧バージョンのメタデータをData Pumpで読み込むといったことはできないので注意されたい。
Data Pumpの便利な機能に、移行元のデータベースを直接読み込める「Network Link」がある。同機能を使えばエクスポート処理が不要となるため、作業時間を短縮できる。特に大きなデータベースで有効な機能であり、ネットワークの帯域幅を十分に確保でき、移行先ハードウエアのCPUが高速な場合には検討する価値があるだろう。
Oracle Database間で表領域を移動させる「トランスポータブル表領域」を使う方法もある。具体的な手順としては、まず表領域のメタデータを出力し、それとデータファイルを移行先データベースに転送する。次にメタデータをインポートしてデータファイルを読み込み、さらに追加オブジェクトを作成するといった具合になる。
Data Pumpの場合、ダンプファイルのサイズはデータ量に依存するが、トランスポータブル表領域ではファイルサイズはデータベースのデータファイルそのものであり、データの転送時間を高い精度で予測できる。このことは、停止計画を立案する際に非常に有用である。
トランスポータブル表領域を使う場合に肝となるのは、追加オブジェクトの作成だ。シノニムやシーケンス、PL/SQLのパッケージなどのオブジェクトはトランスポータブル表領域では移行できないため、追加オブジェクトとして作らなければならない。したがって、これらのオブジェクトが大量にあるデータベースでは、作業量が増える上に抜けや漏れのリスクが大きくなる。
なお、エンディアンが異なる環境にトランスポータブル表領域でデータベースを移行する場合は、当然ながらエンディアンの変換が必要となる。その際に有効なのが、Oracle Databaseの標準バックアップツール「RMAN」だ。同ツールで移行するデータファイルの変換処理を行った後、メタデータをインポートし、エンディアンを変換したデータファイルを読み込むという流れになる。エンディアンの変換処理には長時間(条件次第だが、おおよそバックアップと同程度の時間)を要するので留意されたい。
増分バックアップを使い、データファイルの転送とエンディアンの変換にかかる時間を短縮するというテクニックもある。この場合は、まずフルバックアップを転送/変換する。その後は日々のバックアップで取得した増分バックアップを転送し、移行先の環境でエンディアンを変換して適用するという作業を数日間、繰り返す。そして、移行のタイミングでメタデータと最後の増分バックアップを転送し、メタデータのインポートと追加オブジェクトの作成を行った上でデータベースを切り替える。
このようにして、データファイルの転送とエンディアン変換処理を事前に行っておくことで、移行にかかる時間を短縮するわけである。まだ実績の少ない方法だが、トランスポータブル表領域を使って短時間で移行したいという場合には検討する価値があるだろう。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:日本オラクル株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2015年12月29日
驚異的なパフォーマンス、優れた運用効率、最高の可用性とセキュリティ、クラウド対応を実現するOracle Exadataとの統合、クラウド、可用性や運用管理など、次世代データベース基盤構築のために参考になる必見資料をまとめてご紹介いたします。