連載
» 2005年06月17日 00時00分 UPDATE

ORACLE MASTER Bronze DBA講座(2):はじめてのOracleインストールとデータベース作成

Oracleデータベースエンジニアとしての実力を証明するORACLE MASTER資格。その入り口であるBronze資格の取得は難しくない。本連載と、同時掲載中の連載「Bronze SQL基礎I 講座」で合格を目指そう!(参考記事:「Oracle 10g対応のORACLE MASTERとは?」)

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

 前回「Oracleデータベース構造の基本」で、リレーショナルデータベースの基本を紹介しました。今回は、Oracleソフトウェアのインストールから学んでいきましょう。

理解しておきたいこと

1. 確認しておきたい内容

  • Oracleソフトウェアのインストール
  • データベースの作成

2. Oracleソフトウェアのインストール

 Oracleソフトウェアをインストールするには、Oracle Universal Installer(OUI)を使用します。OUIでは、インストール時に前提条件を満たしているかどうかの自動チェック(ハードディスクの容量、メモリ容量など)を行います。そのため、インストール前に、プラットフォームごとに用意されているインストレーションガイドを確認しておきましょう。

 UNIX環境の場合は、インストール中にrootユーザーにて、次の2つのスクリプトを実行する必要があります。事前にroot権限が取得できるようにしておいてください。

  • oraInstRoot.sh: インベントリ(製品の詳細目録)の場所や所有グループのためのファイル作成
  • root.sh: Oracleソフトウェアのシステムファイルの作成やリンクなど

問題

問題1

Oracleソフトウェアをインストールする前に確認しておくべきことを2つ選択してください。

a. 100Mbpsのネットワークカードを準備する
b. 十分な物理メモリを準備する
c. Oracleモジュールをインストールするために必要なハードディスク容量を準備する
d. CD-ROMドライブを準備する

正解:b、c

解説

 Oracleソフトウェアは、一般的なソフトウェアと同じようにハードディスク上にソフトウェア(Oracleモジュールと呼ぶ)をインストール、起動して使用します。そのため、十分なハードディスク容量が必要です(正解c)。起動時には、共有メモリ内にOracleサーバで使用するメモリ(System Global Areaと呼ぶ)を割り当て、各種プロセス(バックグラウンドプロセスと呼ぶ)を起動します。これらのメモリとプロセスを総称して「Oracleインスタンス」と呼びます。Oracleインスタンスを起動するために十分なメモリも必要ですね(正解b)。Oracleインスタンスの管理に関しては、この先の連載第5回「Oracleインスタンスの管理」で紹介する予定です。

 一般的にOracleサーバは、クライアント/サーバ形式か、アプリケーションサーバを中間層に配置した3階層などで使用されるためネットワークは必要ですが、選択肢aにあるような100Mbpsである必要はありません。10Mbpsでもギガビットネットワークでも稼働します。

 選択肢dのCD-ROMは必須ではありません。事前にハードディスクにCD-ROM内のファイルをコピーしておいて、ハードディスク内からインストーラを起動することも可能です。

問題2

OSにLinuxを使用した環境において、OracleソフトウェアをインストールするときにOS管理者ユーザーにて実行する必要のあるスクリプトを2つ選択しなさい。

a. oraenv
b. coraenv
c. root.sh
d. oratab
e. oraInstRoot.sh

正解:c、e

解説

 Oracleソフトウェアをインストールするとき、UNIX系OSでは、インストール時にorainstRoot.shとroot.shの2つのファイルをrootユーザーにて実行します。

 また関連ファイルとして、root.shで作成される「oratab」ファイルについても覚えておいてください。oratabファイルには、Oracleソフトウェアをインストールしたディレクトリ(ORACLE_HOME)と、使用するOracleインスタンスの名前(ORACLE_SID)が格納されます。このファイルは、dbstartとdbshutというシェルスクリプトにてOracleサーバを起動/停止するときに使用されます。

 UNIX系のOSにOracleソフトウェアをインストールしたことがあれば、簡単に答えられる問題です。Windowsユーザーの方は、ファイル名とその内容について覚えておくようにしましょう。

3. Oracle環境に必要な環境変数

 Oracleソフトウェアをインストールして使用するには、次の環境変数を設定します。

環境変数 説明
ORACLE_BASE Optimal Flexible Architecture(OFA)のディレクトリ推奨構造に従うために、ベースとなるディレクトリを指定する。この配下にORACLE_HOMEを作成することで、アップグレードや複数のOracleバージョンの管理を容易にする
例:/app/oracle
ORACLE_HOME Oracleソフトウェアを格納するディレクトリを指定する。OFAに従い、ORACLE_BASE配下に作成するのが推奨
例:$ORACLE_BASE/product/10.1.0/db_1
ORACLE_SID Oracleデータベースに対応するOracleインスタンスの識別名
例:ORCL
LD_LIBRARY_PATH 共有オブジェクトライブラリの検出パス。ORACLE_HOME/libを含めるようにする
例:$ORACLE_HOME/lib

問題

問題1

Oracleの環境変数と説明の組み合わせとして正しいものを2つ選択しなさい。

a. ORACLE_BASE:Optimal Flexible Architectureに基づくディレクトリ構造のルートディレクトリを指定
b. ORACLE_BASE:Oracleホームとなるディレクトリの指定
c. ORACLE_SID:Oracleインスタンス名
d. ORACLE_SID:グローバルデータベース名
e. ORACLE_HOME:OSユーザーoracleのホームディレクトリ
f. ORACLE_HOME:oraInventoryディレクトリの場所

正解:a、c

解説

 前回、宿題とした問題です。Oracleの環境変数は、環境を構築するうえでも重要ですので、正しく覚えておきましょう。正解aと正解cは、選択肢どおりですので、不正解となった理由を解説しましょう。

  • 選択肢b:ORACLE_BASEは、Oracleホームとなるディレクトリのベースとなるディレクトリを指定する環境変数です。正解aのとおり、OFAに従うためにも通常、ORACLE_BASEを決定しておきます。Oracleホームとなるディレクトリを指定するのは「ORACLE_HOME」です。
  • 選択肢d:ORACLE_SIDは、Oracleインスタンスの名前です。グローバルデータベース名は、Oracleリスナーで認識するサービス名です。Oracleデータベースの初期化パラメータ「service_names」で指定します。Oracleリスナーなどに関しては、この連載の先の第4回「ネットワーク環境の構成」で解説する予定です。
  • 選択肢e、選択肢f:ORACLE_HOMEは、Oracleソフトウェアをインストールするディレクトリです。選択肢eのOSユーザーのホームディレクトリを指定するのは、「HOME」ですね。また、選択肢fのoraInventoryディレクトリを指定する環境変数は特にありません。デフォルトでは、ORACLE_BASE環境変数で識別されるディレクトリ配下に「oraInventory」ディレクトリが作成されます。

4. Oracle環境に必要な環境変数

 データベースの作成は、CREATE DATABASE文を使用するか、Database Configuration Assistant(DBCA)を使用します。DBCAでは、テンプレートを基に新規のデータベースを作成します。テンプレートには、次のタイプが用意されています。

デフォルトのテンプレート 説明
データウェアハウス 大量のデータに対して複雑な問い合わせを実行する環境に適したデータベース。通常、応答時間や可用性が重要視される
トランザクション処理 多数のトランザクションを同時に実行する環境に適したデータベース。通常、可用性、同時実行性、リカバリ可能性が重要視される
汎用 トランザクション処理とデータウェアハウスの両方を実行するような汎用向けのデータベース
カスタム・データベース データベース定義を一から作成できるため、最大の柔軟性を提供したデータベース

 「カスタム・データベース」テンプレート以外は、物理データベース構造のファイルを含んでいるため高速にデータベースを作成できますが、標準データブロックの変更などはできません。

 また、既存データベースを元に新規のテンプレートを作成し、そのテンプレートから新規データベースを作成することで、既存データベースのクローンデータベースを高速に作成できます。

問題

問題1

次の資料を確認してください。

r5fig1.gif

Database Configuration Assistant(DBCA)を使用して新規にデータベースを作成しようとしたところ、資料にあるようにブロックサイズを選択できませんでした。この理由として適切なものを選択しなさい。

a. Oracle Universal Installer(OUI)にてインストールを行うときにしか、ブロックサイズの変更はできない
b. Grid Controlを使用することを選択していない
c. ファイル・システムを使用することを選択していない
d. カスタム・データベースを作成するテンプレートを選択していない
e. BLOCK_SIZE初期化パラメータが設定されていないため

正解:d

解説

 ウィザード形式でデータベースを作成するには、DBCAを使用します。DBCAでは、どのようなデータベースを作成するかはテンプレート次第となっています。データファイルも含められるテンプレートと、カスタムデータベースを作成するテンプレートがありますが、問題としているブロックサイズを含めたすべてのオプションを指示するのであれば、「カスタムデータベース」のテンプレートを使用する必要があります(正解d)。

 選択肢aのOUIを使用したインストール時も、どのようなデータベースをインストールと同時に作成したいか指定できますが、ブロックサイズも含めて指定するのであれば、カスタムデータベースを選択してください。

 選択肢bのGrid Controlを使用するかどうかは関係ありません。Grid Controlに関しては、次回の「Oracle Enterprise Manager Database ControlとSQL*Plusの使用」で解説します。

 選択肢cのファイルシステムを使用するかどうかも関係ありません。Oracleデータベースを作成する場合に、ファイルシステムのほかにASM(Automatic Storage Management)というOracleサーバが管理するファイルシステムがあるのですが、カスタムデータベースであれば、どちらの場合でもブロックサイズを指定することができます。

 選択肢eのBLOCK_SIZE初期化パラメータにて、Oracleデータベースのブロックサイズを指定できるのですが、この初期化パラメータを変更できるのは、カスタムデータベースを作成するときです。

問題2

Database Configuration Assistant(DBCA)のテンプレートと説明の組み合わせとして正しいものを2つ選択しなさい。

【テンプレート】
1. データ・ウェアハウス
2. トランザクション処理
3. 汎用
4. カスタム・データベース

【説明】
A. 最大の柔軟性を提供したデータベース
B. 多数のトランザクションを同時に実行する環境に適したデータベース
C. オールマイティなデータベース
D. 大量のデータに対する複雑な問い合わせを実行する環境に適したデータベース

a. 1-D
b. 3-A
c. 2-C
d. 4-C
e. 2-B
f. 1-A

正解:a、e

解説

 この問題の正しい組み合わせは次のようになります。

1-D、2-B、3-C、4-A

 トランザクション処理(OLTP)とデータウェアハウスの違いなどは正しく理解しておくようにしましょう。

問題3

クローンデータベースを作成することになりました。そのマシンで最も高速にクローンデータベースを作成するにはどうしたらよいでしょうか。

a. Database Configuration Assistant(DBCA)にて「汎用」データベースのテンプレートを元にデータベースをカスタマイズしてSQLスクリプトを作成し、そのSQLスクリプトを実行してデータベース作成する
b. Database Configuration Assistant(DBCA)にて「カスタム・データベース」を使用して、現在のデータベースと同じパラメータを設定し、作成する
c. Database Configuration Assistant(DBCA)にて現在のデータベースをテンプレート化し、そのシード・データベースを使用してデータベースを作成する
d. 現在のデータベースを作成したときのSQLスクリプトを使用する

正解:c

解説

 DBCAでは、データベースを新規作成するだけでなく、既存のデータベースをテンプレート化することもできます。正解cのとおり、DBCAにて既存のデータベースをテンプレート化して、そのテンプレートを使用して新規データベースを作成すれば、簡単にデータベースのコピー(クローン)が作成できます。このようなデータファイルも含まれたテンプレートのことを「シードデータベース」と呼びます。

 選択肢aの「汎用」テンプレートもシードデータベースのため、CREATE DATABASE文を使用して新規データベースを作成するスクリプト化はできません。SQLスクリプトを作成するのであれば、「カスタムデータベース」を使用します。そうなると、選択肢bは流れとして間違っているわけではないのですが、現在のデータベースのコピーにはなりません。なぜなら、現在のデータベースに含まれているオブジェクトはコピーできないからです。同じことがいえるのが、選択肢dで、SQLスクリプトを使用してデータベースを作成すると、データベース作成直後の状態にはなりますが、既存のオブジェクトのコピーなどは別作業になってしまいます。

まとめ

 次の内容をチェックしておきましょう。

  • Oracleデータベースをインストールするために必要なリソース
  • Oracleソフトウェアをインストールするときに実行するスクリプト(oraInstRoot.shとroot.sh)
  • Oracleデータベースに関する環境変数(ORACLE_SID、ORACLE_BASE、ORACLE_HOMEなど)
  • DBCAの各種テンプレートの特徴について

宿題

 次回は、「3. Oracle Enterprise Manager Database ControlとSQL*Plusの使用」を確認します。次の宿題を解いておいてください。

問題

ホスト名がmyhost、ドメイン名がdomainのマシンにインストールされたOracleデータベースに、デフォルトのポートを使用してEnterprise Manager Database ControlへアクセスしているURLを選択しなさい。

a. http://myhost.domain:5500
b. http://myhost.domain:1521/em
c. http://myhost.domain:5500/em
d. http://myhost.domain/em

IT資格試験の模擬問題をWebベースで学習できる@IT自分戦略研究所の新サービス「@IT資格攻略」では、Oracle関連の資格をテーマとして取り上げています。Bronze SQL 基礎 I、Bronze DBA 10gも近日中に追加予定です。「無料お試し版」もありますので、記事と併せてご覧ください。



Copyright© 2017 ITmedia, Inc. All Rights Reserved.

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

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

メールマガジン登録

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