>> はじめに |
|
Oracleのバックアップ方法は、以前、Oracleバックアップ虎の巻 (Linux編) と Oracleバックアップ虎の巻 (Windows編) の2つ講座で取り上げました。ここでは主に、スタンドアロン・シングルインスタンス・データベース環境のバックアップ方法について解説してきましたが、皆さんの中には既にOracle RAC環境を使用していたり、これから興味があって構築されたい方も多数いらっしゃると思います。そこで、今回の新講座では、Oracle RACのバックアップについて実際の例を交えながら解説していきたいと思います。
なお、本講座では主にLinux環境をベースに解説していきますが、考え方は他のOSでも同様です。
>> まずOracle RAC環境におけるデータの配置場所についてのおさらい |
|
詳細な解説は、Oracle社のマニュアル等をご確認いただく必要がありますが、バックアップを考えるにあたり必要なのは、どのようなファイルがどこにあるのかを確認することです。
Oracle RAC構成概要 (ASM)
まず、各ノードのローカル・ストレージには、RACの動作に必要な下記ファイルが置かれています。
- CRSホーム
- ASMオーム
- RACホーム
- Agentホーム
共有ディスク上には、データベースの実際のデータやそれらを管理するファイル等が配置されます。
これらのデータをどのようにバックアップしたらいいのかについて考えていきます。
>> ローカル・ストレージのデータについて |
|
基本的には、ローカル・ストレージのデータはOracleの再インストールによって対応できますが、Oracle RACの場合にはノード追加という形でも再構築が可能です。
しかし、再インストールや再設定に掛かる時間が、万が一の障害の際に問題となるという場合には、是非、NetVault Backupのオプション製品であるVaultDRのご利用をご検討いただければと思います。この場合、各ノード毎で異なる内容になっていますので、それぞれのノード単位でバックアップをしておく必要があります。VaultDRについては、下記の製品紹介ページやTips!でご確認ください。
- VaultDR製品紹介ページ
- VaultDR関連のTips!
- VaultDR Offlineオプションを使ってみよう
- VaultOS 5.1を使ってみよう!
※VaultDRの中でもVaultDR Online for Linuxオプションは、データベースのシステムのバックアップにはあまり適しません。
>> 共有ストレージのデータについて (前編) |
|
共有ストレージのデータは、2つのノードから共有されているため、基本的には片側のノードからバックアップすれば問題ありませんが、構成によっては事情が異なるため注意が必要です。
個々のバックアップ対象となるデータ毎に見ていきます。
■OCR (Oracle Cluster Registry) ファイル
OCRファイルには、RAC環境の構成に必要な情報が含まれています。それぞれのノードには、OCRファイルの内容がメモリ上にキャッシュされ、CRSDによってリフレッシュされます。OCRの更新はOCRマスターノードという、ノード内の1つのマシンだけで行われます。
マスターノードになったマシンかどうかは、$ORA_CRS_HOME/log/<SID>/crsd/crsd.logファイルに、次のようなメッセージが表示されたかどうかで確認可能です。
|
ファイル自体には、どのノードからもアクセスできます。しかし、通常Rawデバイスに格納されているため、そのままでは確認することができません。
ocrdumpコマンドを使用することにより、ファイルや標準出力、またテキストではなくXML形式での出力等が可能です。
|
では、実際にこのOCRファイルのバックアップ/リストアはどのようにしたらよいのでしょうか? NetVault BackupのOracle APMでは、OCRファイルおよび投票ディスクのバックアップは対象に入っていないので、個別に取得していく必要があります。
実は、OCRファイルはデフォルトで、ファイルとして自動でバックアップが行われています。
いつどのマシンで、バックアップされたかを確認するにはocrconfigコマンドを使用します。
|
例のように、CRSホーム以下のディレクトリに格納されているのですが、注意が必要なのは、この自動バックアップはOCRマスターノードにて行われるという点です。
試しに、2ノード・クラスタのもう1つのノードで同じコマンドを実行してみます。
やはり同じ結果になりました。
各行の先頭では、バックアップが実行されたマシンを示しており、aokirhel5rac2ノード側での結果からも、aokirhel5rac1にて実行されたことがわかります。
|
このファイルは普通のファイル・システムのバックアップの機能で取得が可能ですので、あとは単純に、ファイル・システムのバックアップを別途スケジュールするようにします。どちらのマシンで取得されるか分からないという場合は、すべてのノードでバックアップ・ジョブを作成すると良いでしょう。データ容量は非常に小さなものです。
リストアを行う場合は、まずバックアップ・ファイルの内容が正しいかを確認しておきます。なお、別途バックアップを取得しておいた場合は、まず最初にリストアを行っておきます。
|
ocrdumpコマンドをrootユーザにて実行すると、バイナリ・ファイルであるバックアップ・ファイルの中身を確認可能です。上記例では標準出力にて確認しています。
さて、実際にリストアということですが、OCRファイルはすべてのCRSが使用しているものであるため、リストアの際は、当然すべてのノードでCRSを停止する必要があります。
|
これらの作業をすべてのノードで行った後に、リストアを行います。
|
なんの終了結果も表示されないですが、問題なければプロンプトが返ってきます。
停止したCRSを起動します。
|
あとは、OCRファイルの整合性を確認するために、cluvfyというクラスタ検証ユーティリティを使用します。
|
■投票ディスク
Oracle RACも一般的なクラスタ同様、インターコネクトを介して他のノードと通信して、各ノードの状態を把握しています。しかし、インターコネクトに障害が発生してしまうと、どのノードがマスターになるのかわからなくなる状態「スプリットブレイン」が発生することがあります。投票ディスクは、インターコネクトに依存していないので、そうした「スプリットブレイン」の問題を解決するのに使用されます。
投票ディスクは、多重化することが推奨されていますが、実際には多重化されていなかったり、すべての投票ディスクに障害が発生した場合には、バックアップからリストアする必要がありますので、そうした状態に備えておく必要があります。投票ディスクには、各ノードの状態に関する情報が格納されていますが、あまり頻繁に更新されるものではありません。
投票ディスクは、ノードの追加を行ったり、削除後にバックアップを行う必要があります。バックアップは、Linux/UNIXの場合にはddコマンドを使用することが可能です。Windowsの場合には、正しくRawデバイス・バックアップが行えるバックアップ・ソフトウェアを使用してください。Linux/UNIXでもRawデバイス・バックアップは有効です。NetVault Backupは、Windows/Linux/UNIXのすべての環境にて標準でRawデバイスバックアップが行える、数少ないバックアップ・ソフトウェアです。
では、実際にLinux環境での例を見てみましょう。まず、どのディスクが投票ディスクであるかを確認します。この例では、/dev/raw/raw2になっています。
|
ddを使用する場合には、一旦ファイルとして取得したあと、そのファイルを対象に更にテープ等へバックアップを行うジョブをスケジュールします。
|
リストア時にはまず、OCRのときと同様にCRSはあらかじめ停止しておきます (操作方法は割愛します)。そして、ddコマンドを使用して、リストアを行います。
|
NetVault Backupを使用する場合には、そのままRawデバイスでバックアップが可能です。Linux等のディストリビューションやバージョンによっては、キャラクタ・デバイスが使用できない場合がありますので、その場合にはブロック・デバイスを使用するようにしてください。
リストア時も、GUIから簡単に指定してリストア・ボタンをクリックするだけです。Linux/UNIX等の場合も、統合的にOracle環境のバックアップができるため、Rawデバイス・プラグインの使用はお奨めです。
>> 次回は・・・ |
|
今回は、Oracle RACのバックアップの基本概要と、システムの保護、そしてOCRファイルや投票ディスクについてのバックアップ手法を確認してきました。
次回は、実際のデータ・ファイルについて確認します。さらに、マニュアル等では分かりにくい実際のバックアップ手順をご紹介する予定です。