ここまでの作業でOracleデータベースは立ち上がった状態で、インストールは終了している。しかしながら、システム(Solarisオペレーティング・システム)の起動と、データベースの起動とは連動していないので、このままの状態ではシステムをリブートしても、Oracleを手順どおりに停止して、起動することはできない。
Oracleの停止、起動は手入力で行えるが、煩瑣である。このため、oracle データベースの起動・停止をするスクリプトを作成して、それをシステムからコールさせるようにする。
システムはランレベルが移行すると、それに対応した特定のディレクトリと名称のスクリプトをコールするようになっている、そのスクリプトをrcスクリプトと呼んでいる。システムレベルの動作をrcスクリプトはOracleデータベースに中継して、両者を連動させる。
以降の操作はクライアントのtelnetから、ルート権限において行う。
- 構成スクリプトの実行
- 起動スクリプトの作成
- oratabの編集
- シンボリックリンクの作成
- SQL*Plusの動作確認
- ウェブベースの管理ツールの動作確認
- Oracle Enterprise Manager
- iSQL*Plus
- iSQL*Plus DBA
- Oracle Enterprise Managerの動作確認
- SYS データベースの管理ユーザー
- SYSTEM データベースの管理ユーザー
- SYSMAN OEMの管理者ユーザー
- iSQL*Plusの動作確認
- iSQL*Plus DBAの動作確認
インストールの途中で、指示されていた構成スクリプトを実行することにより、製品の詳細目録であるインベントリ・ポインタ・ファイルを作成して、/usr/local/bin以下に実行ファイルをコピーして、Oracle起動に関する定義情報$ORACLE_HOME/install/oratabを作成する。
次のタイプをしてrootユーザーになり、パスワードをタイプする。次に構成スクリプトをタイプして実行する。
途中で下記プロンプトが出たら「Enter」を押す。
oracleユーザーが、データベースの起動・停止を行うシェルスクリプトは、すでに用意されているdbstart、dbshutであり、それらを利用すれば良い事になるが、システムのランレベルからコールされて、それらと中継を行うrcスクリプトが無いので新規作成する。
作成するrcスクリプトの処理内容は「/etc/init.d」以下にある他のrcスクリプトと同じように、start 引き数と stop 引き数の両方を受け付けて、それに対応する下位プログラムをコールするものだ。
rcスクリプト名を慣習的に「dbora」として、「/etc/init.d」にセーブする。注意点は、下位シェルスクリプトはbash構文であるが、それを指示するシバン(shebang)行、すなわち「#!/bin/bash」が文頭に欠けているので、「dbora」が明示してコールする必要がある。
次のようにviで/etc/init.d/dboraを新規に作成して、実行権限を与える。次の行を追加して、セーブする。
実行権限を与える。
dboraが呼び出す、下位スクリプトdbstart (起動用スクリプト) と、dbshut (停止用スクリプト)はoratabを読み込み、末尾がY(自動起動する)になっていると、起動の場合はインスタンスのリスナーを起動させて、インスタンス自体を起動する。停止の場合はインスタンスのリスナーを停止させて、インスタンス自体を停止する。
Oracle起動に関する情報を定義したoratabは、先に実行した構成スクリプト(root.sh)によって作成された。書式は次のとおりである、その末尾のフィールドが自動起動をN(しない)の指定になっているので、Y(する)に修正する。
[$ORACLE_SID] [$ORACLE_HOME] [Y|N ]
次のタイプをしてoratabファイルのオリジナルのコピーを取り、viを起動する。
# cp -p
/var/opt/oracle/oratab /var/opt/oracle/oratab.org
# vi
/var/opt/oracle/oratab
orcl:/opt/app/oracle/product/10.2.0:N’の行末の’N’を’Y’に変更して保存する。
orcl:/opt/app/oracle/product/10.2.0:N
↓
orcl:/opt/app/oracle/product/10.2.0:Y
起動スクリプト、すなわちrcスクリプトの実体は作成したので、それに対して、シンボリックリンクを張り、ランレベルが移行した際に実行するようにする。
/etcディレクトリ以下には、各ランレベルに対応したディレクトリrc0.d、rc1.d、rc2.d、rc3.d、rcS.dが用意されているので、そのうちの適切なレベルにシンボリックリンクを作成する。なお、同ディレクトリにあるrc0~rcSはシンボリックリンクを呼び出す親であり、これもまたシンボリックリンクで/sbin以下の実体のスクリプトを呼び出す。
シンボリックリンクのファイル名は、頭1桁目が「K」の場合は、終了を表し引数「stop」を加えてコールされる、「S」の場合は開始を表し引数「start」が加えられる。続く2桁の数字は実行順序を表す。
次のタイプをしてシンボリックリンクを作成する。
# ln -s
/etc/init.d/dbora /etc/rc0.d/K10dbora
# ln -s
/etc/init.d/dbora /etc/rc3.d/S99dbora
停止
/var/opt/oracle/oratab | ||||||||
↓ | ||||||||
init 0 | → | … | → | /etc/rc0.d/K10dbora stop | → | /etc/init.d/dbora stop | → | $ORACLE_HOME/bin/dbshut $ORACLE_HOME |
開始(起動)
/var/opt/oracle/oratab | ||||||||
↓ | ||||||||
init 3 | → | … | → | /etc/rc3.d/S99dbora start | → | /etc/init.d/dbora start | → | $ORACLE_HOME/bin/dbstart $ORACLE_HOME |
インストールが完了すればOracleは起動している状態で、最も基本的な対話型の問い合わせツールであるSQL*Plusは使用可能になっている。Oracle インストールが無事終了したことの確認と、後のテストで使用するのでscott/tigerでログインできるように、「scott」ユーザーを有効にしておく。
oracleユーザーに切り替える
# su -
oracle
Solaris上ではoracleユーザーに切り替えたので、次のとおりタイプすれば、OS認証でOracleにログインできる。
$ sqlplus
/ as sysdba
「scott」ユーザーのステータスを調べる、「EXPIRED & LOCKED」になっている。
SQL>
select account_status from dba_users where username='SCOTT';
「scott」ユーザーパスワードを「tiger」で再設定して、有効期限を更新して、ロックを解除する。
SQL>
alter user scott identified by tiger account unlock;
「scott」ユーザーのステータスが利用可能か調べる、「OPEN」になっている。
SQL>
select account_status from dba_users where username='SCOTT';
Sqlplusを抜ける。
SQL>
quit
「scott」ユーザーにログインする。
$ sqlplus
scott/tiger
「scott」ユーザーのテーブルを調べる。
SQL>
select table_name from user_tables;
Sqlplusを抜ける。
SQL>
quit
Screen SQL*Plus
SQL> alter user sys identified by change_on_install;
SQL> alter user system identified by manager;
SQL> alter user sysman identified by sysman;
SQL> alter user dbsnmp identified by dbsnmp ;
コマンドライン・インターフェースのSQL*PlusだけでもOracleの管理は出来るのだが、第4回の終わりの「インストールは終了」の画面上に表示された、下記のウェブベースの管理ツールも使用できるように動作確認をしておいたほうが良い。ただしこれらは同時にOracle独自のWebサーバーを起動してその上で動作するWebアプリケーションであるので、システムに大変負担が掛かる。それを避けるため、必要な時だけ起動する運用に留めて置きたい。
Oracleのインストールが終わり、次のリーブトをするまでの期間、これらの管理ツールもやはり立ち上がった状態で待機しているが、何らかの事情でその状態になっていない場合は、手動で起動する。または次のリーブト後のために操作コマンドも記す。
Oracle Enterprise Manager(以降OEMと省略)の状態確認、起動、停止はoracleユーザーから下記のコマンドを使用する。
(状態確認)
$ emctl
status dbconsole
(起動)
$ emctl
start dbconsole
(停止)
$ emctl
stop dbconsole
OEMはクライアントのブラウザで下記のURLを指定して呼び出す。
http://
server_addr
:1158/em
ログインできるのは下記のユーザーである。
Screen OEM
iSQL*Plusの起動、停止はoracleユーザーから下記のコマンドを使用する。Emctlと違って状態確認はない。
(起動)
$
isqlplusctl start
(停止)
$ isqlplusctl
start
iSQL*Plusはクライアントのブラウザで下記のURLを指定して呼び出す。
http://
server_addr
:5560/isqlplus
Screen iSQL*Plus
「iSQL*Plus DBA」の起動、停止は「iSQL*Plus」と同じであるが、URLへのアクセス権を持つユーザーは、通常のOracleのユーザーとは別である。このため、アクセス権を持つユーザーを作成して、ロールを付与する。
iSQL*Plusのディレクトリに移動する。
$ cd
$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus
すでにあるadmin/welcomeユーザーによってscott/tigerユーザーを作成する。
$ $JAVA_HOME/bin/java \
>
-Djava.security.properties=$ORACLE_HOME/oc4j/j2ee/home/config/jazn.security.props
\
> -jar
$ORACLE_HOME/oc4j/j2ee/home/jazn.jar \
> -user "iSQL*Plus
DBA/admin" \
> -password welcome \
> -adduser "iSQL*Plus
DBA" scott tiger
同じようにscottユーザーにwebDbaロールの付与する。
$ $JAVA_HOME/bin/java \
>
-Djava.security.properties=$ORACLE_HOME/oc4j/j2ee/home/config/jazn.security.props
\
> -jar
$ORACLE_HOME/oc4j/j2ee/home/jazn.jar \
> -user "iSQL*Plus
DBA/admin" \
> -password welcome \
> -grantrole webDba
"iSQL*Plus DBA" scott
iSQL*Plus DBAはクライアントのブラウザで下記のURLを指定して呼び出す。
http://
server_addr
:5560/isqlplus/dba
iSQL*Plus DBA の認証を要求するダイアログ・ボックスが表示されたら、作成したユーザーでログインする。
Screen iSQL*Plus DBA(認証)
同じように、作成したユーザーでログインする。
Screen iSQL*Plus DBA
動作確認が終わってscottユーザーが必要ないのであれば、消して終わり。
$
$JAVA_HOME/bin/java \
>
-Djava.security.properties=$ORACLE_HOME/oc4j/j2ee/home/config/jazn.security.props
\
> -jar
$ORACLE_HOME/oc4j/j2ee/home/jazn.jar \
> -user
"iSQL*Plus DBA/admin" \
> -password
welcome \
> -remuser
"iSQL*Plus DBA" scott
0 件のコメント:
コメントを投稿