クラウドへのデータ移行の課題は「長時間化」
上水口氏は2008年にアシストに入社し、一貫してデータベースに関わる技術領域に携わっている。Oracle Databaseのシングル導入から入り、Oracle Database Applianceを担当。2020年からはOracle Cloud Infrastructure(OCI)やアマゾン ウェブ サービス(AWS)などのクラウド環境、PostgreSQLやEDBも扱うという。このような経歴を持つ上水口氏が、最近関わることが多いのがクラウドへのデータ移行だ。その際に課題となるのが「移行作業の長時間化」、それにともなう「システムの停止の長時間化」だという。
データ移行を容易にするツールは、オラクルから各種提供されている。とはいえ「OCIで用意されている新しいツールの利用はまだそれほど多くありません」と上水口氏。そのため、事例や実績の情報も少ないと話す。そこでアシストでは、様々なOCIのデータ移行ツールを検証し、ユーザーが目的に適したツールを選択する判断材料を提示しようと考えた。
システム停止時間を短縮する新しい移行ツール
従来のデータ移行では「Data Pump」や「Recovery Manager(RMAN)」を使うのが一般的だ。これらを使う方法は、OCIへの移行でももちろん有効である。しかし、今回取り上げる新しいOCI独自の移行ツールは、従来のものよりも簡単に移行が可能だと上水口氏は強調する。
定番とも言えるData Pumpを使う移行手順では、オンプレミスのデータベースでデータをエクスポートし、ダンプファイルを生成する。そこで得られたダンプファイルをOCIにアップロードし、OCI上でデータベースにインポートする。つまり、移行には3つのステップが必要だ。「このとき大規模なデータベースだと、データのエクスポートに時間がかかり、さらにダンプファイルも大きくなるのでOCIへの転送時間も長くなります。当然インポートにも時間がかかり、システム停止時間も長くなります」と上水口氏はいう。
一方、RMANの場合は、バックアップを事前に取得しそれを新環境でリストアする。システム停止は、その後の差分を適用する間だけだ。Data Pumpよりも停止時間は短くなるが、大規模なデータベースでは数時間の停止が必要となるケースもある。
これらに対し、OCIで提供する新しいツールでは作業のほとんどが事前に実行可能で「実際の切り替え時間、つまりシステム停止時間は極めて短くできます」と上水口氏は語る。OCI独自の移行ツールには、「OCI GoldenGate(OCI-GG)」「Zero Downtime Migration(ZDM)」「OCI Database Migration(DMS)」の3つがある。
3つのOCI独自移行ツールの違いとは
上水口氏はまず、ZDMを用いる場合について説明した。ZDMは、Data Pumpの機能を用いて移行元のソースデータベースのデータ全体を移行先のターゲットデータベースにインポートする。その後は、内部的にGoldenGateの機能を使って差分を適用する。この方法のポイントは、Data Pump部分や差分同期、そしてデータベースの切り替えの大半を自動実行できることだ。それにより、エンジニアの作業負荷はかなり軽減される。一方、デメリットとしては、移行時にZDMホストと呼ばれるコンピュートインスタンスが別途必要になることだ。また、ダンプファイルを出力するためのオブジェクトストレージも用意しなければならない。
DMSを用いた場合も、ZDMと同様の流れで移行できると上水口氏は説く。ZDMと異なるのは、DMSがコンソールでOCIの画面から操作でき、コマンドライン操作のZDMで必要だったコンピュートインスタンスは必要ないという点だ。
そして、OCIのフルマネージド型のデータレプリケーションサービスであるOCI-GGは、ソースデータベースとターゲットデータベースをGoldenGateでつなぎ、データの同期を図るものとなる。
ZDMとDMSは無償のツールで、コンピュートインスタンスやオブジェクトストレージは必要だが、ツール自体の利用にコストはかからない。また、ZDMは論理と物理の両方の移行方式が選択可能で、オフライン・オンラインでの移行もできる。DMSとOCI-GGは、オンラインの論理移行だけだ。操作方法は、ZDMがコマンドライン、DMSとOCI-GGはコマンドからもGUIからも操作が可能で難易度は低い。
よく似たZDMとDMSを実際に検証
ZDMとDMSは、よく似た移行方法だ。今回アシストでは、この2つについて比較検証を行った。時間の都合もあり、OCI-GGは簡易検証に留めている。検証対象とした方式は、今後利用が増えると予想され、ZDMとDMSの双方で共通に利用できる「オンライン論理移行」だ。検証環境はソースもターゲットのデータベースもすべてOCI上に用意した。
データ移行完了までの作業は、大きく「事前準備」「事前設定」「データ移行」の3段階に分けられる。ZDM/DMS/OCI-GGのいずれも大きな流れは同じだが、細かい部分で異なる点は以下の図に赤字で示したものとなる。
検証内容の概要を図式化すると以下のように示される。OCI環境上に「オンプレミス環境の移行元データベース」と「クラウド環境の移行先データベース」を用意し、移行先へDMSを用いて移行していく流れだ。ZDMに関しては、専用のComputeインスタンスというものが必要となるため、用意したうえで検証を行っている。
「事前準備」段階で考慮すべき2つのポイント
事前準備フェーズの検証結果として、「ZDMとDMSに大きな違いはなかった」と上水口氏は説明したものの、担当者が考慮すべきポイントを指摘した。
担当者がデータの移行時に懸念するのが、本番稼働中の環境への影響度である。OCI移行ツールを利用するには、事前準備の段階で本番稼働中の既存環境に対して大きく2つの設定が必要であり、ここが大きなポイントとなると上水口氏はいう。
1つ目が個別パッチの適用だ。ツールの中で内部的にGoldenGateの機能を利用するが、その要件として、移行元となるデータベースに個別パッチの適用が必要となる。パッチ適用にはシステムを停止するフェーズが発生するため、これができない場合はOCI移行ツールが利用できない。この可否はOCI移行ツールを検討するうえで非常に重要なポイントだと指摘する。
2つ目がフォース(強制)・ロギング、サプリメンタル・ロギングの有効化だ。これらがデータ同期を正確に行うために必須となる。しかし有効にすると、REDO(更新履歴)の生成量が増えるので、事前にアーカイブ出力先の空き容量を十分に確保しておかなければならない。
その他にも考慮すべき細かい設定はあるが、システム停止をともなうような既存環境への影響が大きいものに関して、この2つ以外は特にないという。
OCI-GGインスタンス作成は6ヵ月以内で計画を
続いて上水口氏は、事前設定フェーズの検証内容について触れた。ZDMではこの段階において、ZDMホストのための専用インスタンスを作成し、そこにZDMのツールをインストールして設定を行う。また、ツール内部で専用のGoldenGateインスタンスの作成も必要となる。一方で、DMSはOCIのコンソールから利用することができ、特別なツールなどのインストールは不要。コンソール画面で各種設定を行うことで利用可能となっており、シンプルでわかりやすいと上水口氏は話す。
また、初期移行時にはダンプファイルの出力先設定も必要となる。選択肢としては「Object Storage」を利用するか、「DATABASE LINK」経由でエクスポート・インポートを行うかの2択となるが、アシストではオブジェクトストレージを使う方法を推奨している。上水口氏は理由として、DATABASE LINKはすべての作業を一貫して実行する必要があるからだと説明。エクスポートしたら一旦作業を止める、などというようにステップを踏んで実行することができず、リスクをともなうと指摘した。
また、差分移行に利用されるOCI-GGインスタンスの作成について、上水口氏は「難しいイメージを抱く人も多いが、DMS/ZDMのいずれにおいても非常にシンプルで簡単に作成できる」とした。ツール専用のカスタムイメージがOCIであらかじめ用意されており、それを読み込むだけで完了する。注意点としては、無償で利用できる期間が183日間であることだ。そのため「移行スケジュール内に、きちんと作業が収まるように計画する必要があります」と上水口氏はいう。つまり、無償利用の範囲で移行を完了させるのであれば、6ヵ月間以内で計画することがポイントとなる。
DMSとZDMではエラーの確認方法に差異あり
最後のフェーズ「データ移行」では、DMS/ZDMともに初期移行時の設定が完了すれば、後続のタスクは自動で実行が可能。自動化されるタスクは、Data Pumpによるエクスポート・インポートを行う「初期移行」、レプリケーションが動作する「差分同期」、「データベース切替」の順で行われる。
最初に行われる移行用の設定時には、移行タスクの作成が必要となる。DMSはOCIコンソール上で操作が可能であり、移行タスクを作成・実行する流れだ。一方、ZDMはレスポンスファイルに各種移行情報を記載し、それを実行する。DMSはコンソール画面に必要な設定が網羅されているが、ZDMはレスポンスファイルに細かいパラメータまで記述するのは多少ハードルが高いかもしれないと上水口氏は指摘する。
設定後の初期移行と差分同期のフェーズは、双方のツールで大きな違いはない。とはいえエラー発生時の確認方法は異なり、DMSは成功、失敗、保留などがステップごとにコンソールですべて確認できる。通知サービスと連携しユーザーへ通知することも可能だ。エラーがあれば、画面上でどのようなメッセージが出ているか確認でき、対応するログのダウンロードなどもできる。一方、ZDMはタスク監視となり、特定のログを監視するべくコマンドライン操作を駆使して見ていかなくてはいけない。また、どのフェーズでエラーが発生しているかによってログの出力先が異なるため、調査の難易度は多少高くなるという。
本番への切り替えは、データ同期を行い、スイッチオーバーという切り替え作業で完結する。これらもツール側で制御でき、特に難しいものはないと上水口氏。GoldenGateはデータ同期が終わればそれで完了となるので、別途データの整合性のチェックは実施したほうが良いと指摘した。
GUI操作で完結する「DMS」がおすすめ
まとめると、ZDMもDMSも既存環境への影響は変わらない。操作難易度に関しては、ZDMがコマンドライン操作で難しい印象があり慣れも必要だ。一方、DMSはすべてGUIで操作でき、簡単で一般的な移行はこれだけで十分に対応できる。「おすすめはDMS」だと上水口氏はいう。ZDMを採用するのは物理移行をする場合だろう。
OCI-GGは、移行ツールというよりレプリケーションのサービスだ。Oracle以外のデータベースでも利用でき、幅広い用途がある。OCI-GGもDMSと同様、特別なインストールは必要なくOCIのコンソールから利用できる。さらに、双方向のレプリケーションができるのもOCI-GGの特長だ。そのため、本番切り替え後の切り戻しができるのも大きなポイントとなる。
「ZDMとDMSは移行元から移行先への移行が対象範囲ですが、OCI-GGは逆向きにレプリケーションも可能です。移行に問題があれば、元に戻せるのです」と上水口氏は説明。そのため切り戻しの部分も含めた計画が立てやすい。OCI-GGには他にも便利な機能が数多くあり、今後はそれらの機能も検証し報告したいという。
上水口氏は今回の検証結果をもって、シンプルに使えるDMSを積極的に提案していきたいと語る。移行の際に最も大事なのは、既存環境への影響だ。個別パッチの適用やロギングの設定などで影響は出るので、その点はしっかりユーザーに伝える。また、今回は論理移行に絞ったが、物理移行やGoldenGateの便利な機能なども検証し、さらなる提案の選択肢を拡げる予定だ。
上水口氏は最後に「今後も最適な移行パターンを提示できるよう、より深く、広く検証していきます」と締めくくった。
Oracle Databaseのクラウド移行やクラウドでの運用で、アシストがお手伝いできること
アシストでは、環境構築や運用フェーズでのサポートなど様々な支援サービスを取り揃えています。また、35年以上にわたるOracle Databaseの支援やサポートで得た技術ノウハウを基にデータベースの移行やバックアップなどの支援も用意しています。
アシストの技術支援/サポートサービスの資料はこちらで無料進呈しています。