ORACLE MASTER資格の中級に位置付けられ、取得すればOracle技術者としてグローバルに認定される「ORACLE MASTER Silver Oracle Database 10g」。例題を利用してポイントを押さえ、確実な合格を目指そう!
前回「便利なツールで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コマンドラインユーティリティの管理対象となるリスナーは、次の順位に従って決定されます。
現行リスナーとは、「SET CURRENT_LISTENER リスナー名」コマンドで指定したリスナーです。このコマンドを実行していない場合のデフォルトのリスナー名は「LISTENER」です。
LSNRCTL> show current_listener 現行のリスナーは、LISTENERです。 LSNRCTL> set current_listener L1 現行のリスナーは、L1です。 LSNRCTL> show current_listener 現行のリスナーは、L1です。
インストールの際に、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に関する設定は格納しません。
次のコマンドを確認してください。
$ 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コマンドラインユーティリティを使用するために必須の環境変数ではありません。
L1という名前のリスナーを設定しました。リスナーコントロールユーティリティを使用して、L1が現在起動しているかどうか確認するコマンドを選びなさい。
a.status L1
b.services L1
c.status
d.services
正解:a
リスナーコントロールユーティリティ(lsnrctlコマンドラインユーティリティ)でリスナーが現在起動しているかどうかを調べるには、statusコマンドを使用します。
リスナーコントロールユーティリティでは、対象とするリスナーを次の優先順位に従って決定します。
問題文にあるリスナー名は「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.