連載
» 2006年12月13日 00時00分 公開

ORACLE MASTER Silver DBA講座(3):Oracleデータベースの制御ツールを使い倒す

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

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

 前回「便利なツールでOracleデータベース作成」で、OracleインスタンスやOracleデータベースのアーキテクチャ、Database Configuration Assistant(DBCA)の特徴について学びました。今回から2回にわたって、データベースの制御について紹介します。

データベースの制御:データベースインターフェイス

ポイント

 Oracle Enterprise Manager、iSQL*Plus、lsnrctlコマンドラインユーティリティなどのツールによる起動や停止、管理コマンドが対象です。Bronze試験(参考:「ORACLE MASTER Bronze DBA講座」「ORACLE MASTER Bronze SQL基礎I 講座」)に必要な知識に加え、細かい引数や実行時に必要な事前設定なども確認しておきましょう。

データベースインターフェイス

Oracle Enterprise Manager

 Oracle Enterprise Manager Database Controlを使用するためには、事前にdbconsoleプロセスを起動しておく必要があります。

 dbconsoleプロセスを管理するには、emctlコマンドラインユーティリティを使用します。emctlコマンドラインユーティリティは、$ORACLE_HOME/binディレクトリに格納されており、環境変数ORACLE_SIDで識別されるデータベースのためのdbconsoleが対象となります。

 引数を指定せずにemctlコマンドラインユーティリティを起動すると、使用方法が確認できます。

$ emctl
TZ set to Japan
Oracle Enterprise Manager 10g Database Control Release 10.1.0.3.0
Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
Invalid arguments
Unknown command option
Usage::
  Oracle Enterprise Manager 10g Database Control commands:
        emctl start| stop| status| setpasswd dbconsole
        emctl secure <options>
        emctl set ssl test|off|on em
        emctl set ldap <host> <port> <user dn> <user pwd> <context dn>
emctl blackout options can be listed by typing "emctl blackout"
emctl config options can be listed by typing "emctl config"
emctl secure options can be listed by typing "emctl secure"
emctl ilint options can be listed by typing "emctl ilint"
emctl deploy options can be listed by typing "emctl deploy" 

 起動はstart、停止はstop、ステータス確認にはstatusを使用します。なお、Database Control用のOracle Management Agentは、dbconsoleプロセスの起動と停止を行うと自動的に起動または停止されます。

 dbconsoleプロセスが起動していれば、Webブラウザ経由でDatabase Controlページにアクセスできます。このとき使用するポート番号は、$ORACLE_HOME/install/portlist.iniファイルに記録されています。dbconsoleプロセス起動時のメッセージでも確認が可能です。

iSQL*Plus

 iSQL*Plusを使用するためには、iSQL*Plusサーバが起動している必要があります。iSQL*Plusサーバの管理には、isqlplusctlコマンドラインユーティリティを使用します。

 引数を指定せずにisqlplusctlコマンドラインユーティリティを起動すると、使用方法が確認できます。

$ isqlplusctl
iSQL*Plus 10.1.0.3.0
Copyright (c) 2004 Oracle. All rights reserved.
Invalid arguments
Unknown command option
Usage::
         isqlplusctl start| stop

 iSQL*Plusで接続に使用するポート番号も、$ORACLE_HOME/install/portlist.iniファイルに記録されています。

リスナー

 クライアントがリモートでOracleサーバに接続するには、リスナープロセスが起動している必要があります。リスナープロセスを管理するためのOracle Enterprise Manager、Oracle Net Manager、Oracle Net Configuration AssistantなどのGUIツールもありますが、ここではlsnrctlコマンドラインユーティリティを確認しておきましょう。

 引数を指定せずにユーティリティを起動するとLSNRCTLプロンプトが表示され、exitするまで各種管理コマンドを入力できます。

$ lsnrctl
		   
LSNRCTL for Linux: Version 10.1.0.3.0 - Production on 15-11月-2006 13:08:30
Copyright (c) 1991, 2004, Oracle. All rights reserved.
LSNRCTLへようこそ。詳細は"help"と入力してください。
LSNRCTL>
LSNRCTL> help
次の操作を使用できます。
アスタリスク(*)は修飾子または拡張されたコマンドを示します:
start               stop                status
services            version             reload
save_config         trace               spawn
change_password     quit                exit
set*                show*

 管理コマンドを引数として実行すれば、処理後にOSプロンプトに戻ることもできます。

 lsnrctlコマンドラインユーティリティの管理対象となるリスナーは、次の順位に従って決定されます。

  1. 引数で指定したリスナー
  2. 現行リスナー
  3. デフォルトリスナー

 現行リスナーとは、「SET CURRENT_LISTENER リスナー名」コマンドで指定したリスナーです。このコマンドを実行していない場合のデフォルトのリスナー名は「LISTENER」です。

LSNRCTL> show current_listener
現行のリスナーは、LISTENERです。
LSNRCTL> set current_listener L1
現行のリスナーは、L1です。
LSNRCTL> show current_listener
現行のリスナーは、L1です。

問題

問題1

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

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

正解:a

解説

 前回、宿題とした問題です。Oracleソフトウェアをインストールすると、$ORACLE_HOME/install/portlist.iniというファイルが作成されます(正解a)。このファイルには、iSQL*Plusで使用されるポート番号だけでなく、Oracle Enterprise Managerで使用されるポート番号(Database Control用)も格納されています。

 Oracle Enterprise Manager用のポート番号は、Oracle Enterprise Managerを構成(emcaコマンドラインユーティリティを使用)するたびに調整されます。

 不正解であるそのほかの選択肢のファイルは、Oracle Net関連の構成ファイルです。iSQL*Plusに関する設定は格納しません。

問題2

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

$ emctl start dbconsole
TZ set to Japan
Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0
Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
http://srv1.oracle.com:5500/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control ..........
started.
------------------------------------------------------------------
Logs are generated in directory /u01/app/oracle/product/10.1.0/db_1/srv1.oracle.com_prod/sysman/log

このコマンドを実行するために必要な環境変数を2つ選択しなさい。

a.ORACLE_SID
b.PATH
c.LD_LIBRARY_PATH
d.NLS_LANG

正解:a、b

解説

 emctlコマンドラインユーティリティは、$ORACLE_HOME/binディレクトリに格納されています。フルパスを指定せずに実行するためには、このディレクトリがPATH環境変数に含まれている必要があります。

 対象となるデータベースは、ORACLE_SID環境変数で指定したインスタンスとなります。

 従って、emctlコマンドラインユーティリティを使用する場合は、PATH環境変数(正解b)とORACLE_SID環境変数(正解a)が必要です。

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

選択肢c:LD_LIBRARY_PATH環境変数は、Oracleソフトウェアで使用する共有ライブラリの場所を指定する環境変数です。emctlコマンドラインユーティリティはPerlで作成されたスクリプトで、この中からJavaで作成されたライブラリを読み込んでいます。スクリプト内でLD_LIBRARY_PATH環境変数が設定されているため、明示的に指定する必要はありません。

選択肢d:NLS_LANG環境変数は、その端末で使用するメッセージや日付書式など、言語と地域に関連した情報とキャラクタセットを指定します。Database Controlで使用されるログファイルのキャラクタセットなどには影響を与えますが、emctlコマンドラインユーティリティを使用するために必須の環境変数ではありません。

問題3

L1という名前のリスナーを設定しました。リスナーコントロールユーティリティを使用して、L1が現在起動しているかどうか確認するコマンドを選びなさい。

a.status L1
b.services L1
c.status
d.services

正解:a

解説

 リスナーコントロールユーティリティ(lsnrctlコマンドラインユーティリティ)でリスナーが現在起動しているかどうかを調べるには、statusコマンドを使用します。

 リスナーコントロールユーティリティでは、対象とするリスナーを次の優先順位に従って決定します。

  1. 引数として指定されたリスナー
  2. set current_listenerコマンドで指定された現行リスナー
  3. デフォルトリスナー(LISTENERという名前のリスナー)

 問題文にあるリスナー名は「L1」であり、デフォルトリスナー(LISTENER)ではありません。set current_listenerというコマンドが実行されたという事実も記述されていないため、明示的にリスナー名を指定する必要があります(正解a)。

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

選択肢b:servicesコマンドは、リスナーが認識しているサービスを確認するコマンドです。このコマンド結果が表示されればリスナーが起動しているということになりますが、起動しているかどうかを調べるのであればstatusコマンドが適切です。

選択肢c、d:引数でリスナー名が指定されていないため、デフォルトリスナー(LISTENER)が対象となります。

宿題

 次回は今回に引き続き、「データベースの制御」を確認します。次の宿題を解いておいてください。

問題

次回のインスタンス起動時にインスタンスリカバリが必要ではない停止方法を選択しなさい。

a.標準(NORMAL)
b.標準(NORMAL)、トランザクション(TRANSACTIONAL)
c.標準(NORMAL)、トランザクション(TRANSACTIONAL)、即時(IMMEDIATE)
d.標準(NORMAL)、即時(IMMEDIATE)、中断(ABORT)

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



Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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