Oracleデータベースの管理ツールを使うORACLE MASTER Bronze DBA講座(3)

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

» 2005年07月22日 00時00分 公開
[有限会社 G.F.インフィニティ (Project - ∞)]

 前回「はじめてのOracleインストールとデータベース作成」で、Oracleソフトウェアのインストールとデータベースの作成について学びました。今回は、Oracle Enterprise ManagerやSQL*Plusを使用したデータベースの管理方法を紹介します。

Oracle Enterprise Manager Database ControlとSQL*Plusの使用

理解しておきたいこと

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

  • dbconsoleプロセスの起動
  • Database Controlへのアクセス
  • Database Controlのナビゲーション
  • Database Controlへの管理権限の付与
  • SQL*PlusおよびiSQL*Plusを使用したデータベースアクセス

2. Oracle Enterprise Managerの環境

 Oracle Database 10gのデータベースには、Webブラウザからアクセスする管理ツール、Oracle Enterprise Managerが用意されています。Oracle Enterprise Managerでは、Grid ControlとDatabase Controlの2種類の環境を構成できます。

●Grid Control

図1 Grid Control構成図 

 Grid Controlを使用すると、複数のOracle環境を一元的に管理できます。管理できる対象にはデータベースだけでなく、Oracle Application Serverなども含まれます。

 Grid Controlの使用には、中間層として動作するOracle Management Serverと、管理情報を格納する管理リポジトリの構成が必要です。管理される側のデータベースなどには、エージェントと呼ばれる実際の作業を行うプロセスをインストールし、起動しておくことが必要です。

●Database Control

図2 Database Control構成図 図2 Database Control構成図

 Database Controlでは、1つのデータベースに対して1つ用意されるdbconsoleプロセスが管理を行います。

 dbconsoleを起動するには次のコマンドを実行します。

$ emctl start dbconsole

 起動中のdbconsoleに再度startキーワードを使用すると、再起動するかを確認するメッセージが出ますので、起動中かどうか確認できます。startの代わりにstatusキーワードを使用すれば、起動中かどうかを含め、現在の状況を確認できます。

 startやstatus結果からは、Database ControlにアクセスするためのURLも確認できます。

$ emctl start dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0
Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
http://hostname:5500/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control ...OracleDBConsoleorcl サービスを開始します.....

問題

問題1

Oracle Enterprise Manager Database Controlが起動しているかどうかを確認できるコマンドを2つ選択してください。

a.emctlコマンドを実行する
b.emctl secureコマンドを実行する
c.emctl start dbconsoleコマンドを実行する
d.emctl status dbconsoleコマンドを実行する

正解:c、d

解説

 Database Controlは、WebブラウザからOracleサーバを管理できるツールで、Webブラウザからアクセスするためのプロセスが必要です。このプロセスはdbconsoleと呼ばれ、emctlコマンドラインユーティリティで制御できます。

 基本的に、dbconsoleプロセスが起動済みかどうかを確認するには、emctl status dbconsoleコマンドを使用します(正解d)。

D:\>emctl status dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0
Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
http://hostname:5500/em/console/aboutApplication
Oracle Enterprise Manager 10g is running.
-----------------------------------
Logs are generated in directory D:\oracle\product\10.1.0\db_1/hostname_orcl/sysman/log

 emctl start dbconsoleコマンドは、dbconsoleプロセスを起動するコマンドですが、プロセスが起動済みの場合は、起動済みという情報を表示します(正解c)。

D:\>emctl start dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0
Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
http://hostname:5500/em/console/aboutApplication
Agent Version : 10.1.0.2.0
OMS Version : 10.1.0.2.0
Protocol Version : 10.1.0.2.0
Agent Home : D:\oracle\product\10.1.0\db_1\hostname_orcl
Agent binaries : D:\oracle\product\10.1.0\db_1
Agent Process ID : 1880
Agent Process ID : 1880
Agent URL : http://hostname:1830/emd/main
Started at : 2005-03-22 22:47:44
Started by user : SYSTEM
Last Reload : 2005-03-22 22:47:44
Last successful upload : 2005-03-26 21:03:31
Total Megabytes of XML files uploaded so far : 110.69
Number of XML files pending upload : 0
Size of XML files pending upload(MB) : 0.00
Available disk space on upload filesystem : 2.35%
Agent is already started. Will restart the agent
This will stop the Oracle Enterprise Manager 10g Database Control process. Continue [y/n] :n

 emctl secureコマンドは、dbconsoleプロセスへの接続時にhttpではなくhttpsを使うように構成するコマンドです(選択肢b)。

 「emctlコマンドを実行する」でも間違っているわけではありませんが、キーワードが指定されておらず不明確です(選択肢a)。このような場合は、明確なものを選択するようにしましょう。

3. Database Controlへのアクセス

 dbconsoleプロセスが起動していれば、ブラウザからDatabase Controlにアクセスできます。使用するポートは、emctl start dbconsoleコマンド、またはemctl status dbconsoleコマンドで確認できます。また、$ORACLE_HOME/install/portlist.iniファイルからも確認できます。

Enterprise Manager Console HTTP Port (orcl) = 5500

 1つ目のデータベースは5500、2つ目以降は5501、5502のようにポート番号が割り当てられます。

http://hostname:5500/em

 接続すると、ログイン画面が表示されます。初期状態でアクセスできるのは、SYS、SYSTEM、SYSMANのいずれかです。SYSの場合は、SYSDBA接続モードで接続します。

問題

問題1

Oracle Enterprise Manager Database Controlがデフォルト以外のポート番号を使用しているようです。どのポート番号を使用しているかを確認するにはどのコマンドを使用したらよいですか。

a.init.oraファイルにてポート番号を確認する
b.tnsnmaes.oraファイルにてどのポートを使用しているか確認する
c.emctl status dbconsoleコマンドを使用し、結果として出力されたメッセージから確認する
d.ORACLE_EM_PORT環境変数を確認する

正解:c

解説

 Database Controlが使用するポート番号は、$ORACLE_HOME/install/portlist.iniファイルにて確認します。emctlコマンドでも確認できます(正解c)。

D:\>emctl status dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0
Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
http://hostname:5500/em/console/aboutApplication
Oracle Enterprise Manager 10g is running.
-----------------------------------
Logs are generated in directory D:\oracle\product\10.1.0\db_1/hostname_orcl/sysman/log

 init.oraファイルは、テキストベースのOracleサーバの初期化パラメータファイルのことです(選択肢a)。このファイル内には、Database Controlに関する情報は格納されていません。init.oraファイルに関しては「Oracleインスタンスの管理」で解説します。

 tnsnames.oraファイルは、Oracleサーバにネットワーク接続する環境を構成するためのファイルです(選択肢b)。このファイル内にも、Database Controlに関する情報は格納されていません。tnsnames.oraファイルに関しては「ネットワーク環境の構成」で解説します。

 ORACLE_EM_PORTという環境変数は存在しません(選択肢d)。

問題2

ホスト名が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

正解:c

解説

 前回、宿題とした問題です。Database Controlに接続するためのURLは「http://myhost.domain:5500/em」です(正解c)。これに関しては暗記してくださいとしかいえません。頑張って覚えておきましょう。

 「/em」を忘れたり(選択肢a)、「:5500」を忘れたり(選択肢d)しないようにしてくださいね。ポート1521は、Oracleリスナーのデフォルトポートです(選択肢b)。Oracleリスナーに関しては、「ネットワーク環境の構成」で解説します。

4.Database Controlの管理者権限

 Database Controlへアクセスできる管理者ユーザーは、Oracleユーザーでもあります。Database Controlの「設定(管理)」→「管理者」サブタブにて管理者とするOracleユーザーを選択することで、そのユーザー名とパスワードでDatabase Controlに接続し、任意の管理タスクが実行できるようになります(図3)。

図3 Database Control設定画面 図3 Database Control設定画面

 管理者には、Database Controlからアラート(警告)を通知することができます。通知設定を行った後、一時的に通知を停止したい場合は、「ブラックアウト」という設定を行います。例えば、システムメンテナンスのためにデータベースの停止が分かっているときなどは、ブラックアウトを設定しておくことで、通知を行わせないことができます。

問題

問題1

Oracle Enterprise Manager Database Controlにて管理者ユーザーを作成しました。このユーザーの状態を選択しなさい。

a.システム権限のみが付与された状態である
b.許可されたオブジェクトに対するオブジェクト権限のみが付与された状態である
c.パスワードは期限切れとなっており、アカウントロックされている
d.Oracle Enterprise Manager Database Controlにログインすることで、任意の管理タスクを実行できる

正解:d

解説

 Database Controlの管理者とは、その名のとおり、Database Controlに接続してOracleサーバを管理できるユーザーです(正解d)。管理者ユーザーもOracleユーザーですので、Database Control管理者を作成するときは、既存のOracleユーザーを使用するか、新規にOracleユーザーを作成することになります。

 Database Control管理者の設定を行うことで、そのOracleユーザーにはMGMT_USERというロールとSELECT ANY DICTIONARYというシステム権限が割り当てられます。システム権限のみ(選択肢a)やオブジェクト権限(選択肢b)ではありません。また、管理者として作成されたユーザーは即時に使用可能なOracleユーザーとなります(選択肢c)。

問題2

管理者にデータベースの状態を通知することを一時的に停止する方法を選択しなさい。

a.ブラックアウト
b.シャットダウン
c.バーンアウト
d.プリファレンス
e.ストップ

正解:a

解説

 Database Control関連の用語は覚えておいてください。管理者への通知機能を一時停止する機能はブラックアウトです(正解a)。

 シャットダウンはデータベースを停止するときに使用される用語です(選択肢b)。プリファレンスとは「設定(環境)」のことです(選択肢d)。Database Control管理者への通知設定を行うときには、プリファレンスページを使用します。

 バーンアウト、ストップという用語は、Database Controlでは使用されません(選択肢c、e)。

5.SQL*PlusとiSQL*Plus

 データベースの管理には、SQL*PlusまたはiSQL*Plusというコマンドラインツールを使用することもできます。

 SQL*Plusはクライアントにインストールして使用するアプリケーションで、次のように起動します。

$ sqlplus /nolog
SQL*Plus: Release 10.1.0.2.0 - Production on 金 7月 22 23:43:10 2005
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL> connect / as sysdba

 iSQL*Plusは、iSQL*Plus Serverを使用し、クライアントからはWebブラウザ経由で接続します。事前にiSQL*Plusのリスナープロセスをサーバで起動させておく必要があります。

$ isqlplusctl start

 Database Control同様、$ORACLE_HOME/install/portlist.iniファイルを確認すれば、iSQL*Plusのポート番号が確認できます。

iSQL*Plus HTTPポート番号 =5560

 確認したポート番号を使用して、iSQL*Plusに接続します。

http://hostname:5560/isqlplus

問題

問題1

インストールの際に、iSQL*Plusのポート番号を控えておくのを忘れました。ポート番号を確認するファイルはどれですか。

a.portlist.ini
b.lister.ora
c.tnsnames.ora
d.sqlnet.ora
e.spfile.ora

正解:a

解説

 Database ControlやiSQL*Plusへの接続に使用するポート番号は、$ORACLE_HOME/install/portlist.iniで確認できます(正解a)。覚えておいてください。

 lister.ora、tnsnames.ora、sqlnet.oraファイルは、Oracleサーバへのネットワーク接続構成時に使用します(選択肢b、c、d)。いずれのファイルも「ネットワーク環境の構成」で解説します。

 spfile.oraは、Oracleサーバの初期化パラメータを定義するファイルです(選択肢e)。「Oracleインスタンスの管理」で解説します。

まとめ

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

  • Database Controlを使うためのプロセス(dbconsole)の管理は、emctlコマンド(emctl start dbconsole、emctl status dbconsole)で行う
  • Database ControlやiSQL*Plusへの接続ポートは、$ORACLE_HOME/install/portlist.iniファイルで確認する
  • Database Controlへの接続URL(http://hostname:5500/em)
  • Database Control管理者について(通知の一時停止はブラックアウトなど)

宿題

 次回は、「ネットワーク環境の構成」を確認します。次の宿題を解いておいてください。

問題

クライアントからデータベースにOracle Netを使用して接続する場合の説明として正しいものを2つ選択しなさい。

a.簡易接続を使用するとローカルなファイルを使用して接続する
b.ローカルネーミングは、tnsnames.oraファイルを使用して接続する
c.ディレクトリネーミングは、LDAPサーバで管理されている情報を使用して接続する
d.ディレクトリネーミングは、tnsnames.oraファイルを使用して接続する
e.ローカルネーミングは、外部のOracle以外のサービスを使用して接続する

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



Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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