※実行計画:SQL文を実行する際のアクセスパスのこと。例えば、索引を使うか否かなど。
なお、COMMITで保証する書き込みは、LGWRによるREDOログエントリの書き込みです。従って、データファイルへ変更が反映されているとは限りません。もし、データファイルへ変更が反映されていない状態でインスタンス障害が発生しても、COMMITが実行されていれば、REDOログエントリによりリカバリできることが保証されます。
COMMITで保証される書き込みはLGWRによる書き込みですが、データファイルへの変更がいつまでたっても保証されなければ、LGWRはREDOログバッファを上書きできません。
なぜなら、「データファイルに変更が書き込まれていない=リカバリ時に必要なREDOログエントリ」であるからです。従って、データファイルの変更は定期的にデータファイルに書き込まれる必要があります。それがチェックポイント(CKPT)です。チェックポイントにより、データベース・バッファ・キャッシュ上の変更はデータファイルへの反映が保証されます。チェックポイントは次のとおりに実行されます。
※SCN:SystemChangeNumberの略。SCNはトランザクションが終了すると必ず変更されるID。これにより、特定のSCNの時点でどこまでCOMMITが終了しているかが管理できる。人間でいうところの「タイムスタンプ」(時間)と同じイメージ。つまり、チェックポイントSCNとは、どこまで書き込みが終了しているかを示す情報である。
さて、Oracleアーキテクチャの復習はできましたか? 次にチェックテストを実施します。
SQL文実行時、クライアントにSQL結果を戻すプロセスを選択しなさい。
a.ユーザープロセス
b.サーバプロセス
c.PMON
d.チェックポイント
正解:b
●解説
ユーザープロセスはSQL文を発行できます。しかし、直接インスタンスと対話して処理することはできません。インスタンスと直接対話し実際の処理を行うのはサーバプロセスです。そして得られたSQL結果を、サーバプロセスがクライアントに戻します。なお、CKPTおよびPMONのいずれもバックグラウンドプロセスであるため、クライアントと対話することはありません。
データベースを再起動したところ、起動するのに時間がかかります。原因は停止モードであることが分かりました。起動に時間がかかった原因である停止コマンドを選択しなさい。
a.SHUTDOWN NORMAL
b.SHUTDOWN TRANSACTIONAL
c.SHUTDOWN IMMEDIATE
d.SHUTDOWN ABORT
正解:d
●解説
ABORTによる停止は、インスタンス障害と同じくメモリの変更をディスクに書き込まず、停止します。メモリとディスクの同期が取れていない状態で停止しますから、次回の起動時にインスタンスリカバリが実行されるため、起動に時間がかかります。停止モードに原因があることと、起動に時間がかかるという点から、ABORTによる停止が原因であることが分かります。よって「SHUTDOWN ABORT」が正解です。
もし、停止に時間がかかるのであれば、NORMALやTRANSACTIONALによる停止が原因であると予想できます。なるべく早く再起動を行いたい場合は、IMMEDIATEを選択すべきでしょう。ただし、終了していないトランザクションは強制的にロールバックされるため、処理途中の変更は取り消されます。
Oracle認定講師。データベース管理コース全般を担当し、主にパフォーマンスチューニング系のコースを受け持っている。日本オラクルより、Oracle University Excellent Instructor(2007年)、Oracle University Excellent Instructor(2006年)を受賞。また、『オラクルマスター教科書Gold Oracle Database11g編』を執筆。
Copyright © ITmedia, Inc. All Rights Reserved.