連載
» 2006年11月28日 00時00分 公開

ORACLE MASTER Silver DBA講座(2):便利なツールでOracleデータベース作成

ORACLE MASTER資格の中級に位置付けられ、取得すればOracle技術者としてグローバルに認定される「ORACLE MASTER Silver Oracle Database 10g」。例題を利用してポイントを押さえ、確実な合格を目指そう!

[有限会社 G.F.インフィニティ (Project - ∞)]

 前回「Oracleを適切にインストールするには」で、Oracleソフトウェアをインストールするための前提要件や環境構成について学びました。今回は、Oracleデータベースの作成について紹介します。

Oracle Databaseの作成

ポイント

 Oracleインスタンス、Oracleデータベースのアーキテクチャ、Database Configuration Assistant(DBCA)の特徴が対象となります。OracleインスタンスとOracleデータベースのアーキテクチャについては、Bronze試験(参考:「ORACLE MASTER Bronze DBA講座」「ORACLE MASTER Bronze SQL基礎I 講座」)よりも詳細な情報を理解しておくことが重要です。

Oracleデータベースの作成

REDOログバッファ、REDOログファイル、LGWR(ログライタ)

図1 REDOログバッファ、REDOログファイル、LGWRの役割 図1 REDOログバッファ、REDOログファイル、LGWRの役割

 REDOログファイルは、データに対する変更履歴を格納し、リカバリ処理に使用されるものです。

 REDOログファイルは「グループ」で構成されます。グループには1つ以上のREDOログファイルを含めることができ、1つのグループに複数のファイルが存在する場合は、それらは同じ内容を記述したコピーファイルです。グループを構成するこれらのファイルを「メンバー」と呼びます。

 グループへの書き込みは、LGWR(ログライタ)が行います。REDOログファイルが満杯まで書き込まれるか、明示的にコマンドによる切り替えが行われると、次のグループに書き込みを開始します。このような切り替えを「ログスイッチ」と呼びます。新しいグループには、「ログ順序番号」という内容を診断するための順序番号が新たに割り当てられ、循環して上書きされても、どの時点のREDOログエントリであるかが判断できるようになっています。

 LGWRは、グループ内の1つのメンバーにREDOログエントリを書き込むことができる限り、動作し続けることができます。

データベースバッファキャッシュ、データファイル、DBWn(データベースライタ)

図2 データベースバッファキャッシュ、データファイル、DBWnの役割 図2 データベースバッファキャッシュ、データファイル、DBWnの役割

 データファイルには、データベースが扱う実際のデータが格納されています。データはサーバプロセスによりデータベースバッファキャッシュに読み込まれ、データベースバッファキャッシュ上で問い合わせや更新処理が行われます。

 更新処理が行われたブロックは「使用済みバッファ」と呼ばれ、DBWn(データベースライタ)によってデータファイルに書き込まれます。データファイルへの書き込みは、チェックポイント(CKPTによる信号送信)時、データベースバッファキャッシュのメモリ不足時、データベース停止時(ABORTによる停止を除く)に行われます。

 コミット時にはデータファイルへの書き込みは行われません。コミット時は、LGWRによるREDOログファイルへの書き込みが行われているため、障害発生時はREDOログファイルからのリカバリ処理で対応できるようになっています。

Database Configuration Assistant(DBCA)

 Database Configuration Assistant(DBCA)というツールを使用して、データベースの作成、構成の変更、削除を行うことができます。

 データベースを作成する場合は、テンプレートという事前定義された情報を使用します(図3)。

図3 データベースのテンプレート選択(クリックで全体を表示します) 図3 データベースのテンプレート選択(クリックで全体を表示します)

 「カスタムデータベース」というテンプレートを使用すると、CREATE DATABASE文を発行する方法でデータベースが作成されます。すべてのパラメータを調整することが可能ですが、ある程度の知識が必要とされます。

 デフォルトで用意されている「データウェアハウス」「トランザクション処理」「汎用」は、データファイルを含むテンプレートなので、高速にデータベースを作成することができます。ただし、次のような条件があります。

  • データブロックサイズを変更することができない
  • REDOログファイルと制御ファイルのメンバー追加は可能だが、データファイルの追加はできない

 DBCAでデータベースを作成するデータファイルの場所は、デフォルトで「ファイルの位置変数」というものを使用して管理しています。これはORACLE_BASE環境変数を使用して導出されているため、環境変数の変更が必要な場合は、DBCAを一度終了して再起動する必要があります(図4)。

図4 ファイルの位置変数 図4 ファイルの位置変数

 既存のデータベースを基に、テンプレートを作成することも可能です。独自に作成したスキーマとオブジェクトを含まない「既存のデータベースを使用(構造のみ)」、もしくは独自に作成したスキーマとオブジェクトも含む「既存のデータベースを使用(データおよび構造)」を選択できます(図5)。

図5 テンプレートの管理(クリックで全体を表示します) 図5 テンプレートの管理(クリックで全体を表示します)

問題

問題1

銀行業務で使用するオンライン処理のための本番データベースを作成する計画があります。最適化された初期化パラメータ設定にてデータベースを作成する方法として、適切なものを選択しなさい。

a.Oracleソフトウェアに付属する初期化パラメータファイルのサンプルを編集して手動でデータベースを作成する
b.既存のデータベースから初期化パラメータファイルをコピーしてきて手動でデータベースを作成する
c.Database Configuration Assistant(DBCA)でトランザクション処理用のテンプレートを使用してデータベースを作成する
d.Database Configuration Assistant(DBCA)で汎用のテンプレートを使用してデータベースを作成する

正解:c

解説

 前回、宿題とした問題です。DBCAでは、テンプレートを選択してデータベースを作成することができます。用意されているテンプレートには次のものがあります。

  • トランザクション処理

多数のトランザクションを同時に実行する環境に適したデータベースを作成。通常、可用性、同時実行性、リカバリ可能性が重要視される。

  • データウェアハウス

大量のデータへの複雑な問い合わせを実行する環境に適したデータベースを作成。通常、応答時間や可用性が重要視される。

  • 汎用

トランザクション処理とデータウェアハウスの両方を実行する、汎用向けのデータベースを作成。

  • カスタムデータベース

可能な定義をすべて指示できるため、最大の柔軟性を提供したデータベースを作成。

 カスタムデータベースを除くテンプレートは、事前に最適化されたデータベースとして作成されたファイルを配置するだけなので、高速なデータベース作成ができます。

 初期化パラメータを独自に作成し、CREATE DATABASE文を使用してデータベースを作成することは、経験に依存する作業です。最適化されたデータベースを高速に作成するという意味では、DBCAを使用するのが適切です。また、問題には「銀行業務で使用するオンライン処理」とありますので、トランザクション処理用のテンプレートを使用するのが適切です(正解c)。

問題2

DBWnプロセスによって処理されていることを2つ選択しなさい。

a.データブロックをデータファイルからデータベースバッファキャッシュに読み込む
b.変更されたデータブロックをデータベースバッファキャッシュからデータファイルに書き込む
c.CKPTから信号が送られると処理を実行する
d.コミット時に処理を実行する

正解:b、c

解説

 DBWnプロセスは、データベースバッファキャッシュで変更されたデータブロックをデータファイルに書き込むプロセスです(正解b)。データベースバッファキャッシュの空き領域が不足したときや、チェックポイントの指示が行われたときに実行されます(正解c)。チェックポイントの指示はCKPTプロセスにより行われます。

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

選択肢a:サーバプロセスが行います。ユーザープロセスにより発行されたSQL文を実行するときに必要であれば、データファイルからデータブロックを読み込みます。

選択肢d:コミット時に処理を行うのはLGWRです。DBWnは、コミット時には処理を行いません。

問題3

本番用のPRODデータベースのレスポンスが悪いということで、調整用としてPRODデータベースを基にDEVデータベースを作ることを検討しています。Database Configuration Assistant(DBCA)を使用する場合の適切な方法を選択しなさい。

a.DEVデータベースを作成するときに、コピー元としてPRODデータベースを選択する
b.DEVデータベースを作成するときに、エクスポート元としてPRODデータベースを選択する
c.PRODデータベースを基に、構造のみを含むテンプレートを作成する
d.PRODデータベースを基に、データおよび構造を含むテンプレートを作成する

正解:d

解説

 DBCAによるデータベースの作成は、テンプレートを基に行います。テンプレートは既存データベースから作成することもでき、「データおよび構造を含む」テンプレートとして作成すれば、独自に作成したスキーマとオブジェクトも含まれます。

 問題のように既存のデータベースの完全なコピーを作成するのであれば、データおよび構造を含むテンプレートを作成し、そのテンプレートを使用して新しいデータベースを作成します(正解d)。

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

選択肢a、b:DBCAによるデータベース作成時は、既存のテンプレートを選択する必要があります。選択肢のような方法は存在しません。

選択肢c:構造のみを含むテンプレートの場合、スキーマやデータが含まれません。問題のような調整用のデータベースでは、SQLチューニングのためのデータも必要と考えられます。

宿題

 次回から2回にわたって、「データベースの制御」を確認します。次の宿題を解いておいてください。

問題

インストールの際に、iSQL*Plusで使用されるポート番号を控えておくのを忘れてしまいました。ポート番号を確認することのできるファイルを選択しなさい。

a.portlist.ini
b.listener.ora
c.tnsnames.ora
d.sqlnet.ora

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



Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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