>> はじめに |
|
前回は、OSインストールの際の注意点、Oracleのインストールの概要、NetVaultの導入について確認しました。さぁ、これでいざバックアップのテストと行きたいところですが、Oracleのオンライン・バックアップを行う際に一番重要なアーカイブログモードの設定がなされていません。今回は、アーカイブログモードについてのおさらいと、Oracle 10gならではの注意点について確認した後に、Oracle Online APMの導入方法についてご説明します。細かい前提条件等については、前回の講座を確認してください。
>> アーカイブログモードの設定をしよう! |
|
Oracleインストール時に作成した初期データベースや、DBCAを使用してもデフォルトでは、アーカイブログモードが有効になっていません。そもそも「アーカイブログモード」とはなんでしょう?
データの整合性を保証するために利用されている、データベース・システムの生命線ともいえるオンラインREDOログファイルは、通常2つ以上作成され循環使用されています。
オンライン・バックアップの際には、バックアップ・モードになった表領域に対するトランザクションは、オンラインREDOログに書き込まれますが、通常のREDOエントリの他に更新後のデータ・ブロックのコピーも余分に書き込まれるために、トランザクションが多く発生するとログスイッチにより、次々に上書きされてしまいます。そのため、もし表領域のデータファイルのバックアップ中に障害が発生してしまうと、バックアップ中のトランザクションについて回復できないことになってしまいます。
それを回避するためにアーカイブログモードでは、オンラインREDOログが上書きされる前に、ARCHプロセスによりアーカイブとして退避します。これにより、必要なときにアーカイブログからリカバリ処理を行うことができるようになります。
では、早速設定して見ましょう。まずは、念のため現在の状態をarchive log listコマンドにより確認します。デフォルトでは、非アーカイブ・モードで自動アーカイブが使用禁止になっています。
|
確認後に設定を行うのですが、ここで注意点が一つあります。Oracle 10gから"Flash Recovery Area"という考え方が導入され、アーカイブ先がDB_RECOVERY_FILE_DESTという指定になっていますが、実際には"$ORACLE_BASE/flash_recovery_area/<SID>/archivelog"以下に、日付がディレクトリ名として作成されその下に格納されます。
|
残念ながら、現在のLinux用Oracle Online APM Release 4.1では、日付によるサブ・ディレクトリを作成した状態での取得には対応していませんので、回避策として下記のOracle 9iの時のように、ディレクトリを一つに指定するようにします。
※今回はOracle Online APMを使用するために変更を行いますが、Oracle RMAN APMを使用する場合にはアーカイブ先の設定を変更する必要はありません。
|
設定する方法はいくつかありますが、SPFILEを使用している場合には、"ALTER SYSTEM SET"コマンドを使用するとよいでしょう。なお、LOCATIONをディレクトリとして指定する場合には、あらかじめOracleユーザにて"$ORACLE_HOME/dbs/arch"ディレクトリを作成しておく必要があります。ディレクトリを作成しない場合には、"$ORACLE_HOME/dbs"ディレクトリ以下にarchというprefixにてアーカイブログが作成されます。
|
アーカイブ先を変更後、データベースをアーカイブログモードに変更します。"ALTER DATABASE"コマンドを使用しますが、データベースがオープンの状態では実行できません。
|
一度シャットダウンして、マウント状態で起動します。それからアーカイブログモードへ変更して、データベースをオープンします。
|
最後に、"ALTER SYSTEM ARCHIVE LOG CURRENT"を実行後、アーカイブログファイルが生成されていることを確認します。
|
|
以上で正しくアーカイブログモードに設定変更ができました。もし、引き続きアーカイブログの格納先として "DB_RECOVERY_FILE_DEST"も使用したい場合には、"LOG_ARCHIVE_DEST_2"を設定すれば、複数の箇所に書き込まれます。
詳細については、Oracle社より提供されている「Oracle Databaseバックアップおよびリカバリ基礎」などのマニュアルを参照するようにしてください。
>> Oracle Online APMとOracle RMAN APMの違い |
今回の講座では、Oracle Online APMについて解説していますが、他にOracle RMAN APMというオプションも用意しています。機能比較の概要については、こちらからご覧いただけます。
ここでは、もう少し実践的なお話をしたいと思います。
次の図は、一般的なOracleのバックアップ手法についての説明図です。この中で、オレンジで記載された部分については、データベースを停止した状態でのオフライン・バックアップについて説明しています。オフライン・バックアップに関しては、NetVaultのFile SystemプラグインやRaw Deviceプラグインを使用して取得することができます。それに対して緑で記載されたオンライン・バックアップに関しては、Oracle Online APMやOracle RMAN APMを使用することができます。この図を見ると、NetVaultが、バックアップ要件にあわせて柔軟な方法を提供していることを良くご理解いただけると思います。
|
Oracle Online APMは、常にフルバックアップのみの対応になるため主に小規模なデータベース(100GB以下)で使用されるケースが多く、使用にあたっての必要スキルがそれほど高くない為、比較的導入が行いやすいというのが特徴です。
また、Oracle Online APMを使用せずFile System PluginとNetVault標準のプレ/ポストスクリプト機能をカスタマイズしてのオンライン・バックアップも可能ですが、バックアップ・ジョブの前後にバックアップ・モードに変更/解除を行うことになってしまい、すべての表領域がバックアップ・モードになってしまいます。そのためREDOログの生成量が多くなり、I/Oの低下やディスクフルの状態を引き起こしてしまう可能性があります。表領域ごとにジョブを分割すれば回避できますが、ジョブが多くなり管理が複雑になってしまいます。Oracle Online APMを使用すれば、データ・ファイルのバックアップとバックアップ・モードの変更を内部で透過的に行い、簡単なオペレーションでオンライン・バックアップができるようになっています。
|
>> Oracle Online APMを設定しよう! |
事前準備が完了しましたので、早速Oracle Online APMをインストール設定してみましょう。NetVault GUIを起動し、クライアント管理を選択します。クライアントの右クリックメニューから、ソフトウェアのインストールを選び、必要となるOracle Online APMのパッケージ・ファイルを指定します。インストール後に、完了のダイアログを確認します。
これでインストール自体は終わっていますので、Oracle Online APMの設定を行います。バックアップ・ウィンドウの"セレクション"タブからマシンをドリルダウンしていくと、新たにOracle Online APMのアイコンが表示されていますので、ダブルクリックします。
Add Oracle Databaseウィンドウが表示されるので、必要事項を埋めていきます。
どれもOracleの環境の基本情報なので難しくはないかと思います。でも少しわからないところが・・・という人のために簡単な調べ方を紹介しましょう!なお、すべてOracleの設定が正しく行われて、Oracleユーザの環境変数の設定もされているということを前提条件にしています。正しく設定できていない場合には、Oracleの設定から確認してみてください。
- SID: Oracleデータベース・インスタンス名 |
|
|
環境変数$ORACLE_SIDで確認できます。 [oracle@ora10g oracle]$ echo $ORACLE_SID o10g |
- Home: Oracleソフトウェアがインストールされているディレクトリ |
|
|
環境変数$ORACLE_HOMEで確認できます。 [oracle@ora10g oracle]$ echo $ORACLE_HOME /opt/oracle/product/10.1.0/db_1 |
- Owner: データベースのオーナー、Oracleユーザー |
|
- Group: オーナーが属するグループ |
|
|
通常はOwnerが"oracle"で、Groupが"dba"になっています。 |
- Select NLS_LANG: データベース単位で、使用されている言語を設定 |
|
|
環境変数$NLS_LANGで確認できます。
[oracle@ora10g oracle]$ echo $NLS_LANG JAPANESE_JAPAN.JA16EU |
- Init Files: 初期化パラメータファイル等のファイル指定 |
|
|
今回は、SPFILEを指定しています。Oracle 9iから導入されたSPFILEか、従来のinit<SID>.oraを必要に応じて指定します。カンマ区切りで複数のファイルを指定できます。 |
- Control File Save Location: コントロール・ファイルを別途保存し、そのファイルをバックアップに使用するため、その保存先を指定 |
|
|
オリジナルのコントロール・ファイルを指定するわけではないことに注意してください。なお、最近のOracle Online APMでは、ここでの指定に加えて、自動的に".sav"の拡張子をつけて保存されるため、オリジナルのコントロール・ファイルに上書きされる可能性はほとんどありませんが、念のため確認しておきます。ここでは、"$ORACLE_HOME/dbs/<SID>ctrl"として指定しています。 |
- Archive Directories: アーカイブログの格納先 |
|
ARCHIVE LOG LISTコマンドでアーカイブ先の確認ができます。 SQL> ARCHIVE LOG LIST
アーカイブ先 /opt/oracle/product/10.1.0/db_1/dbs/arc |
|
- Archive File Pattern: アーカイブログの形式 |
|
実際にアーカイブ先を確認してもよいですし、"show parameter log_archive_format"コマンドにより、形式を確認することもできます。 SQL> show parameter log_archive_format
NAME TYPE VALUE --------------------- ----------- ------------------ log_archive_format string %t_%s_%r.dbf |
環境によっては、OKボタンが隠れている場合もありますので、スクロールさせてOKを押して登録完了です。
もう一度バックアップ画面でドリルダウンすると、登録したデータベースが表示されます。
また、データベースをダブルクリックしてアカウントとパスワードを入力すると、対象の表領域が表示できます。
>> 次回は・・・ |
|
やっとバックアップができるところまでこぎつけました。思っていたよりも設定は簡単なんだなぁと実感できたかもしれません。重要なのはきちんと設定項目を確認することです。もし項目が間違っていたり、足りないというメッセージが表示されたら、最初から入力し直して見ると、うっかりミスが発見できたりすることもあります。
次回は、バックアップを行い、実際にデータに障害を発生させた後に、リストアおよびリカバリ処理を行って、正しく復旧できるということを解説していきたいと思います。お楽しみに。