てきとーにのんびりだらだら

毎日更新目標!SEブログ!

昨日できなかった分の続きやるわー@GW最終日~10章の勉強やっていくよー

おつおつー^^
昨日は勉強ほぼせずに最終日迎えましたー
現在時刻は10時半過ぎです、電脳コイルを見てました笑
とりあえずoracleの勉強を終わらせていこうと思います。

バックアップリカバリ

メディアリカバリを行うには、あらかじめデータベースをARCHIVELOGモードで運用する必要があります。
ARCHIVELOGモードで運用すると、データベースのOPEN中にバックアップを取得できます。
NOARCHIVELOGモードにしていた場合、メディア障害が発生しても障害発生前の状態に復旧することはできません。
ARCHIVELOGモードではアーカイブログファイルが、指定したディレクトリ以下に出力されます。このことをアーカイブといいますが、この動作によりデータベースに対する一連の変更履歴を保管できます。
データベースをARCHIVELOGモードの構成は2つの手順を実行します。
高速リカバリ領域の構成とARCHIVELOGモードに変更です。
高速リカバリ領域は、oracleDatabase10gより導入されたリカバリ関連ファイルを一元的に管理するためのファイルシステム上の記憶域です。
ここでのリカバリ関連ファイルとはバックアップファイルやアーカイブログファイルなど、また加えて制御ファイルやREDOログファイルの多重化したコピーを配置する場合もあるそうです。
高速リカバリ領域はARCHIVELOGモードの場合、使用必須ではないですがリカバリファイルの管理を不要ファイル自動削除などして簡素化できます。
この領域の実態はDB_RECOVERY_FILE_DEST初期パラメータで表示され、_SIZEを付けることで領域のサイズ指定ができます。
ARCHIVELOGモードへの変更はALTER DATABASE ARCHIVELOG;を実行します。
NOARCHIVELOGについては、メディア障害発生時にバックアップ取得時点の状態にしか復旧できないため、本番環境ではARCHIVELOGモードで運用されます。
RMANでの操作としてバックアップの取得ができます。BACKUP DATABASEコマンドを実行することで取得でき、そのバックアップ出力先には、ファイルシステム上の記憶域またはテープ装置を使用できます。
RMANでのバックアップ取得はバックアップセット、イメージコピーといったファイル形式を使用できます。
バックアップセットは未使用領域の圧縮や暗号化など様々な拡張機能が利用可能でRMAN独自のファイル形式です。
イメージコピーはバックアップ元のファイルと物理的に同一のコピーでファイルサイズも元ファイルと同じになります。
データベースのバックアップではすべてのデータファイルおよび制御ファイル、SPFILEをバックアップ対象とします。RMANのBACKUP DATABASEコマンドを使えば自動的に対象ファイルをバックアップできます。一部のファイルが欠けていると復旧できません。
非一貫性バックアップと一貫性バックアップですが、取得時のデータベースのOPENか停止かの状態により分類されます。
データベースがOPENとなっている際にバックアップ取得すると非一貫性バックアップやオンラインバックアップ、ホットバックアップと呼びます。
バックアップを非一貫性バックアップとして取得する運用が一般的です。
一方、データベースを停止して取得することを一貫性バックアップやオフラインバックアップ、コールドバックアップといいます。
データベース取得時にREDOログファイルに記載されたコミット済みのトランザクションによる更新がデータファイルに反映され、データベースファイルが一貫性を持つ状態となります。

次にリストアについてですが、破損したファイルをあらかじめ取得していたバックアップで置き換えることで、置き換えについては同じファイル名でのリストア以外に異なるファイル名でのリストアも可能です。
リストアは古い状態のためリカバリで障害発生直前の状態にします。
リストアリカバリのコマンドは以下になります。

RMAN>RESTORE DATAFILE パス;
RMAN>RECOVER DADTAFILE パス;
RMAN>ALTER TABLESPACE 表領域名 ONLINE;

RMANでのRECOVERコマンドはデフォルトで障害発生直前の状態になるまでデータファイルにREDOデータを適用します(完全リカバリ)。
またRMANでのoracleデータベースはSYSBACKUP権限など指定しない場合はSYSDBA権限で接続されます。

$ rman target /
or
$ rman target '"ユーザー名/パスワード as sysbackup"'

TARGETはバックアップ対象のデータベースに接続することを示しています。
rmanコマンドに続けてAS SYSBACKUP を指定する場合、シングルクオーテーションとダブルクオーテーションの両方で囲む必要があります。
先ほど完全リカバリについて説明しましたが、不完全リカバリも復旧方法としてあります。
不完全リカバリは障害発生直前の状態ではなく、指定した過去のある時点にデータベースを復旧する方法です。
Point-in-Timeリカバリと呼ぶこともあります。
適用するREDOデータはリストアしたバックアップの取得時点から復旧のターゲット時点までです。
話が飛びますが、障害の対処法をそれぞれまとめたものを表として次の説明に移ります。

障害の種類 障害の要因・状況 障害発生時の動作および対処方法
トランザクション実行中の意図しないセッション切断 ユーザーの誤操作やクライアントアプリケーションの異常終了 PMONプロセスが実行中トランザクションを自動的にロールバックする
インスタンスの異常終了 HW障害、SHUTDOWN ABORTの実行、Oracleのバグなどの理由でインスタンスが異常終了した インスタンスリカバリ
メディア障害 ディスクドライブやコントローラの障害、利用者の操作ミスなどの理由でファイルが破損消失 メディアリカバリ
ユーザーの誤操作によるデータの消失 表やデータを誤って変更または削除した 管理者がフラッシュバック操作を実行
可用性を高める構成(機能)

黒本には用語とそれの理解をするだけでいいと書いてあったため、そうします。
Oracle Real Application Clusters
データベースサーバーまたはインスタンスに障害が起きるとサービスは停止しますが、この構成を使うとサービス停止を回避できます。
この機能は複数のデータベースサーバーを連携して動作させることが可能です。
すべてのデータベースファイルを共有ストレージ上に配置し、すべてのデータベースサーバーのインスタンスが共有ストレージ上の一つのデータベースにアクセスする構成です。
またこの機能だとデータベースを停止することなくデータべースサーバーを追加し、性能向上できるスケールアウトや、データベースバッファキャッシュにキャッシュされたブロックをデータベースサーバー間で共有し、高い性能を実現できるキャッシュフュージョンジョンがあります。

Oracle Clusterware
複数のデータベースサーバーを連携して動作するのに必要なソフトウェアです。
oracleDataBaseには含まれておらずOracleGridInfrastructureに含まれています。
データベースサーバー上でインスタンスやプロセス監視をし、障害時プロセスを起動するデータベースサーバーの変更やサービス引継ぎ(フェイルオーバー)などの処理を実行します。

Oracle Automatic Storage Management
複数のストレージ統合、複数ストレージへの並列書込み読み込みを行うストライピング、同一データを複数ストレージに重複書込みをして耐障害性を高めるミラーリングの機能があります。
ASMの使用の際にはASMインスタンスが必要です。

Oracle Data Guard
データセンターや地域レベルでの災害を想定した機能です。
遠隔地にスタンバイデータベースと呼ばれる予備用データベースを作成します。
通常使用するデータベースをプライマリーデータべースとして、障害発生時はフェイルオーバーを行います。
スタンバイデータベースにはREDOデータを伝播させます。
平常時は読取り専用としてオープンし、負荷の高い処理をスタンバイデータベースを実行できます。(オフロード)
フィジカルスタンバイデータベースとロジカルスタンバイデータベースがありますが、一般的にはフィジカルスタンバイデータベースです。