連載
» 2007年10月01日 00時00分 公開

ORACLE MASTER Silver DBA講座(23):リカバリ機能でOracleデータベースを復活させる (2/2)

[有限会社 G.F.インフィニティ (Project - ∞)]
前のページへ 1|2       

問題

問題1

次のコマンドを確認してください。

SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;

このコマンドが正常に完了するために必要な状態を選択しなさい。

a.最低3つのREDOロググループが必要である
b.グループ2が正常にアーカイブされている
c.グループ2の最低1つのメンバーが正常な状態にある
d.グループ2のすべてのメンバーが正常な状態にある

正解:b

解説

 前回、宿題とした問題です。

 CLEAR LOGFILEコマンドによるREDOログファイルの初期化により、指定したグループのREDOログファイルが再作成されます。誤ってREDOログファイルを削除してしまった場合でも、簡単に復旧することができます。

 ただし、実行するには次の2つの条件を満たしている必要があります。

  • チェックポイントが完了している(V$LOGビューのSTATUS列がINACTIVE)
  • アーカイブログファイルの作成が完了している(V$LOGビューのARCHIVED列がYES、正解b)正解b

 なお、NOARCHIVEモードであれば、アーカイブログファイルが作成済みであるかどうかは関係ありません。ARCHIVEモードの場合も、UNARCHIVED属性を指定することで、アーカイブログファイルが作成されていなくても初期化することが可能です。

 そのほかの選択肢の不正解の理由は次のとおりです。

選択肢a:初期化においては、REDOログファイルの最低グループ数である2グループしかない場合でも、コマンドの発行が可能です。

選択肢c、d:初期化の条件を満たしているのであれば、REDOログファイルの現在のメンバー数による影響はありません。

問題2

データベース起動時に次のエラーが表示されました。v

ORA-00205: error in identifying controlfile

詳細情報を確認する方法を選択しなさい。

a.データディクショナリ
b.アラートログファイル
c.OSログファイル
d.ユーザートレースファイル

正解:b

解説

 ORA-00205エラーは、初期化パラメータCONTROL_FILESで指定された制御ファイルが検出できない場合に発生します。物理的なデータベースに関する障害情報は、アラートログファイル(正解b)に格納されます。

SQL> STARTUP
ORACLEインスタンスが起動しました。
Total System Global Area  222298112 bytes
Fixed Size                  1288676 bytes
Variable Size             146802204 bytes
Database Buffers           71303168 bytes
Redo Buffers                2904064 bytes
ORA-00205: ?????????????????????????????????????????
SQL> ALTER SESSION SET NLS_LANGUAGE=American;
Session altered.
SQL> ALTER DATABASE MOUNT;
ALTER DATABASE MOUNT
*
ERROR at line 1:
ORA-00205: error in identifying control file, check alert log for more info

 制御ファイルがマウントされないと、日本語メッセージが文字化けしてしまいます。その場合は、NLS_LANG環境変数を「American_America.JA16EUC」などのようにするか、上記のようにNLS_LANGUAGEパラメータを英語モードにするかでメッセージを確認できます。

 このようなエラーが発生したときは、「check alert log for more info」とあるとおり、アラートログファイルを確認する必要があります。アラートログには次のようなエラーが出力されています。

Sat Dec 23 01:48:04 2006
ALTER DATABASE   MOUNT
Sat Dec 23 01:48:04 2006
ORA-00202: control file: /.../oradata/orcl/control01.ctl'
ORA-27041: unable to open file
OSD-04002: ファイルをオープンできません
O/S-Error: (OS 2) 指定されたファイルが見つかりません。

問題3

100000レコードが格納された表をユーザーが誤って削除してしまいました。リカバリ方法を選択しなさい。

a.フラッシュバックテーブルを行う
b.Point-in-Timeリカバリを行う
c.フラッシュバックドロップを行う
d.その表が格納されていた表領域のリカバリを行う

正解:c

解説

 Oracle Database 10gより、誤って削除してしまった表は、フラッシュバックドロップ(正解c)によってリカバリできるようになりました。明示的にパージ(PURGEコマンド)したり、自動的にパージ(表領域の空き領域不足のため)が行われたりしなければ、復活が可能です。

 そのほかの選択肢の不正解の理由は次のとおりです。

●選択肢a:フラッシュバックテーブルは、誤ったトランザクション(DMLの実行)を取り消すために使用します。トランザクションをCOMMITしてしまっても、UNDOデータに残っていればリカバリが可能です。

 しかし、表が削除されている場合には使用できません。フラッシュバックドロップにて入れ物となる表を復活させておく必要があります。

●選択肢b:Point-in-Timeリカバリは、データベース全体を過去の一時点に戻すために使用します。削除された表を復活させるために使用することはできますが、フラッシュバックドロップの方が簡単に復活できます。パージしてしまったためにフラッシュバックドロップが使用できない場合に検討しましょう。

●選択肢d:表領域のバックアップをリストア、リカバリしても、表の削除も含めてロールフォワードされてしまい、表を復活させることにはなりません。表の削除を行う前にする必要があることを忘れないようにしましょう。


 以上で、「ORACLE MASTER Silver Oracle Database 10g」の取得に必要な知識を身に付ける本講座は終了です。非常に範囲が広い試験ですので、各章をよく確認し、実際の試験に役立ててください。

模擬問題をWebベースで学習できる@IT自分戦略研究所の新サービス「@IT資格攻略」では、「Silver DBA(Oracle10g)」をはじめOracle関連の資格をテーマとして取り上げています。「無料お試し版」もありますので、記事と併せてご覧ください。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。