« Panther De Oracle10g その10 | トップページ | Panther De Oracle10g その12 »

2005年6月12日 (日) / Author : Hiroshi Sekiguchi.

Panther De Oracle10g その11

MacOS X Panther 10.3.9 に Oracle10g をインストールし、データベース作成からOEM 10gの起動確認までやってきた。環境構築の最後は自動起動設定である。 忙しいなか記事を書いていると、他のBlogerのみなさん、まめに書いているよな〜と関心する。(うちの奥さんも、そのうちの一人なのだが・・・・)

1.自動起動用ディレクトリと関連ファイルの作成。


1)ディレクトリの作成

まずは、いつものように Terminal を起動して root になる。次に、/System/Library/StartupItems に移動し、 Oracle というディレクトリを作成する。このディレクトリに起動、停止用スクリプトと、プロパティリストファイルというスクリプトの起動条件などを記述してあるXMLファイルを格納する。
Welcome to Darwin!
cube: discus$ sudo sh
Password:
sh-2.05b# cd /System/Library/StartupItems
sh-2.05b# mkdir Oracle
/System/Library/StartupItems/Oracle
sh-2.05b# touch Oracle
sh-2.05b# touch StartupParameters.plist
sh-2.05b# chmod 744 StartupParameters.plist
sh-2.05b# ls -l
total 16
-rwxr-xr-x 1 root wheel 3899 10 Jun 00:40 Oracle
-rwxr--r-- 1 root wheel 584 10 Jun 00:29 StartupParameters.plist
sh-2.05b#

2)忘れちゃならね〜〜っ。おらたぶ。

自動起動スクリプトでは、dbstart (オラクルから提供されているスクリプト)を利用する。このスクリプトを利用して Oracle インスタンスを自動起動する場合には、/etc/oratab を編集する必要があるので、お忘れなく。これを忘れると(デフォルトでは起動しないようになっているので)インスタンスは起動しない。初めての方はこのひと手間を忘れてしまうので要注意。
# This file is used by ORACLE utilities.  It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.

# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME::
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
*:/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther:N
panther:/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther:Y
cube: oracle$

3)プロパティリストファイルの作成


今回は、空ファイルを touch コマンドで作成したが、viや、Property List Editor(後述)または、その他のテキストエディタで直接作成してもかまわない。
Property List Editor は、開発ツールに含まれているProperty Listファイル編集用の専用エディタだ。使い方は非常に簡単なので特に説明はしないが、以下にこのツールで Oracle10g 用 StartupParameters.plist を作成した画面載せておく。touchコマンドで作成した空の StartupParameters.plist を Finder 上でダブルクリックすれば、すぐに編集に取りかかれる。

directory   property_list_editor

また、viや、その他のテキストエディタで作成する場合には、以下のように入力すればよい。(NextStep時代の形式で記述することも可能だが、MacOS Xでは、XMLを積極的に利用しているので、この例では XML で記述(前述の Property List Editor でも XML形式で作成される)している。キー値及び意味については、ここで紹介した書籍や、Appleが公開しているマニュアルを参考にしてほしい)
sh-2.05b# cat StartupParameters.plist
<?xml version="1.0" encoding="UTF-8"?>
<DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Description</key>
<string>Oracle10g 10.1.3 Database Server</string>
<key>OrderPreference</key>
<string>Late</string>
<key>Provides</key>
<array>
<string>Oracle10g 10.1.3 Database</string>
</array>
<key>Requires</key>
<array>
<string>Disks</string>
</array>
<key>Uses</key>
<array>
<string>Disks</string>
<string>Network</string>
<string>NFS</string>
</array>
</dict>
</plist>
sh-2.05b#

4)Oracleスクリプトの作成。


このスクリプトには作法がある。スクリプトでは、/etc/rc.common を呼び出し、StartupService()、StopService()、RestartService()の実装。最後に、RunService "$1" とお約束のおまじないが必要。  


自動起動だけで、停止や再起動は不要ならば、
   StopService()
{
return 0
}

のようにすればよい。


今回作成したスクリプトはこれ。

5)確認!

5−1) plistの確認


SystemStarterコマンドで、-nd をつけると、スクリプトを実行せずに、plistの確認ができる。(詳しい使い方は、SystemStarter -h で確認するか、ここで紹介している本などを参考にしてほしい。) 
sh-2.05b# /sbin/SystemStarter -nd start "Oracle10g 10.1.3 Database"
Welcome to Macintosh.
Found item: NortonAutoProtect
Found item: NortonMissedTasks
Found item: VirtualPCOSServices
Found item: Accounting
Found item: AMD
Found item: Apache
Found item: AppleShare
Found item: AppServices
Found item: AuthServer
Found item: BIND
Found item: ConfigServer
Found item: CoreGraphics
Found item: CrashReporter
Found item: Cron
Found item: DirectoryServices
Found item: Disks
Found item: IPServices
Found item: KernelEventAgent
Found item: LDAP
Found item: LoginWindow
Found item: mDNSResponder
Found item: NetInfo
Found item: Network
Found item: NetworkExtensions
Found item: NetworkTime
Found item: NFS
Found item: NIS
Found item: Oracle
Found item: OracleCRS
Unable to open parameters file /System/Library/StartupItems/OracleCRS/
  StartupParameters.plist for item OracleCRS. (No such file or directory)
Found item: Portmap
Found item: Postfix
Found item: PrintingServices
Found item: RemoteDesktopAgent
Found item: SecurityServer
Found item: SNMP
Found item: SystemLog
Found item: SystemTuning
Found item: xgridagentd
Running command (425): /System/Library/StartupItems/SecurityServer/SecurityServer start
Finished Apple Security Server (425)
Running command (426): /System/Library/StartupItems/Disks/Disks start
Finished local disks (426)
Running command (427): /System/Library/StartupItems/Oracle/Oracle start
Finished Oracle10g 10.1.3 Database Server (427)
none left
Startup complete.
Hangup
sh-2.05b#



plist関連で問題は出ていないので、OK。でも、Oracle CRSはインストールしていなくても勝ってにフォルダが作成いる。確か、root.shでいろいろやっていたな〜〜(中身はからなので、plistが無いというワーニングる。邪魔だが悪さはしないので放置しておく。)

5−2) Oracleスクリプトの確認!


SystemStarterコマンドを -v オプションをつけて実行する。エラーがあると以下のようになるので動作確認にはこれを利用するとよいだろう。
sh-2.05b# /sbin/SystemStarter -v start "Oracle10g 10.1.3 Database"
Welcome to Macintosh.
Unable to open parameters file /System/Library/StartupItems/OracleCRS/
StartupParameters.plist for item OracleCRS. (No such file or directory)
Starting SecurityServer
Checking disks
Waiting for Oracle10g 10.1.3 Database Server
/System/Library/StartupItems/Oracle/Oracle: line 143:
unexpected EOF while looking for matching `''
/System/Library/StartupItems/Oracle/Oracle: line 147:
syntax error: unexpected end of file
Oracle10g 10.1.3 Database Server (461) did not complete successfully.
The following StartupItems failed to properly start:
/System/Library/StartupItems/Oracle - execution of Startup script failed
Startup complete.
Hangup
sh-2.05b#

5−2−1) 起動確認!

sh-2.05b# /sbin/SystemStarter -v  start "Oracle10g 10.1.3 Database"
Welcome to Macintosh.
Unable to open parameters file /System/Library/StartupItems/OracleCRS/
  StartupParameters.plist for item OracleCRS. (No such file or directory)
Starting SecurityServer
Checking disks
****************************
env for Oracle
****************************
TERM=vt100
NLS_LANG=Japanese_Japan.JA16SJISTILDE
ORACLE_OWNER=oracle
ORACLE_SID=panther
ORACLE_BASE=/Volumes/ExtraDisk2/u01/app/oracle
ORACLE_OWNER_PATH=/Users/oracle
PATH=/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther/bin:
/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin
PWD=/System/Library/StartupItems/Oracle
SHLVL=1
DYLD_LIBRARY_PATH=/usr/X11R6/lib:/Volumes/ExtraDisk2/u01/app/oracle/
product/10.1.0/panther/lib:/Volumes/ExtraDisk2/u01/app/oracle/product/
10.1.0/panther/rdbms/lib:
CLASSPATH=/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther
ORACLE_HOME=/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther
_=/usr/bin/env

*************************************
hard and soft shell resource limits
*************************************
Hard limit:
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 67584
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 65536
cpu time (seconds, -t) unlimited
max user processes (-u) 2068
virtual memory (kbytes, -v) 9007199254806527

Soft limit:
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 65536
cpu time (seconds, -t) unlimited
max user processes (-u) 2068
virtual memory (kbytes, -v) 9007199254806527
Starting Oracle Names...
onsctl: ons started
Started Oracle Names
Starting TNS Listener...

LSNRCTL for MacOS X Server: Version 10.1.0.3.0 - Production
on 11-6月 -2005 12:06:58

Copyright (c) 1991, 2004, Oracle. All rights reserved.

/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther/bin/tnslsnrを起動しています。
お待ちください...

TNSLSNR for MacOS X Server: Version 10.1.0.3.0 - Production
システム・パラメータ・ファイルは/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0
/panther/network/admin/listener.oraです。
ログ・メッセージを/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther/
network/log/listener.logに書き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
(HOST=cube.discus.jp)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cube.discus.jp)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for MacOS X Server: Version 10.1.0.3.0 - Production
開始日 11-6月 -2005 12:06:59
稼働時間 0 日 0 時間 0 分 0 秒
トレース・レベル OFF
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル /Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/
panther/network/admin/listener.ora
ログ・ファイル /Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/
panther/network/log/listener.log
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cube.discus.jp)(PORT=1521)))
サービスのサマリー...
サービス"panther"には、1件のインスタンスがあります。
インスタンス"panther"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
Started TNS Listener.
Starting Oracle database...

SQL*Plus: Release 10.1.0.3.0 - Production on 土 6月 11 12:07:00 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

SQL>
Waiting for Oracle10g 10.1.3 Database Server
アイドル・インスタンスに接続しました。
SQL>
Waiting for Oracle10g 10.1.3 Database Server
Waiting for Oracle10g 10.1.3 Database Server
ORACLEインスタンスが起動しました。

Total System Global Area 230686720 bytes
Fixed Size 778584 bytes
Variable Size 78651048 bytes
Database Buffers 150994944 bytes
Redo Buffers 262144 bytes
データベースがマウントされました。
Waiting for Oracle10g 10.1.3 Database Server
Waiting for Oracle10g 10.1.3 Database Server
Waiting for Oracle10g 10.1.3 Database Server
データベースがオープンされました。
SQL> Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining optionsとの接続が切断されました。

Database "panther" warm started.
Started Oracle database
Starting iSQL*plus...
iSQL*Plus 10.1.0.3.0
Copyright (c) 2004 Oracle. All rights reserved.
Starting iSQL*Plus ...
Waiting for Oracle10g 10.1.3 Database Server
Waiting for Oracle10g 10.1.3 Database Server
iSQL*Plus started.
Started iSQL*plus.
Starting OEM Database Console...
Oracle Enterprise Manager 10g Database Control Release 10.1.0.3.0
Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
http://cube.discus.jp:5500/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control ...
.Waiting for Oracle10g 10.1.3 Database Server
.Waiting for Oracle10g 10.1.3 Database Server
started.
------------------------------------------------------------------
Logs are generated in directory /Volumes/ExtraDisk2/u01/app/oracle/
product/10.1.0/panther/cube.discus.jp_panther/sysman/log
Started OEM Database Console.
Startup complete.
Hangup
sh-2.05b#



5−2−2) オラクルは起動したようですね。Scottにリスナー経由で接続してみる。


 sh-2.05b# su - oracle
cube: oracle$
cube: oracle$
cube: oracle$ sqlplus scott/tiger@panther

SQL*Plus: Release 10.1.0.3.0 - Production on 土 6月 11 12:13:10 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
に接続されました。
SQL> desc emp
名前 NULL? 型
----------------------------------------- -------- ----------------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)

SQL> exit
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining optionsとの接続が切断されました。
cube: oracle$ exit
logout
sh-2.05b#

5−2−3) 停止確認!

sh-2.05b# /sbin/SystemStarter -v stop "Oracle10g 10.1.3 Database"
Welcome to Macintosh.
Unable to open parameters file /System/Library/StartupItems/OracleCRS/
  StartupParameters.plist for item OracleCRS. (No such file or directory)
****************************
env for Oracle
****************************
TERM=vt100
NLS_LANG=Japanese_Japan.JA16SJISTILDE
ORACLE_OWNER=oracle
ORACLE_SID=panther
ORACLE_BASE=/Volumes/ExtraDisk2/u01/app/oracle
ORACLE_OWNER_PATH=/Users/oracle
PATH=/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther
  /bin:/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin
PWD=/System/Library/StartupItems/Oracle
SHLVL=1
DYLD_LIBRARY_PATH=/usr/X11R6/lib:/Volumes/ExtraDisk2/u01/app/oracle/
  product/10.1.0/panther/lib:/Volumes/ExtraDisk2/u01/app/oracle/product/
  10.1.0/panther/rdbms/lib:
CLASSPATH=/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther
ORACLE_HOME=/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther
_=/usr/bin/env

*************************************
hard and soft shell resource limits
*************************************
Hard limit:
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 67584
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 65536
cpu time (seconds, -t) unlimited
max user processes (-u) 2068
virtual memory (kbytes, -v) 9007199254806527

Soft limit:
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 65536
cpu time (seconds, -t) unlimited
max user processes (-u) 2068
virtual memory (kbytes, -v) 9007199254806527
Stopping OEM Database Console...
Oracle Enterprise Manager 10g Database Control Release 10.1.0.3.0
Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
http://cube.discus.jp:5500/em/console/aboutApplication
Stopping Oracle Enterprise Manager 10g Database Control ...
Waiting for Oracle10g 10.1.3 Database Server
Waiting for Oracle10g 10.1.3 Database Server
...
Waiting for Oracle10g 10.1.3 Database Server
Stopped.
Stopped OEM Database Console.
Stopping iSQL*plus...
iSQL*Plus 10.1.0.3.0
Copyright (c) 2004 Oracle. All rights reserved.

Stopping iSQL*Plus ...
Waiting for Oracle10g 10.1.3 Database Server
Waiting for Oracle10g 10.1.3 Database Server
Waiting for Oracle10g 10.1.3 Database Server
iSQL*Plus stopped.
Stopped iSQL*plus.
Stopping Oracle Database...

SQL*Plus: Release 10.1.0.3.0 - Production on 土 6月 11 12:14:40 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

SQL>
Waiting for Oracle10g 10.1.3 Database Server
接続されました。
SQL>
Waiting for Oracle10g 10.1.3 Database Server
Waiting for Oracle10g 10.1.3 Database Server
データベースがクローズされました。
データベースがディスマウントされました。
Waiting for Oracle10g 10.1.3 Database Server
ORACLEインスタンスがシャットダウンされました。
SQL> Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining optionsとの接続が切断されました。
Database "panther" shut down.
Stopped Oracle Database.
Stopping TNS Listener...
Waiting for Oracle10g 10.1.3 Database Server

LSNRCTL for MacOS X Server: Version 10.1.0.3.0 - Production
on 11-6月 -2005 12:15:00

Copyright (c) 1991, 2004, Oracle. All rights reserved.

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cube.discus.jp)(PORT=1521)))に接続中
コマンドは正常に終了しました。
Stopped TNS Listener.
Stopping Oracle Names...
onsctl: shutting down ons daemon ...
Stopped Oracle Names.
Startup complete.
Hangup
sh-2.05b#

これで自動起動の設定なども終わり。ただ、いつも、iSQL*Plusや、oem 10g を起動しておくのもメモリが少ない CPU も非力なので、私のPowerMac G4 Cubeでは辛い。ということで、今は、Oracle Names ServerとListener、それにOracle10g Database Server
だけを自動起動にしている。


これで、Oraccle10g for MacOS X で遊べる環境の完成!。 さて、PL/SQL で Python Challengeのつづきでもやるかな。。。。

| |

トラックバック


この記事へのトラックバック一覧です: Panther De Oracle10g その11:

コメント

う〜〜ん。 /System/Library/StartupItemsに起動スクリプトとplistを入れたのは、OracleCRSフォルダが、そこに作成されているのに気がついたからなのだが、本来 /Library/StartupItems以下におくべきものだと思ったので、 後日、/Library/StartupItems以下に移動した。

投稿: discus | 2005年6月14日 (火) 23時42分

もう一つ、追記。/Library/StartupItems というフォルダは、デフォルトでは存在しません。例えば、Norton Anti Virusなど既にインストールしていると作成されている場合がありまが・・・。もし、存在していない場合は、自分で作る必要があります。
sudo sh で rootユーザになってから、
mkdir -p /Library/StartupItems
chgrp admin /Library
chgrp wheel /Library/StartupItems
って感じで作れます。 Nortonなんかは、ちゃんとフォルダを作ってくれますが、Oracleのインストーラは、Unix系での基本的な部分のインストールしかしてくれませんから、プラットフォーム固有の部分は自分でやらないといけません。 まぁ、WindowsにインストールしたOracleをアンインストールする場合には、レジストリのごみ掃除は手動なので、それに比べたらインストール時の手間だけですむUnix系プラットフォームへのOracleインストールの一手間なんてかわいいもんです。

投稿: discus | 2005年6月20日 (月) 06時18分

コメントを書く