Pick Upテクノロジー
検証! データベース移行時のシステム停止時間はどれだけ短くできるのか?
旧バージョンのOracle Databaseから最新のOracle Database 11gに移行するなど、データベースのアップグレードを検討している企業は多いだろう。そのアップグレードを実施する際に課題となることの1つが「システ ム停止時間」だ。アップグレード作業を行っている間は業務が停止することになり、さらにそこでトラブルが発生すれば大きな問題に発展しかねない。こうした 課題を解決するために、ぜひ活用したいのがデータ連携/統合プラットフォーム「Oracle GoldenGate」である。ここでは、富士通と日本オラクルが共同で検証した結果を基に、データベース移行時のシステム停止時間をOracle GoldenGateによってどこまで最短化できるのかを説明する。また、移行用途以外のリアルタイム・データ連携基盤としてのOracle GoldenGateの可能性を追求した性能検証についても併せて紹介する(編集部)。
Oracle GoldenGateが威力を発揮するケースの1つがデータベースの移行/アップグレード
データベースの 移行において、Oracle GoldenGateは極めて有効である。例えば、従来から使い続けているOracle Databaseをアップグレードするような場合、オラクルが提供する「Database Upgrade Assistant」を利用する方法やExport/Importユーティリティ(Oracle Database 10g以降であればData Pump Export/Importユーティリティ)によって新バージョンのOracle Databaseにデータを移行する方法などが考えられる。
アップグレードの際には、これらの方法のメリットとデメリットを見極め、要件に合わせて最適な方法を選択することになるが、いずれの方法においても大きな 問題となるのが、アップグレード作業に伴うシステムの停止時間(ダウンタイム)である。作業中は当然、システムを停止させることになるため、その間は業務 を止めざるをえない。これをいかにして最短にとどめるかが、データベース移行時の重要課題となる。
この課題の解決に威力を発揮するのが Oracle GoldenGateだ。Oracle GoldenGateを利用すれば、旧環境から新環境へのデータ移行を極めてスムーズに実施できる。実際にOracle GoldenGateを利用して移行した場合、どの程度ダウンタイムを減らせるのかについて、富士通と日本オラクルがOracle GRID Centerにおいて共同で検証作業を行った。その背景と検証の趣旨について、富士通 計画本部 ビジネス企画部 オラクルミドルウェア技術部の安藤潤一氏は次のように説明する。

富士通 計画本部 ビジネス企画部 オラクルミドルウェア技術部の安藤潤一氏
「データベースの移行では現在、比較的、手軽にできること、そして多くの技術者が操作に慣れていることから、Export/Import ユーティリティを使った方法が広く使われている。ただし、Export/Importユーティリティを使った方法では、移行するデータ量に比例してシステ ムの停止時間が長くなるというデメリットがある。最近ではテラ・バイト級のデータを格納したデータベースも珍しくなく、Export/Importユー ティリティでは処理時間が長くなるため、常に有効な選択肢とは言えなくなってきている。そこで目を付けたのがOracle GoldenGateだ。このOracle GoldenGateを使うことで、システムの停止時間をどこまでゼロに近づけられるか(ゼロダウンタイム)というのが、今回の検証の趣旨となる」
アップグレード時の課題はシステム停止時間の長さ
この検証では、旧環境として富士通のサーバ「PRIMERGY BX620 S5」上で動作するOracle Database 9i R2を用意。それを2台の「PRIMERGY BX920 S1」を使ってOracle Real Application Clusters(RAC)でクラスタ構成にしたOracle Database 11gに移行するというシナリオでテストを実施した。この環境において、Export/Importユーティリティを用いた方法と、それらにOracle GoldenGateを組み合わせた方法のシステム停止時間を比較した。
実際にそれぞれの方法を比べてみると、システム停止時間には 大きな違いが出た。Export/Importユーティリティだけを使った方法では、システムを停止したうえでExportを行う必要があり、新環境への Importが完了するまでシステムを再開することはできない。
「システムを停止せずにExportしてしまうと、当然ながらその後に 更新されたデータはExportファイルに含まれない。そのため、そのダンプ・ファイルをImportしても、旧環境のデータをすべて新環境に移行できな いということになってしまう。したがって、データの一貫性を維持するためExport/Importの際にシステムを停止させる必要が出てくる。これが Export/Importユーティリティによるデータ移行の問題点だ」(安藤氏)
一方、Oracle GoldenGateを使った場合、システムを稼働させた状態のままで旧環境のデータを新環境に移行することができる。具体的には、次のような流れになる。
(1)業務アプリケーションを実行したまま、ダンプ・ファイルを取得する(Export)
(2)取得したダンプ・ファイルを新システムにロードする(Import)
(3)Oracle GoldenGateを使ってExport開始後の変更情報を取得し、自動的に新システムに適用する
初めにExport/Importユーティリティを利用するが、その後はOracle GoldenGateを使ってレプリケーションを行うことにより、データの一貫性を維持するわけだ。
システム停止時間の短縮に加えて移行リスクも軽減
Export/Importユーティリティのみによる方法と、それにOracle GoldenGateを組み合わせた方法における移行作業の流れは、下図のようになる(図中の左側が前者、右側が後者)。
![]()
ここで注目してほしいのは、移行当日に行う作業の違いだ。図中の青色の部分に注目してほしい。Export/Importユーティリティのみの方法では、 移行当日にデータ移行を行うことになる。前述したとおり、データ移行時にはシステムを止める必要があり、これがシステム停止時間の長さに直結してしまう。
一方、Oracle GoldenGateを利用すれば、システムを稼働させたまま旧環境から新環境へとデータをレプリケーションできるため、事前作業の中でデータ移行を済ま せられる。このため、移行当日に行う作業は切り換え作業(データ検証、バックアップ)のみということになる。
実際に移行当日にかかる時間を計測したところ、Export/Importユーティリティのみの場合は12時間以上を要した。下のグラフからその内訳がわかるように、ExportとImportに多くの時間がかかっている。
一方、Oracle GoldenGateを用いた方法では、わずか数分間で作業が完了している。実に80分の1程度の時間で移行が完了してしまったわけだ。この差は極めて大きいと言えるだろう。
また、このシステム停止時間の短縮のほかに、移行リスクを低減できるメリットも大きいと安藤氏は指摘する。
「データベース移行では、新システム側で何らかのトラブルが発生した場合には、旧システムに切り戻すケースが少なくない。ただし、そのためには新システム でどのデータが変更されたのかを何らかの方法で調査しなければならない。それには、ログを逐一確認したり、アプリケーション側のログのタイムスタンプを見 て判断したりといった方法が考えられるが、いずれにしても大変な作業になる。しかし、Oracle GoldenGateを利用すれば、更新されたデータの差分をOracle GoldenGateで取得し、それを旧システムに適用するといったことが可能になる。こうした切り戻しが速やかに行える点も、Oracle GoldenGateを使う大きなメリットだ」
さらに、「当日のリスクが減ることによるメリットの大きさを重視する企業は多い」と語るのは、日本オラクル 製品戦略統括本部 戦略製品ソリューション本部 データ統合ソリューショングループ プリンシパルセールスコンサルタントの後藤陽介氏だ。
「移行時間を短縮できることも大きなメリットだが、移行作業を前倒しして、当日の作業を減らせれば、その分だけリスクを軽減することにつながる。その点にメリットを感じてOracle GoldenGateを採用する企業も少なくない」(後藤氏)
リアルタイム・レプリケーションで柔軟なシステム間連携が可能に
Oracle GoldenGateは、複数のデータ・ソース間でレプリケーションを行うためのプラットフォームであり、その特徴は高速性と柔軟性、そして高い信頼性を 持ち合わせている点にある。この特徴を生かせば、データ移行に限らず、さまざまな用途で活用することができる。
例えば、基幹系システム と情報系システムの間でリアルタイムにデータを連携させるケースが考えられる。このようなケースでは週次、あるいは日次でのバッチ処理でデータを同期させ るのが従来からのやり方だが、これでは直近のデータを参照することができない。しかし、Oracle GoldenGateを使えば、基幹系システムのデータベースには大きな負荷をかけることなく、最新のデータを情報系システムに高速に反映できる。これに より、ユーザーは必要な情報を即座に参照できるようになり、より精度の高い分析が可能になるのだ。
実は今回の検証では、データベースに負荷(トランザクション)をかけた状態でOracle GoldenGateを用いたレプリケーションで生じるタイムラグも計測した。その結果は、平均でわずか1.8秒であった。こうしてリアルタイムに近いか たちでのデータ同期を低負荷で実行できるのは、Oracle GoldenGateならではの大きな利点だと後藤氏は語る。

製品戦略統括本部 戦略製品ソリューション本部 データ統合ソリューショングループ プリンシパルセールスコンサルタントの後藤陽介氏
「実際に数分単位、場合によっては1分未満でデータを同期したいなど、ほぼリアルタイムでの同期が要件として挙がることが増えている。例 えば、サービスの拡張によってデータベース内のデータ量が膨大となったため、いくつかのデータベースに分けて処理を分散したいといったケースだ。これを Oracle GoldenGateを使わずに実現しようとした場合、テキスト・データのエクスポートなどのバッチ処理ベースの連携をどれだけ短い間隔で行うかといった ことを突き詰めていくしかないが、データベースにかかる負荷の問題もあり、実現するのはかなり難しい。しかし、Oracle GoldenGateであれば、システムへの負荷を抑えてリアルタイムに近いかたちで同期できる」(後藤氏)
本記事で紹介した検証結果 は全体の一部にすぎない。今回の移行検証、性能検証の詳細はホワイトペーパーやオンデマンドコンテンツとして公開されている。データベース移行、リアルタ イム・データ連携、レプリケーションといったテーマに関心のあるエンジニアはぜひ参照されたい。
●ホワイトペーパー「 Oracle GoldenGate 11g によるOracle Databaseの移行/アップグレード ベストプラクティス 」
●オラクルエンジニア通信「【セミナー動画/資料】ゼロダウンタイムに挑戦!GoldenGate活用によるDBアップグレード」 ・・・富士通 安藤氏、日本オラクル 後藤氏によるセミナー動画
なお現在、富士通ではOracle GoldenGateを利用したデータベースの移行/アップグレードを支援するサービス「DBマイグレーション for Oracle ~Powered by Oracle GoldenGate~」 を提供している。これは、Oracle GoldenGateを活用し、業務停止時間を最短に抑えながら最新のOracle Database 11g Release 2に移行するのを支援するというものだ。Oracle Databaseをアップグレードしたいが、業務への影響を考えて躊躇しているような企業は、このサービスの活用を検討してみるとよいだろう。