疑問解決(オラクル バックアップ/リストア)

2008/11/20

オラクルのページが大きくなりすぎたので分割します。
オラクルのページはこちらです。
オラクルXEのページはこちらです。

・バックアップ/リカバリ

 このあたり単語がややこしいので整理してみました。
 バックアップとは、データを別場所(ディスクやテープ等)にコピーすることです。
 このデータを物理的に戻すのをリストアと言います。
 そして、リストアしたデータを使えるようにするのをリカバリといいます。

・バックアップモード

 バックアップには下記種類があります。

 

モード 説明
論理バックアップ ・データベースが稼動中に
  テーブルのデータや定義をファイルに出力する。
 CSV出力やエクスポートユーティリティが該当する。
物理バックアップ 一貫性(完全/コールド/オフライン)バックアップ ・インスタンスが停止した状態でしかバックアップできない。
・変更が反映されていないデータは無いため、
 リストア直後にデータベースをオープンできる。
非一貫性(部分/ホット/オンライン)バックアップ

・データベースがオープンしている状態でもバックアップ可能。
・データベースに未反映のデータが、
  REDOログおよびアーカイブログにあるので、
 リストア後リカバリ処理が必要。

・バックアップ手法

 バックアップ手法には下記3通りがあります。

 

モード 説明 バックアップ時間 リストア時間
フルバックアップ すべてのデータをバックアップします。
リストア時はこのデータを戻せば、バックアップ時点のデータに戻ります。
差分バックアップ
(累積増分)

フルバックアップ以降に変化があったデータをバックアップします。
リストア時は、フルバックアップデータと差分バックアップデータを戻せば、
バックアップ時点のデータに戻ります。

増分バックアップ
(差分増分)
前回のバックアップ(フル、増分)以降に
変化があったデータをバックアップします。
フルバックアップデータと増分バックアップを行った回数分、
増分バックアップデータを戻せば、
バックアップ時点のデータに戻ります。

・リカバリ種類

 リカバリには下記2種類があります。

 

モード 説明
クラッシュリカバリ 異常終了時に、
オラクルが自動的に行うバックアップです。
オンラインREDOログファイル使用して、
データベースとUNDOセグメントをロールフォワードする。
(オラクルはデータの更新は当初メモリのみでファイル更新しない。
ファイルに更新するまでにデータベースが落ちた場合、
データがアーカイブログより古い状況になっているため、
ロールフォワードを行う。 )
その後UNDOセグメントを使用して 、
コミットしていないデータをロールバックする手法です。
メディアリカバリ

手動で行うリカバリです。
アーカイブREDOログファイルとオンラインREDOログファイルで、
データベースとUNDOセグメントをロールフォワードし、
その後UNDOセグメントを使用して 、
ロールバックする手法です。

・データインポート/エクスポート

データのインポート/エクスポートユーティリティは
バックアップを復元するだけではなく、別のデータベースに移行する時にも利用できます。
コマンドとしては”exp”/”imp”コマンドを使用します。
インポートする際は下記コマンドで行います。
imp user/pass file=インポートファイル名 FULL=Y

SYSユーザー所有のオブジェクトはエクスポート対象外です。

またインポートする際、まれに下記エラーが発生する場合が有ります。
IMP-00032: SQL文がバッファ長を超えました

これはバッファサイズが足りなくなった時に発生します。
対処方としては、impコマンドのオプションでバッファを指定してください。 (下記は1Mバイトを設定した例)
imp user/pass file=インポートファイル名 FULL=Y BUFFER=1048576

・Oracle Data Pump

 10gから導入されたツールで速度の改善が計られており、
 10g以降であれば、このツールを使う事が推されています。

・Recovery Manager(RMAN)

 RMANを利用すると、増分バックアップを使うこともできます。
 RMANはバックアップ情報を、
 制御ファイルかデータベース(カタログデータベース)に保存するか選択できます。
 RMANを利用すると、必要なバックアップファイルの判断、不要ファイルの判断等自動で行います。

 

モード 説明
カタログデータベース カタログデータベースに保存する場合、
保存対象のターゲットデータベースとは、
別のデータベースに保存するべきです。

データベースに異常が発生した場合、
バックアップ情報も取得できなくなる可能性が有るためです。
制御ファイル

制御ファイルを利用する場合は特別な設定は不要ですが、
制御ファイルが壊れないように、バックアップを取っておく必要が有ります。


 

用語 説明
チャネル ターゲットデータベースとの間で張るセッションのことです。
データベースからデータを読込み、
保存先にデータを保存します。
種類として、”DISK”と”SBT(System Backup to Tape)”があります。
RMANリポジトリ

バックアップや操作の履歴の情報をRMANリポジトリと言います。

リカバリ・カタログ RMANリポジトリをデータベース内の表に保存したもの

 RMANを利用しての保存方法は下記の2通りあります。

 

方法 説明
バックアップ・セット ・データファイル、制御ファイル、アーカイブREDOログファイル、
 SPファイルを独自形式で保存
・未使用ブロックは圧縮
・増分バックアップ可
イメージ・コピー

・イメージをまるごとコピー
・保存先はディスクのみ

・RMANコマンド

 下記はRMANコマンドの一部です。
 コマンドはrun{}で囲みます。

 

コマンド 説明
shutdown immediate; データベースを停止
startup mount;

データベースをマウント

allocate channel チャンネル名
  device type デバイスタイプ format 'ファイル名_%U'

チャンネルを指定して、ファイル名でバックアップ
デバイスタイプ:
 DISK → ハードディスク
 OBT → テープ
置換変数:
 %d → データベース名
 %t → 4バイトのタイム・スタンプ
 %S → バックアップ・セット番号
 %u → バックアップ・セット番号
 %p → バックアップ・ピース番号
 %c → 各複製番号
 %U → ユニーク値

backup as copy database; イメージコピーとしてバックアップ
release channel チャンネル名; チャンネルを開放
alter database open; データベースオープン
configure channel device type デバイスタイプ
format='ファイル名';
デバイスタイプ共通の設定
backup as backupset database
  plus archivelog delete all input;
バックアップセットとしてバックアップ
アーカイブログも保存して、バックアップ後削除
list backup; バックアップ情報を表示
list backup summary; バックアップサマリを表示
list backupset; バックアップセットを表示
list copy; イメージコピーを表示
backup as backupset incremental level 0 database
plus archivelog delete all input;
バックアップセット増分バックアップのレベル0を取得
アーカイブログも保存して、バックアップ後削除
backup as backupset incremental level 1 database
plus archivelog delete all input;
バックアップセット増分バックアップのレベル1を取得
アーカイブログも保存して、バックアップ後削除
backup as backupset incremental level 1 cumulative database
plus archivelog delete all input;
バックアップセット差分バックアップのレベル1を取得
アーカイブログも保存して、バックアップ後削除
backup as backupset archivelog all delete all input; アーカイブログをバックアップ。
バックアップ後削除
backup as backupset database skip readonly; リードオンリの表領域はバックアップしない。
report need backup; リカバリするために
バックアップに必要なファイル表示
report obsolete recovery window of n days; リカバリに不要なバックアップファイルの表示
 n:日数
validate backupset 49;
バックアップセット49の妥当性チェック

SYSTEM表領域のバックアップを行った場合は、制御ファイルのバックアップも自動で行われます。

・Oracle Secure Backup

オラクルが提供するバックアップソフト。
SBTインターフェースを備えているため、
テープデバイスベンダが提供するテープ管理ソフトをインストールする必要がありません。
(NDMPにも対応)
無償版のExpressもあります。

OraleSecureBackupで使用する用語説明

 

用語 解説
クラス 権限の集合体に名前をつけたものです。
デフォルトで下記クラスがあります。
クラス 解説
admin ドメイン構成の変更やバックアップ
およびリストア操作の実行に必要なすべての権限があります。

operator

構成権限はありませんが、
バックアップおよびリストア操作に必要なすべての権限があります。

oracle Oracleデータベースの構成設定の変更や、
Oracleデータベースのバックアップの実行を可能にする権限があります。
通常、OSユーザのオラクルに関連付けされています。
user カタログ内の個々のデータを参照し、
ユーザーベースのリストア操作を実行することが必要なユーザーです。
reader カタログを参照できます。

ユーザ

OSのユーザとは別に扱います。
ただし、OSユーザと関連性を持たし、
特権ユーザを作ることも可能です。

データセレクタ リカバリしやすいように付けられた識別子
下記セレクタの一覧です。
クラス 解説
latest 最新のバックアップ

earliest

最古のバックアップ

all すべてのバックアップ
<バックアップID>
バックアップIDで指定
<日付-時間>
指定時間までのバックアップ
<日付-範囲>
2つの日付の間のバックアップ
ボリューム
(volume)
テープ等1つのメディアのことです。
ひとつ以上のバックアップイメージを保存できます。
バックアップイメージ バックアップの成果物。
ボリュームセット内の複数のボリュームに保存される場合がある。
その場合、ひとつのボリュームにあるものをバックアップセクションと言います。
ボリュームセット バックアップイメージが複数ボリュームに渡っている場合のボリュームグループ
メディア・ファミリ バックアップの属性(保存方法、書込みウィンドウ、保存期間等)を保持します。
属性 解説
ボリュームの識別順序 ボリュームの順序を覚えます。

ボリューム有効期限ポリシー

下記参照

書込みウィンドウ 下記参照
ローテーション・ポリシー
バックアップIDで指定
ボリュームID
(volume ID)
ボリュームにラベルとつける際の一意の英数字の識別子。
通常は、メディアファミリ名‐ボリューム順序番号となります。
ボリューム順序ファイル
(volume sequence file)
一意のボリュームIDが含まれるファイル
有効期限ポリシー
(expiration policy)

期限切れ(上書き対象)になる条件
”コンテンツ管理の有効期限ポリシー”と ”時間管理の有効期限ポリシー”

コンテンツ管理の有効期限ポリシー
(content-managed expiration policy)
ボリューム上のバックアップ・ピースのすべてに
削除済のマークが付けられると期限切れになります。
RMANのバックアップは可能ですが、ファイルシステムのバックアップはできません。
RMANからバックアップピースの削除が可能です。
時間管理の有効期限ポリシー
(time-managed expiration policy)
ボリューム・セット内のすべてのボリュームが
それぞれのボリューム有効期限に達すると期限切れになります。
最初のボリュームに対するボリューム作成時間に、書込みウィンドウ期間および保存期間をたして算出します。
RMANおよびファイルシステムのバックアップができます。
ボリューム作成時間
(volume creation time)
バックアップ・イメージのファイル番号1を
ボリュームに書き込んだ時間
書込みウィンドウ
(write window)
ボリューム・セットがオープンのままである期間です。
ボリューム・セットは、期限切れになるまで、
あるいは再度ラベルを付けられる、
再利用される、ラベル付けを解除されるまたは強制的に上書きされるまで更新できない。
書込みウィンドウ期間
(write window time)
ボリューム・セットへの書込みが可能な期間。
ボリュームセット内の全てのボリュームが共有します。
保存期間
(retention period)
書込みウィンドウ期間が過ぎてから、保存期間が始まります。 ボリューム・セットのデータが上書き対象とならない期間で、
ボリュームセット内の全てのボリュームが共有します。
この期間を過ぎるとこのボリュームは上書き可能と判断されます。
ボリューム・ラベル
(volume label)
ボリューム上の最初のバックアップ・イメージの最初のブロック。
ボリュームID、所有者の名前、ボリューム作成時間などの情報が含まれます。
バックアップ・イメージ・ラベル
(backup image label)
バックアップ・イメージのファイル番号、バックアップ・セクション番号
および所有者を特定するテープ上のデータ。
EODラベル
(End Of Data)
データの最後をあらわすラベル
EOVラベル
(End Of Volume)
ボリュームの最後をあらわすラベル
次のボリュームに続きます。
データベース・バックアップ記憶域セレクタ RMANバックアップをOracle Secure Backupのストレージメディアと関連付けます。


・RMAN と Oracle Secure Backup

RMANとOracle Secure Backupでできる機能は下記の通りです。

 

データ種別 バックアップデバイス Oracle Secure Backup RMAN
オラクル テープ ○(RMANと利用) ○(SBTインターフェースを利用)

ディスク

×

ファイルシステム テープ ×
ディスク × ×

・Oracle Secure Backupのインターフェース

Oracle Secure Backupは下記インターフェースから利用します。

 

インターフェース 解説
Oracle Secure Backup Webツール ブラウザベースのGUIツール

Oracle Secure Backup
コマンドライン・インタフェース(obtool)

コマンドラインツール

Oracle Enterprise Manager ブラウザベースのGUIツール
オラクル管理ツール
RMAN コマンドラインツール
オラクル管理ツール

・Oracle Secure Backupの構成

Oracle Secure Backupは下記の構成でできています。
1台のマシンで構成することも可能です。

 

構成機器 役割
管理ドメイン バックアップを行うドメイン

管理サーバ

ドメインに対する構成データとカタログを保持します。
管理ドメインには管理サーバーが1つだけあります。

メディア・サーバー テープ・ライブラリやテープ・ドライブなどの2次ストレージ・デバイスが接続しているマシン。
管理ドメインにはメディア・サーバーが1つ以上あります。
クライアント バックアップされているホスト

・Oracleデータベースの安全性

 オラクルには、安全性を保つ機能として
 レプリケーションとスタンバイデータベース機能があります。
 両方とも複数のデータベースでの機能となります。
 レプリケーションは常に同期を行い、両方のデータベースを更新できますが、
 スタンバイデータベースは、プライマリデータベースからの変更しかできません。
 プライマリデータベースののArchivelogFileをスタンバイデータベースに転送し、
 適用することで同期をとります。

 スタンバイデータベースを利用するためには、
 まずはデータの元となるプライマリデータベースを作成する必要があります。

・スタンバイデータベース

 スタンバイデータベースを利用するためには、
 まずはデータの元となるプライマリデータベースを作成する必要があります。
 プライマリデータベースでは、下記の点で注意する必要があります。
  ・ARCHIVELOGモードでの運用
  ・ALTER DATABASE CREATE STANDBY CONTROLFILE AS <filename>;
   で制御ファイルを作成し、スタンバイデータベースに送ります。

 次にスタンバイデータベースでの注意点です。
  ・ALTER DATABASE MOUNT STANDBY DATABASE;
   を実行してマウント状態にします。
  ・RECOVER STANDBY DATABASE;
   を定期的に行い、プライマリの更新処理を反映させます。

 プライマリデータベースからスタンバイデータベースへの反映は下記の2種類あります。
  ・Archivelogファイルが自動的に適用される自動回復モード
    RECOVER MANAGED STANDBY DATABASE
  ・明示的にRECOVERのコマンドを出さねばならない手動回復モード
    RECOVER STANDBY DATABASE

 スタンバイデータベースは更新する事はできませんが、
 DBモードをOPENすることでリードオンリーで動作させる事はできます。
 (通常はMOUNTモードです)

 プライマリデータベースで下記作業を行った場合の対応を表に纏めます。

 

プライマリでの作業 対応
データファイルの追加
データファイルの追加はARCHIVELOGファイルでは対応できないので、
「制御ファイルの再セット」と「データファイルバックアップの送信」が必要です。
NOLOGGINGによるデータロード NOLOGGINGで処理したログは、ARCHIVELOGファイルに入らないので、
「データファイルバックアップの送信」が必要です。
ALTER DATABASE OPEN RESETLOGS; ALTER DATABASE OPEN RESETLOGS;を行うと、
スタンバイデータベースは使えなくなりますので、
「スタンバイデータベースの再作成」が必要です。
REDOLOGファイルの追加

スタンバイデータベースにプライマリデーベースのREDOLOGは関係ないので、
何もする必要はありません。

・oracle data guard

 "oracle data guard"は、スタンバイデータベースを強化したものです。
 メインのプライマリデータベースとバックアップであるスタンバイデータベースの同期は、
 変更履歴(REDO)を送ることにより実現します。
 また、同じ”oracle data guard”でもバージョンがあがる度に機能がアップしています。

 

Oracleバージョン 対応
9i REDOの同期転送処理
10g Release 1

REDOを受信した時点で即座に変更
(リアルタイム適用)

10g Release 2 ファスト・スタート・フェイルオーバー(FSFO)
自動的にフェイルオーバーを行います。

・オラクル パラレルサーバ / Oracle Parallel Server(OPS)

 データベースクラスタ技術の一つです。
 ディスクを共有する「シェアードディスク方式」です。
 ただし、スケーラビリティに少し難があり、
 各ノードから同一のデータブロックに対して更新要求が発生すると、
 I/Oボトルネックが起こります。

・Oracle Real Application Clusters(Oracle RAC)

 OPSをさらに改良した技術です。
 同期作業はディスクベースではなく、
 インターコネクト通信を利用したバッファ転送で行う
  ”キャッシュフュージョン”という記述を使います。
 こうすることにより、I/Oのボトルネックを減少させています。

・単語

 

単語名 意味
フラッシュリカバリ領域 バックアップファイルやアーカイブログファイルを格納する場所
SCN
(System Change Number)
データベースの整合性を取るために割り振られている番号
インカネーション バックアップの分岐
RECOVERY WINDOW リカバリ可能期間

メディア管理レイヤー

RMANとバックアップデバイスとの仲介を行うレイヤー

SBTインターフェース

RMANからテープデバイスへアクセスするためのインターフェース。
テープ管理ソフトが提供することが多い。
NDMP
(Network Data Management Protocol)

バックアップを効率的に行うためのプロトコル
制御とデータのパスが分離しているため、
データ転送が効率的に行われます。

・覚書
 ・ソートマージ
 ・ルールベース
 ・dual 表
 ・OCI(Oracle Call Interface)
 ・JDBC
 ・ODBC
さらに情報が欲しい方は、Google検索で  
Google
・TOPへ戻る

メールはこちらに