Rainbow Planet (GT×IT×SP×SA)

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

01_IT技術 (Technology)

OracleDBのメディア障害やインスタンス障害からの復旧について

投稿日:2019年5月19日 更新日:

(0)目次&概説

(1) 障害復旧について
 (1-1) インスタンス障害
 (1-2) メディア障害
  (1-2-1) 制御ファイル
  (1-2-2) REDOログファイル
  (1-2-3) データベースファイル

(1) 障害復旧について

(1-1) インスタンス障害

サーバー電源障害やバックグラウンドプロセスの異常停止などによりインスタンスが強制停止した場合の対処についてです。基本のアプローチとして、データベースの再起動を行います。再起動を行うと自動的にSMONプロセスによるインスタンスリカバリが行われます。

①リカバリ地点の確認
SMONプロセスが制御ファイルのSCNとデータファイルのSCNを比較し、リカバリを開始する地点を決定します。SCN(※注)はバッファキャッシュの内容をデータファイルに書き出すタイミングで更新されます(チェックポイントイベントが引き金)。この直後はメモリ上の情報と、ディスク上のデータファイルの情報は同期が取れていますので、インスタンス障害の復旧にはチェックポイント以降のREDOログのみがあればOK)。
(※注)SCNは「System Change Number」の略でトランザクションのCOMMIT時、タイムアウト時など、特定の条件を満たす時に採番される管理番号です。

②ロールフォワードの実行
リカバリ開始地点のSCN以降のREDOログをデータファイルに適用していき、最新のSCNまでロールフォワードを行います。また、この間にロールバック用のUNDOデータも作成します。

③ロールバックの実行
前の手順にて作成したUNDOデータを用いて、未COMMITの取引をロールバックします。

目次にもどる

(1-2) メディア障害

OracleDBにおけるメディア障害はデータベースファイル(データファイル/REDOログ/制御ファイル)の一部消失やディスク障害を指します。

(1-2-1) 制御ファイルの可用性UP

制御ファイルの可用性を高める方法として、多重化を実施する事により、破損時にバックアップをコピーするのみで復旧が可能となります。しかし、多重化している場合であっても制御ファイルが1つでも破損すると動作停止するためにミラーリング等のHW観点の冗長化も検討があるとより万全となります。

(1-2-2) REDOログファイルの可用性UP

REDOログの可用性を高める方法として、以下の方法があります。
・REDOロググループの追加
REDOログは最低2グループ必要で、ログスイッチの待機(CKPTとARCN完了待ち)を防止するには3グループ以上が望ましい。
・REDOログメンバーの追加
Oracleはどれか一つのREDOログメンバーに書き込みが出来れば動作停止しないため、REDOログのグループに2つ以上のREDOログメンバを持たせ「多重化」を行います。

(備考)
Oracleの「データファイル」は「データそのもの」が保存され、「REDOログ」は「データの変更履歴」が保存されています。

(1-2-3) データベースファイルの可用性UP

データベースファイルの破損に対する可用性を高める方法としてARCHIVELOGモードで運用する方法があります。
・ARCHIVELOGモード
インスタンス障害&メディア障害にも対応可能です。データベースがオープン状態でもバックアップが可能。またリストアの際は、障害が発生した特定のデータベースファイルのリストアのみで良い。

・NOARCHIVELOGモード
インスタンス障害のみに対応可能(※古いアーカイブログをバックアップしないため、CKPT以前のデータは復旧できない)。バックアップを取得するには、データベースを停止する必要あり。またリストア時にはデータベース全体のバックアップが必要(一貫性バックアップ)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-01_IT技術 (Technology)

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

VBAによるマトリクスの行列を反転させて転記するプログラム

(0)目次&概説 (1) マクロ概要 (2) 使用方法 (3) アルゴリズム概要 (4) プログラム (1) マクロ概要 マトリクス形式で表現されたデータの行と列を入れ替えるプログラムです。 (※Ex …

VBAで画像を分類に応じて適切なフォルダに仕分けるプログラム

(0)目次&概説 (1) マクロ概要 (2) 使用方法 (3) アルゴリズム概要 (4) プログラム (1) マクロ概要 本マクロは画像ファイルを適切なフォルダに仕分けるためのマクロです。前提として、 …

Linux基礎コマンド(第1回) TeraTermログイン・pwd・cd

初めてLinuxを触る人向けにTeraTermのログイン方法からコマンドを入力する方法まで数回にわたり解説していきます。本記事はその第1弾です。 (0)目次&概説 >(1) Linuxのディレクトリ構 …

Linuxサーバー(CentOS6)にTomcatをインストールする手順

(0)目次&概説 (1) Tomcatとは? (2) Tomcatインストールと疎通チェック  (2-1) Tomcat用ユーザーの作成  (2-2) Tomcatの資源をダウンロード  (2-3) …

Linuxで一般ユーザ(rootスイッチ権限有り)を作成する方法

Linuxでユーザを作成する方法を書きます。 (0)目次 >(1)作業の背景・目的・前提条件 >(2)ユーザの作成 >(3)ユーザの「Wheel」グループへの追加 (1)作業の背景・目的・前提条件 「 …

Top