プラットフォームやバージョンの違いを吸収しスムースな移行を可能にする
Oracle GoldenGate
データベース移行支援サービスでは、移行相談、移行設計、構築支援、移行作業支援の4つのフェーズで作業を進める。事前準備から本番移行支援まで、すべてのフェーズを、NTTデータ標準のTERASOLUNAフレームワークをベースに網羅しているのがサービスの特長の1つだ。前述したようにプラットフォームが変更されたり、データベース上でたくさんのアプリケーションが稼働していたりするような場合には、移行方法を慎重に検討する必要がある。佐藤氏によると、ここ最近、複雑でシビアな要件がある移行では、移行相談のフェーズでGoldenGateを提案するという。
「GoldenGateを使うと、複雑な移行案件もスムースに行えます。GoldenGateは、OracleのREDOログを使ってデータベースのレプリケーションを実行します。そのため、レプリケーション元のデータベースの負荷がかなり小さくて済むのも評価できるポイントです」(佐藤氏)
GoldenGate は、OracleデータベースのREDOをそのまま新しいデータベースに適用するのではない。いったん、中間ファイルを作るので、その過程でバージョン間の違いなどを吸収することができる。そのおかげで、Oracle9iからOracle11gへとバージョンが1つ飛んでいるような移行でも、Oracle10gに更新してからOracle11gにするといった段階的なステップを踏む必要はない。プラットフォームの違いなどについてもGoldenGateが吸収するので、ほとんど手間なくデータベースを移行できるとのことだ。
GoldenGateを使って移行を行う際には、最初にある時点のすべてのデータをフルバックアップで取得し、それを新たなデータベースにコピーする。元のデータベースはその間も運用を続けるので、コピー作業が終了した時点では、処理にかかった時間だけ元のデータベースが更新され、移行先と差が生じる。この差については、GoldenGateで2つのデータベースを接続することで同期が取れる。
結果的に2つのデータベースは、数秒から数分程度の時間差で同期される。数分の差として見えるのは、元のデータベース上で数分程度かかる更新処理の場合には、それを新しいデータベースに反映させる際にも同等の処理時間がかかるためで、結果として同期に時間がかかっているように見えるためだ。
「あるデータベースについて、20日前に取得したフルバックアップを移行先のデータベースに適用し、そこからGoldenGateを使って差分を同期させた際には、5日間で同期が終了しました。この例では、同期処理は通常運用の4倍ほどのスピードで完了したことになります」と佐藤氏は説明する。一度同期が完了しさえすれば、あとは基本的に数秒程度の時間差で常に同期されることになる。
GoldenGateの活用で、ほぼリアルタイムに同期する2つのデータベースができあがるというわけだ。1つのデータベースで複数のアプリケーションが稼働している場合にも、アプリケーションの移行は作業が済んだものから順に新しいデータベースで稼働させればいい。これにより、アプリケーションの段階的な移行が可能となる。一気にすべてのアプリケーションを移行させる必要がないので、アプリケーションを計画的に止める時間も最小に抑えることが可能だ。また、移行先の新しい環境で不測の問題が発生した場合、古い環境への切り戻し処理も即座に行える。これは、新旧2つのデータベースで同期が取られているためだ。