データベースサーバリプレイスの考え方
データ移行手段の選択
新環境構築にめどがついたら、次に考えなければならないタスクが「データ移行作業」です。これは、現行環境のデータベースを新環境に移植するための作業です。当然のことながら、データベースとして整合性の取れた状態として移植する必要があります。
最初にデータベースのデータ規模とシステムの停止可能な時間について検討します。
データ移行作業では通常、製品純正機能のExportユーティリティ(以下、exp)/Importユーティリティ(以下、imp)が用いられます。この方法には、製品バージョン間の差異やOS種別の差異を吸収してくれることに加え、ディスク領域の断片化を解消するといった素晴らしい効果があります。その反面、実行時間がデータ量に比例して長くなるという問題もあります。
このため、移行方式の検討フェイズでexp/impコマンドを実行し、それぞれの実行時間がシステムの停止時間内に収まるかどうかの検証が必要です。
データ移行方式の検討フェイズでは、図4のようにデータ移行作業だけではなく、稼働しているシステムの停止などの事前準備、作業後のデータ整合性チェックやアプリケーションの動作確認なども含めて考えなければなりません。
●図4 データ移行によるシステム停止時間
exp/impコマンドでの移行方式を検討した結果、不運にもシステム停止時間をオーバーしてしまうケースがあります。その場合には、代替となるデータ移行手段を探すことになります。
例えば、データベースのバージョンやOS種別が現行環境と新環境でまったく同一の場合、データファイルなどのデータベースを構成する物理ファイルをそのままコピーしてしまう方法があります。この方法ではコールドバックアップとして取得したバックアップセット一式を別のサーバに移植するため、余分な処理を介さず作業時間を短縮することができます。また、製品純正機能ではトランスポータブル表領域という機能もあります。こちらも利用にあたってはいくつかの前提条件がありますが、それらをクリアしている場合には、exp/impを用いた場合よりも作業時間を短縮できる場合があります。
●図5 データの移行手段
●表1 データ移行手段の特徴
| データ移行手段 | 概要 | メリット | 考慮点 |
|---|---|---|---|
| Export/Import | exp/impユーティリティを用いた移行手段。データベース全体を対象とするモードの他に、スキーマやオブジェクト単位での実行も可能。 | OracleDatabaseのバージョン差異や、OS環境の差異などを吸収する他に、断片化解消も可能。 | 作業時間がデータ量に比例して長くなる。 |
| データベース構成ファイルのコールドコピー | 正常終了した状態で取得したデータベース構成ファイルを新環境にコピーし移植する手段。 | シンプルな作業手順で実施できる。新/旧環境での移行後の整合性チェックが最小限で済む。 | 新/旧の環境を完全に一致させるなど、採用できるケースは限られる。 |
| トランスポータブル表領域 | RMAN(Recovery Manager)を利用して取得した表領域のメタデータとともに、データファイル単位で新環境にコピーし移植する手段。 | ストレージ機器の筐体間コピー機能などを併用することで、データコピーにかかる時間を短縮可能。 | 未使用領域もコピーの対象となることと、断片化状態もそのまま移植されてしまう。 |
| db_link経由でのdirect Load insert | 新/旧データベース間に作成したdb_link経由で接続し、direct Load insertを用いて旧環境から新環境にデータをコピーする手段。 | 中間ファイルを生成せずにデータをコピーでき、条件によっては簡易な作業で高速化を実現可能。 | 作業時間が利用するネットワークの回線速度に依存してしまう。 |
| アンロードツール(csv出力)と、SQL*Lorderの利用 | 専用ツールを用いてデータベースのデータをcsv出力させ、それを新環境にコピーしSQL*Loaderなどでロードする手段。 | 専用ツールによるアンロードの高速性と、ロードの並列処理による作業時間短縮が見込まれる。 | 外部参照などオブジェクト間の依存関係を作業者が考慮する必要がある。 |
作業に問題が発生したときの切り戻し計画
今回「データベースサーバリプレイスの考え方」と題して、リプレイスに際して検討すべき事項の基本的な考え方を説明しました。新環境の構築では、そのハードウェアやOSの選定からサイジング、データベースのバージョン選定や構成の検討など、将来の安定運用にかかわる重要事項の決定が次々に待ち構えています。
最後に、リプレイス作業を計画するにあたって最も重要な、リプレイス作業に問題が生じた際の切り戻し、および復旧方法について触れておきます。
リプレイス作業において最も大事なことは、時間内に作業を完了し、予定通りシステムを再開させることです。そして、リプレイス作業が完遂できない事態に陥った場合にも、システム再開の期限は必ず守られなければなりません。そのための準備が、問題発生時の切り戻し、復旧手順の確立、そして作業工程表への「切り戻し最終期限」の組み込みです。
例えば、切り戻し先を現行環境(旧環境)とする場合で考えてみます。
まず、実施したデータ移行作業をロールバックして、再び旧環境を正常稼働させるために必要な時間を見積もります。それをもとに、サービス再開の予定時刻から逆算した「確実に旧環境に戻せる時刻」を切り戻し最終期限としてマイルストーン設定します。そして、そのマイルストーンまでにリプレイス作業の全工程が完了していない場合には無条件に旧環境への切り戻しを実施する、といったルールを設定します。これによって、システム再開の期限を確実に守ることができます。
実際には作業を仕切り直した場合のコストなども考慮し、作業の進行状況を都度確認しながら「ここまで進んでいれば本番稼働に影響はない」といった現場レベルの判断も必要になりますが、基本となるルールがあいまいな状態では適切な判断はできません。客観的な判断基準を備えた、マイルストーンの設定を心掛けてください。
今回をもって、2008年7月から連載させていただいた「ゼロからのリレーショナルデータベース入門」を一区切りとさせていただきます。ご高覧いただきました読者の皆様、誠に有難うございました。
本連載では、リレーショナルデータベースの基本構造の解説からスタートし、耐障害性やセキュリティなどの非機能要件を含めて、データベースを取り扱う際に必要となるトピックをできるだけ実業務に近い目線で幅広く取り扱ってきたつもりです。その1つでも、皆様の日々の業務に役立つことができれば幸いです。
東日本顧客支援室
仲谷 靖洋
Oracle Databaseのフィールドエンジニアとして営業同行から構築作業、DB診断やトラブル対応を担当。その後、2009年度の大規模な組織変更で「営業推進SE」なる新たな役割を担い、営業部門と技術部門との架け橋となるべく日夜奮闘中。
趣味はゴルフとここ1年ほど夢中になっている一眼レフカメラでの写真撮影。被写体は4歳の娘。
| 3/3 |
| Index | |
| データベースサーバリプレイスの考え方 | |
| Page 1 避けては通れないデータベースサーバのリプレイス リプレイス作業は吉か凶か リプレイス時に発生する作業 データベースのバージョンおよび適用するパッチの選定 |
|
| Page 2 アプリケーションの動作保証 製品の安定性 製品ライフサイクルとサポート提供期間 |
|
| Page 3 データ移行手段の選択 作業に問題が発生したときの切り戻し計画 |
|
| ゼロからのリレーショナルデータベース入門 |
TechTargetジャパン
- IBMが歴史を変える!? 新カテゴリの製品を発表 (2012/5/25)
IBMは新たな製品カテゴリとなる「PureSystems」を発表。DB2 10とビッグデータの関係、PureSytemsの斬新さはどこかに迫ります - クラウド時代のデータ処理を支える分散KVSの可能性 (2012/5/23)
現在、高速データ処理の主流はインメモリ型データ処理だが、別の方法として分散KVSが注目を集めている。今回は分散KVSについて話を聞いた - 複数の表からデータを取り出して表示させる(2) (2012/4/23)
前回はSQLの基本的な結合構文について説明しました。今回は、より複雑な自己結合や外部結合について説明します - SQL Server、OOWにIQ、盛りだくさんの4月 (2012/4/20)
オラクルオープンワールドが3年ぶりに東京で開催されたほか、SQL Server 2012が提供開始されるなど、今月は話題が盛りだくさんです
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
