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

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

関連記事

Linuxサーバ(CentOS6)にEclipse(OXYGEN)をインストールする

0.目次 (1) JDKの概要  (1-1) JDKの種類  (1-2) JDKのバージョン(2018年2月時点) (2) JDKのインストール  (2-1) wget コマンドでJDK の rpm …

Javaの動的Webプロジェクト作成での事前設定と雛形Webプロジェクト作成

「動的Webプロジェクト」とはHTMLのような静的ページのみならず、ServletやJSPを用いてWebアプリケーション開発をする際に作成します。本記事ではEclipseにて「動的Webプロジェクト」 …

Linux(CentOS 6)のパケットフィルタリング方法(iptables)

(0)目次&概説 >(1) “iptables”の概要 >(2) “iptables”の解説  >(2-1) “iptables&#8221 …

Linux – シェルスクリプト入門(Hello World/引数・変数/条件分岐/繰り返し処理)

シェルスクリプトの作成方法について ■目次 (1)シェルスクリプトでHello World (2)シェルスクリプトで変数/引数を使う (3)シェルスクリプトで条件分岐を記述 (4)シェルスクリプトで繰 …

さくらVPS(Linux)にリモートデスクトップ環境を構築する方法

Linuxのサーバーにリモートデスクトップ環境を構築する手順について解説します。 <目次> >0.背景・目的・前提条件 >1.VNCサーバのインストール >2.VNCサーバの設定ファイル編集 >3.V …

Top