2007年2月27日 (火)

Panther De Oracle10g 番外編というより訂正

記事としてはもう、随分前のものなのだが、Oracle10g や RAC絡みで資料やマニュアルの細部まで読んでいて気付いたマニュアルバグ(リリースノートバグか?)を修正しました。

Panther de Oracle10g その9にて、

Oracle 10g R1 for MacOSX Serverに付属するリリースノートに既知の問題として記載されていた部分に関するものである。

尚、日本語のリリースノートがOTNに残っていたのでリンクしておく。(いずれ修正されるかもしれないが。。)
http://otndnld.oracle.co.jp/document/products/oracle10g/101/mac/B15788-01.pdf

以下、Oracle10g R1 10.1.0.3.0のリリースノートからの引用。

Oracle Net Listenerの停止の停止の停止の停止
Mac OS X上で、listener stopコマンドを入力する前に、Oracle Names Server
(ONS)が実行されていることを確認します。 ONSが実行されていない場合、listener
stopコマンドにより、リスナーがハングする場合があります。 ONSを起動するには、
次のコマンドを入力します(Oracle Bug#4052405)。
$ onsctl start

これは、Panther de Oracle10g その9でも書いている通り、原文の直訳なので原文が間違っているのだからしかた無いかという感じではある。

MacOSXのOracle10g R1の onsctl (shell script)を覗くと、起動しているのは、$ORACLE_HOME/opmn/bin/onsなのである。
このことから Oracle Names Serverではなく、OPMNのOracle Notification Serverを起動していることが確認できる。

また、現在では(Oracle10g以降や、Oracle9iAS 9.0.2.0.1以降)では、ONSといえば、Oracle Notification ServerやOracle Notification Serviceの事を指すと考えても問題はないだろう。 
但し、Oracle Names Serverを利用しているところでの会話なら話は別なのでご注意を。。

ところで、 ONSは、Oracle Notification Server の略なのか、Oracle Notification Serviceの略なのか?? マニュアルを読むと圧倒的に Serverを指していることが多いのだが。。
http://www.oracle.co.jp/iSeminars/070215_1000/doc/iSeminar_RAC_Connection_1.pdf
http://otndnld.oracle.co.jp/document/products/as10g/1013/doc_cd/core.1013/B28581-01/intro.htm

| | コメント (0) | トラックバック (0)

2006年9月 6日 (水)

Mac De Oracle (PL/SQL De COMPRESS/UNCOMPRESS)

OTN JapanCodeTipsに、Mac De Oracle (PL/SQL De UNCOMPRESS)及び、Mac De Oracle (PL/SQL De COMPRESS)に掲載したコードとほぼ同じコードを投稿しました。

| | コメント (0) | トラックバック (0)

2005年11月18日 (金)

Mac De Oracle10g R2

先日開催されたOracle Grid DayやFusion MiddleWareには風邪のため行けなかったのだが、それぞれのセッション資料がダウンロードできようになっていた。それによると、Oracle10g R2 for MacOSX は、来年の上半期リリース予定とのこと。
う〜〜ん。 MacOSXといっても、Intel版 MacOSXなのか、PowerMac版なのか、両方なのか、どちらなんだろう。。。
いずれにしても、MacOSX版 Oracle10g R2はリリースされるようなので楽しみである。。

| | コメント (0) | トラックバック (0)

2005年11月 8日 (火)

Mac De HTML DB 10g その8

なんとか風邪も完治!?
TSUTAYAで借りた天龍八部の8、9、10巻とJazzのCDを買い物のついでに返却しようと外出。

こちらは運転するのでTSUTAYAの袋を妻に預けたのだが、その袋のレンタルレシートに、

天龍八部 8巻
天龍八部 9巻
天龍八部 10巻
矢野沙織/YANO SAORI

とリストされていた、最後にあるのがJazzのCD(矢野沙織さんは16歳にしてjazz sax CDデビュー。現在確か、18歳くらい。)

なのだが、妻は何を勘違いしたのか?(Hビデオでも借りてきたものと勘違いして)いや〜〜〜ん。とか、きゃ〜〜っ。とか叫んでいる。
「おいおい、Hビデオじゃないぞ〜〜〜。JazzのCDだって、それ!!!! (^^;;;;」とツッコミ!。(爆)





ちなみに、「天龍八部」は大映テレビのドラマの人間関係以上にドロドロしているので笑う場面ではないが笑いがでる。ワイヤーアクション+VFX+カンフー好きにはおすすめ。(ただ、殺戮シーンなどが多い。)




それに近いシリーズに「風雲」がある。「風雲」は千葉真一も出演していたことで有名だが。こちらも人間関係のドロドロさとか、失恋したかと思ったら飲んだくれてしまうところとか、またすぐ恋いしちゃうとか、上げたり下げたり、いろいろ面白いです。VFXはちょっとチープな感じがある。(予算少なかったんだろうか)

前述の映画というかドラマか?は、家系図を書いたら大変そうだ。皆兄弟いや姉妹、いや異母兄弟とか異母兄妹か?!、実は血のつながりは無い兄妹だったりと、人間関係が複雑すぎる。。。。




さて、なが〜〜い前置きはこのくらいにして、本題。
使い勝手を試そうと、HTML DBのサンプルアプリとして選んだ”ネタ”が家系図データ管理だったが、家系図データのモデルって深く考えれば考えるほど複雑。本気で考えるとハマりそうなので我が家の家系図データを管理するのに必要最低限な情報+我が家の家系図には不要なんだけどちょっと飾りを付けた感じのERモデルにしてお茶を濁すことにした。

(職業病というかなんというか、このようなモデルを考え始めると、、、、ちょっとした時間があると考えてる(Python Challengeも同じだが)。隣で奥さんがなんか言ってたけど、全然耳に入っていないのに空返事。返事をしてから、何だっけ? いまの? って聞き返したりして。。(^^;;;;  
目的は家系図作ることではなくて、HTML DBの使い勝手を調べるということなので脱線しないようにしないといけない。。。。。)

ということで現在進行形。。。だが、明日(もう今日か!)からJavaOneだな〜。

| | コメント (0) | トラックバック (0)

2005年10月30日 (日)

Mac De HTML DB 10g その7

いや〜〜。女性は強い!?のか? 
私の母が風邪で熱を出したり寝込んだ姿を一度も見た事が無い。妻も滅多に風邪をひかない(3年に1度くらい)。なのに私は、毎年1度年中行事の如く風邪をひく。先日、妻の職場で”げほげほ”していて4日も風邪で休んだ方がいたそうで、風邪だけには弱い私を気にして外でホコリ払いと除菌消臭スプレーをスーツに(ほんとうにそれで風邪ウィルスがなくなるのか疑問)したうえに、イゾジンでうがいしている妻だったが、そいつはやはりやってきた。そう、4年ぶりに38度超えの熱がでる風邪をひいてしまった。喉の痛みから始まり、翌日には熱が高くなりあっというまに38度、熱が引いたのは翌々日。それが引いたかと思ったら鼻づまりのために呼吸するのがつらく眠れない(まさに、風邪の症状フルコースなのである。こんなフルコースはうれしくない。)。そしてやっと回復間近? という状況でこれを書いている。これが書けるくらいだからあとちょっとで復活だろうな〜。

と前置きかかなり長くなったが、前回、Mac de HTML DBで作る簡単なサンプルアプリケーションに悩んでいると書いた。いろいろ悩んだ末、家系図管理アプリを作ってみることにした。
何故、家系図に落ち着いたかというと、先日叔母が逝去し、通夜と葬儀の為に集まった親戚の顔と名前をすべて妻に理解してもらおうと手書きの家系図を書いていたのだが、従姉妹のご主人からその家系図がほしいと言われたのがきっかけだった。まあ、うちの家系図といっても曾祖父母くらいからのものだが。。。。。手書きもなんなので、MacOSX用の家系図作成ソフトを探してみた。。。ところが、日本のものはほとんどがWindows版(がく〜〜〜っ。)そしてたどり着いたのが、これ

http://www.imac.com/downloads/macosx/home_learning/macfamilytree.html

メニューなどは英語というかエラーメッセージはドイツ語っぽいが、マルチバイト言語にも対応しているようだ

001
002

いろいろなビューがあるが、私は2番目にあるビューさえあれば十分。

003

004

006


これ結構イケテいるのだが、$40のsharewareなのである。滅多にメンテナンスしない我が家の家系図(孔子から始まる家系図は300万人以上いるらしいのでメンテナンスするのは大変だろうけど。。)に$40をかけるつもりはないし、我が家の家系図が描ければ十分なのでのでこの際、HTMLDBのサンプルで作ってしまえ! となった次第である。(どんなものができるか。。。。あまり期待しないでお待ちください。。)。

| | コメント (0) | トラックバック (0)

2005年10月22日 (土)

Mac De HTML DB 10g その6 Version確認

簡単なアプリケーションを作ってみよう。という段階なのだが、何を作るか悩んでいる。アドレス帳? それとも、簡単な家計簿? ん〜〜〜〜。 

ネタが無いので、Versionの確認方法でも書いておきますかね。。。

HTML DB 10g (v2.0)にすると、 FLOWS_020000 というユーザが作成されている。

SQL*Plusからだと、 FLOWS_020000.wwv_flows_release というファンクションを呼び出せばバージョンが確認できる。(なお、FLOWS_020000は、ロックされているのでsysユーザから実行して確認する。アンロックはしないほうがよいだろう。最初からロックされているので。。)

G5Server:〜 oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 土 10月 22 17:13:58 2005

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

> conn / as sysdba
接続されました。
SYS>
SYS>
SYS> select flows_020000.wwv_flows_release from dual;

WWV_FLOWS_RELEASE
-------------------------------------------------------
2.0.0.00.49

SYS>

そのほかの方法は、HTML DBにログインして確認する方法。(通常はこちらの方法で確認するのだろうね。)

check_version

check_version2

check_version3

| | コメント (0) | トラックバック (0)

2005年10月15日 (土)

Mac De HTML DB 10g その5 動作確認

一通りの作業は終えた。HTML DB v2.0へのアップデートがうまく行ったか簡単な動作確認(デモアプリケーションの起動などを行ってみる)

簡単に動作確認を行った。文字化けもなくすんなり動作しているように見える。
また、画面のアイコンボタンが個人的にはいい感じ。しかもドロップダウンメニューが階層化されているのもいいですね。CA の CleverPath Portalのポーレットデザイン時のUIがお気に入りだったが、これはこれでいいかもしれないね。








次は簡単なアプリケーションを作ってみる予定。

| | コメント (0) | トラックバック (0)

2005年10月14日 (金)

Mac De HTML DB 10g その4 パッチ適用とHTML DB 2.0へのアップデート

前回までで、HTML DB 10g (1.5)のインストールと構成は終了した。今回は、OWAのパッチ適用及び、HTML DB 10g (2.0)へのupdateを行う。

NLS_LANGをAL32UTF8に変更するため、Terminlの文字エンコードもUTF8にしておく。


1)owaのパッチを適用する。

htmldb_2.0.zipを解凍すると作成されるディレクトリにあるowaのパッチが含まれるディレクトリに移動してパッチを適用する。

尚、これ以降の作業では、NLS_LANGを JAPANESE_JAPAN.AL32UTF8に変更して行う。

(手順の詳細はパッチ用ディレクトリに含まれるREADME.txtを参照のこと。)

Last login: Thu Oct 13 23:42:47 on ttyp1
Welcome to Darwin!
G5Server:˜ oracle$ echo $NLS_LANG
Japanese_Japan.JA16SJISTILDE
G5Server:˜ oracle$ export NLS_LANG=JAPANESE_JAPAN.AL32UTF8
G5Server:˜ oracle$ cd /Volumes/Discus/4oracle/oracle/Desktop/htmldb/patch/bug4554072
G5Server:˜/Desktop/htmldb/patch/bug4554072 oracle$ ll
total 192
drwxr-xr-x 3 oracle oinstall 102 Aug 25 17:47 309x
drwxr-xr-x 4 oracle oinstall 136 Sep 12 20:07 904x_1012x
-rw-r--r-- 1 oracle oinstall 3666 Sep 12 13:34 README.txt
-rw-r--r-- 1 oracle oinstall 5773 Aug 19 15:22 htp_htf_backup.sql
G5Server:˜/Desktop/htmldb/patch/bug4554072 oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 木 10月 13 23:45:33 2005

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

> conn / as sysdba
接続されました。
SYS> @htp_htf_backup
SYS> @904x_1012x/privht
SYS> exit
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining optionsとの接続が切断されました。

2)HTML DB 2.0インストール

htmldbins.sqlの引数の詳細については、htmldb_2.0.zipを解凍して作成されるディレクトリにある、welcome.htmをブラウザで開き、「documentation」タブ->HTML DB DocumentationにあるInstallation Guide HTMLリンクをクリック->3.2 Installing the Oracle HTML DB Softwareを参照のこと。
G5Server:˜/Desktop/htmldb/patch/bug4554072 oracle$ cd ../..
G5Server:˜/Desktop/htmldb oracle$
G5Server:˜/Desktop/htmldb oracle$ sqlplus /nolog
SQL*Plus: Release 10.1.0.3.0 - Production on 木 10月 13 23:45:33 2005

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

> conn / as sysdba
接続されました。
SYS> @htmldbins xtiger SYSAUX SYSAUX TEMP /i/ xtiger
. ____ ____ ____ ____
. / \ | \ /\ / | /
.| || / / \ | | |
.| ||--- ---- | | |--
.| || \ / \ | | |
. \____/ | \/ \ \____ |____ \____
.
. HTML DB Hosted Development Service Installation.
.........................................................

...中略...

3)HTML DB 2.0 日本語版インストール

htmldbins.sqlの引数の詳細については、htmldb_2.0.zipを解凍して作成されるディレクトリにある、welcome.htmをブラウザで開き、「documentation」タブ->HTML DB DocumentationにあるInstallation Guide HTMLリンクをクリック->4.5 Installing Oracle HTML DB in Other Languagesを参照のこと。
G5Server:˜/Desktop/htmldb oracle$ cd builder/ja
G5Server:˜/Desktop/htmldb/builder/ja oracle$ ll
total 65432
-r--r--r-- 1 oracle oinstall 21729796 Sep 7 15:40 f4000_ja.sql
-r--r--r-- 1 oracle oinstall 1739940 Aug 21 16:59 f4050_ja.sql
-r--r--r-- 1 oracle oinstall 59058 Aug 21 17:00 f4155_ja.sql
-r--r--r-- 1 oracle oinstall 783102 Aug 21 17:00 f4300_ja.sql
-r--r--r-- 1 oracle oinstall 1370464 Aug 21 16:59 f4350_ja.sql
-r--r--r-- 1 oracle oinstall 1147649 Aug 21 16:59 f4411_ja.sql
-r--r--r-- 1 oracle oinstall 6406200 Aug 21 16:59 f4500_ja.sql
-r--r--r-- 1 oracle oinstall 96005 Aug 21 17:00 f4550_ja.sql
-r--r--r-- 1 oracle oinstall 131682 Aug 21 16:59 f4700_ja.sql
-r--r--r-- 1 oracle oinstall 2281 Dec 29 2003 load_ja.sql
-r--r--r-- 1 oracle oinstall 1869 Oct 4 2004 unload_ja.sql
G5Server:˜/Desktop/htmldb/builder/ja oracle$ sqlplus /nolog
SQL*Plus: Release 10.1.0.3.0 - Production on 木 10月 13 23:45:33 2005

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

> conn / as sysdba
接続されました。
SYS> ALTER SESSION SET CURRENT_SCHEMA = FLOWS_020000;

セッションが変更されました。

SYS> @load_ja
. ____ ____ ____ ____
. / \ | \ /\ / | /
.| || / / \ | | |
.| ||--- ---- | | |--
.| || \ / \ | | |
. \____/ | \/ \ \____ |____ \____
.
. HTML DB Hosted Development Service Installation.
.........................................................

...中略...



これでOWAへのパッチ適用と HTML DB 2.0 へのアップグレード作業が完了した。

う˜˜ん。順調過ぎて逆に不安(笑)。

次回、HTML DB 2.0 簡単な動作確認へつづく。

| | コメント (1) | トラックバック (0)

2005年10月13日 (木)

Mac De HTML DB 10g その3 インストール後の作業

前回までで、Oracle HTTP Serverのインストールと HTML DB 10g (1.5) のインストールは終了した。

さて、今回はインストール後の作業として、Oracle HTTP ServerからHTML DBを利用するために必要な構成ファイルの編集(OUIのインストールでほとんど出来上がっているのだが)及び、Oracle HTTP Serverの起動、そしてアプリケ−ション開発に必要な作業領域の作成から開発用ユーザの作成までを行う。

HTML DBは、Oracle HTTP Server (Apache)からmod_plsqlを介してWeb Tool Kit (htpパッケージや、htfパッケージなど)やHTML DBのパッケージ群などのストアドプロシージャを実行する。
OWSやWASのころは構成ファイルは dad.conf だったのだが、現在は marvel.conf がデフォルトのようである。(ただし、dad.conf も利用可能で dad.conf がある場合には dad.conf も読み込まれる。”も”というのがポイントだ。2つの構成ファイルはどちら"も"読み込まれるのだ。dad.conf 、marvel.conf の順にimport されている。マニュアルはまだそれほど読み込んでいないのでdad.confとmarvel.confについては別途調べておいた方が良さそうだ。ちなみにPlsqlDatabasePasswordは暗号化されていた。)


では早速、marvel.conf を編集してみる。
(以下、HTML DBをインストールしたディレクトリを$HTMLDB_HOMEと記す。)

$ cat $HTMLDB_HOME/Apache/modplsql/conf/marvel.conf
Alias /i/ "/Volumes/WorkVol/u01/app/oracle/product/10.1.0/htmlDB/marvel/images/"
<Location /pls/htmldb>
SetHandler pls_handler
Order deny,allow
Allow from all
AllowOverride None
PlsqlDatabaseUsername HTMLDB_PUBLIC_USER
PlsqlDatabasePassword @BXDpf8GmfAmsbuOTY0ApZ78=
PlsqlDatabaseConnectString 192.168.1.19:1521:tiger ServiceNameFormat
PlsqlDefaultPage htmldb
PlsqlDocumentTablename wwv_flow_file_objects$
PlsqlDocumentPath docs
PlsqlDocumentProcedure wwv_flow_file_manager.process_download
PlsqlAuthenticationMode Basic
PlsqlNLSLanguage JAPANESE_JAPAN.JA16SJISTILDE
</Location>
AddType text/xml xbl
AddType text/x-component htc

marvel.conf はインストール完了時点でほぼ完成している。加えた変更は PlsqlNLSLanguage を AMERICAN_AMERICA.JA16SJISTILDE から JAPANESE_JAPAN.JA16SJISTILDE に変更し、最後にある AddType の2行を追加しただけである。
尚、タグの詳細は付属マニュアルに"きっちり"書かれているのでそちらを参照のこと。

編集が終わったら、Oracle HTTP Serverを起動する。(OUIでインストールした場合には、起動されているはずなので一旦停止してから起動する。)

$ $HTMLDB_HOME/Apache/Apache/bin/apachectl stop
$HTMLDB_HOME/Apache/Apache/bin/apachectl start: httpd stopped

$ $HTMLDB_HOME/Apache/Apache/bin/apachectl start
$HTMLDB_HOME/Apache/Apache/bin/apachectl start: httpd started

インストールの最後(OUIの画面)にOracle HTTP ServerのURLが表示されていたのを覚えているだろうか? port番号を忘れてしまう方が多いがそのような場合には、
$ cat $HTMLDB_HOME/install/portlist.ini
;OracleAS Components reserve the following ports at install time.
;As a post-installation step, you can reconfigure a component to use a different port.
;Those changes will not be visible in this file.

[System]
Host Name = 192.168.1.19

[Ports]
Oracle HTTP Server port = 7780
Oracle HTTP Server Listen port = 7780
Oracle HTTP Server SSL port = 4458
Oracle HTTP Server Listen (SSL) port = 4458
Oracle HTTP Server Diagnostic port = 7202
Oracle HTTP Server Listen port = 7780
Oracle HTTP Server Listen (SSL) port = 4458

で確認できる。

今回は、localhostでも、192.168.1.19でもどちらでも問題ないはずなので、http://localhost:7780/pls/htmldb/htmldb_adminにアクセスし作業領域と開発用ユーザを作成する。
htmldbの管理ユーザは adminで、パスワードは ouiで指定したパスワードを入力すればよい。行った操作は以下のFlashMovie参照。
この例では、作業領域AQUARIUMを作成時に新規スキーマAQUARIUMを作成し50MBの表領域(FLOWS_1)を新たに作成した。










うまく出来たようなので、先ほど作成した開発用ユーザでログインしてみる。urlは、http://localhost:7780/pls/htmldb/である。










と、ここまでは順調!。
次回、HTML DB2.0に付属する、Web Tool Kit 用パッチの適用へつづく。

| | コメント (0) | トラックバック (0)

2005年10月12日 (水)

Mac De HTML DB 10g その2 インストール編

前回からのつづき。

環境変数の設定。(インストールの注意点など、詳細は付属ドキュメントをよく読んでくださいね)


今回は、Oracle HTTP ServerとHTML DB 10g をインストールするので、Oracle10g Database及び、listenerを起動しておき、OUIを利用してインストールする。(MacOSX では、onsctlでOracle NamesOracle Notification Serverを起動しておくことをお忘れなく。忘れるとListenerが停止できなくなり、killすることになる。)

dbstart


ORACLE_BASEだけを設定しておけば問題ないのだが、データベースキャラクタセットがマルチバイトキャラクタセットである場合には問題があるようで、英語メッセージを表示させる場合にはAMERICAN_AMERICA.AL32UTF8、日本語メッセージを表示させる場合は、JAPANESE_JAPAN.AL32UTF8のいずれかを、NLS_LANGに設定しておく必要がある。これを忘れるとHTML DBの日本語はすべて文字化けするので注意が必要である。その他のオラクル用環境変数はunsetしておく。
尚、ORACLE_BASEは、Oracle10g R1のORACLE_BASEと同じであるが、HTML DB向けにOracle HTTP Serverもインストールするためインストール先のORACLE_HOME用ディレクトリは別にする必要があるので注意すること。(既存ORACLE_HOMEにインストールしようとするとOUIが警告を出してくれる)

また、Terminalの文字コードは一時的にUTF8にしておくとよいだろう。
runinstall


ship_mac_companioncd.cpio.gzを解凍すると、Disk1というディレクトリが作成されているのでそこに移動して、runInstallerを実行する。最後に、root.shを実行してインストールは完了する。(OUIのログの最後にjavaの例外が出ているようだがOUI自体は正常終了するので気にせずに!)









ちなみに、NLS_LANGをAL32UTF8に設定することを忘れると、OUIのログが文字化けを起こすので間違いに気が付くと思う。尚、やり直す際にはインストールがどこまで進んだかにもよるが、OUIでHTML DBを削除、HTML DBをインストールしたORACLE_HOME以下のディレクトリを削除、そして、FLOWS_010500、FLOWS_FILES、HTMLDB_PUBLIC_USERの3ユーザをdrop user ... cascade文で削除してから再インストールする。
(Windowsと違ってレジストリなんてのが無いので再インストールは楽です)


インストール後の作業へ続く。。。。

| | コメント (0) | トラックバック (0)

2005年10月11日 (火)

Mac De HTML DB 10g その1 インストール編

PL/SQL で Python Challengeはやる気がでるまで(すぐ再開したりしてね)お休み。 
前回触れたが Oracle10g R1 以降に付属するHTML DBで遊んでみることにする。このHTML DB、Oracle10g R1が発表された2003年のOracle Worldで初めてHTML DBを見たとき、Oracle9i AS R2 Portalのデータベースポートレットとどう違うのさ! と思っていた。(OW2003会場で担当者に聞いても差が見えなかったので最近まで気にも留めていなかった)。 しかし、これを導入したら楽なのになと思うシステムに最近関わったことや、MacOSX版Oracle10gでも動きそうなので Mac De Oracle としては放っておけなくなったのであった。

Oracle9i AS R2 Portalや、Oracle AS10g R1 Portal(中身はOracle9i AS R3といってもいいくらいなのだが。。)のデータベースポートレットは、Oracle AS Portalが必要なのである。(あたりまえじゃん! と自分へツッコミ。)。 PL/SQLを使って比較的簡単なWeb Applicationをウィザードを利用して作成するためだけに、Oracle9i AS Portalや、OracleAS 10g Portalを導入するのは無駄だと思う。 Portal導入なしにWeb Tool Kitによる作成より簡単(WASやOASの時代より簡単)に、PL/SQLでWeb Applicationを作成したいというシステムでは重宝しそうに思える。(OracleAS 10g R2 Portalはまだ見ていないのでどれだけ進化したか不明だが。。)

前置きはこれくらいにして、早速インストールしてみることにする。 HTML DBは、CD版だとCompanion CDに含まれており、Oracle HTTP Server (ApacheをOracleが拡張したもの)も含まれている。 (DVD版だと1枚にまとめられている。) 今回はUS OTNからダウンロードしたものを利用した。

Oracle Database 10g Companion CD Release 1 (10.1.0.3) for Apple Mac OS X
  ship_mac_companioncd.cpio.gz (511,023,225 bytes) (cksum - 1634262664)  
  Oracle HTML DB v2.0 (56,104,916 bytes) - latest standalone version of HTML DB New (13-Sep-05)
尚、Oracle10g R1に付属するHTML DBは、1.5であるが、先月 2.0がリリースされたので2.0へのアップグレードも行うことにする。

以下の手順で進める。


  1. オラクル所有者でログインする。(このユーザで、Oracle10g R1 for MacOSX Serverをインストール及び構成済みである。)

  2. Oralce NamesOracle Notification Service(マニュアルバグのため修正)、Listener、Oracle10g Databaseインスタンスの順に起動する。

  3. ship_mac_companioncd.cpio.gzと Oracle HTML DB v2.0 の2つをダウンロードする。
    (尚、ダウンロードする際には、Oracle Technology Network Developer License Terms に同意する必要がある。)

  4. ship_mac_companioncd.cpio.gzと htmldb_2.0.zipを解凍する。

  5. 環境変数を設定する。
    マルチバイトキャラクタセットをデータベースキャラクタセットとしている場合には、ORACLE_BASE以外にNLS_LANGも設定する。
  6. Oracle Universal Installer(OUI)によるインストール。
    ship_mac_companioncd.cpio.gzを解凍するとDisk1というディレクトリができる。Disk1にディレクトリを移動して、./runInstaller でOUIを起動する。

  7. インストール終了後の作業。


    1. marvel.confを編集する。

    2. Oracle HTTP Serverを起動する。

    3. 作業領域を作成する。

    4. 開発ユーザを追加する。


  8. Web Tool Kit のPatchを適用する。

  9. HTML DB 2.0にアップグレードする。

  10. アプリケーションを開発する。

次回は、5.以降の作業から続きを書く予定である。

2009/5/12変更
Oracle namesはマニュアルバグであるため、Oracle Notification Serviceへ修正した。

| | コメント (0) | トラックバック (0)

2005年10月 5日 (水)

Mac De Oracle

Oracle10g 新機能 SQL*Plus その2

Oracle10g で SQL*Plus派にはちょいとうれしい改善の記事を書いたが、それ以外にもいくつか改善されている。

今回は PowerMac G5 Dual 2.7Ghz 1GB-RAM MacOSX Server Tiger 10.4.2 に作成した Oracle10g R1 10.1.0.3 EEを利用した。

まずは、Oracle9i R2でも可能だが、トリガーをデバッグする目的で利用するDBMS_OUTPUTの結果を表示できるのだ。
dbms_outputでデバッグが必要になるような大きなトリガーを書いた経験は無いが、デバッグには便利な機能である。

dbms_output_from_trigger




さて本題、Oracle10g R1以降では、SELECT文中で実行されるユーザ定義関数でもDBMS_OUTPUTの結果を表示できるようになったことだ。beginブロックで呼び出さなくてもDBMS_OUTPUTの結果を表示できるのでちょっとだけだが便利になった。Oracle9i R2 までは select文中のユーザ定義関数内のDBMS_OUTPUTの結果は表示できなかった。(恐らく、beginブロックで呼び出せばできるじゃん! というのがあったから機能として取り込まなかったんだろうと想像する。) Oracle10g では今までに無く細かい改善があるように思う。(大きな機能追加や改善が注目されがちだが。。)

dbms_output_



ところで、iSQL*Plus というブラウザベースのSQL*Plusをご存知の方も多いと思う。実は前述した機能改善は、iSQL*plusでも同様に機能する。
尚、iSQL*Plusの起動は、
$ isqlplusctl start

停止は、
$ isqlplusctl stop

である。


また、通常は次のURLでアクセスできる http://hostname:5560/isqlplus (管理者用のURLは、http://hostname:5560/isqlplus/admin)
尚、ポート番号はインストール時にOUI側で調整されることがあるので、インストール後に表示されるURLとポート番号を控えておくか、

pb17:〜 oracle$ cat $ORACLE_HOME/sqlplus/bin/isqlplus.ini | grep HTTP_PORT
HTTP_PORT=5560
pb17:〜 oracle$

で確認できる。


ログイン画面

isqlplus_login


ログイン直後

isqlplus


SQL*Plusで行ったことをiSQL*Plusでもやってみると。。。DBMS_OUTPUTの結果が表示される!

isqlplus_dbms_output


iSQL*Plusの複数ページ表示も Oracle10g から可能になった。
画面右上の「設定項目」リンク又はアイコンをクリック->出力ページサイズの「複数ページ」を選択し、「各ページの列数」(多分行数の間違いだと思うが・・・)を設定して、「適用」アイコンボタンをクリックしてページサイズを設定する。

isqlplus2



isqlplus3

| | コメント (0) | トラックバック (0)

2005年10月 3日 (月)

PL/SQL で Python Challenge 15 いきなり完結編

Level 15 は、なんとプログラミングするまでもなく答えが判ってしまった。いきなり、Level 16のページが見えてしまった。(プログラミングもUTL_HTTPと正規表現程度で終わってしまいそうだったのでプログラミングする気も起きず) プログラミングもせずに、Level 15 は終了することにした。 だれの? というタイトルと、HTMLコメントを見れば、すぐに解決できる。簡単すぎて引っ掛けかと思ったほどだった。(実は深読みさせて迷路に誘い込むつもりだったのかもしれないが。。。。)


Level 16 へつづく。

| | コメント (0) | トラックバック (0)

2005年10月 1日 (土)

PL/SQL で Python Challenge 14 完結編

さて、バグっていたプログラムを修正して完結!

Level14 はそのページにある画像が問題になっているのでLevel 11の時とやり方はほぼ同じ。違いは、サイズが、### × ### のファイルを新規に作成することだけ。できあがった画像を元に該当するURLをブラウザで開くと、意地悪ともクイズとも言えないようなページが開く。これも簡単なのですぐに Level 15 が見つかる。すぐに謎は解けると思うのでこれ以上は解説はしない。

定番になってしまった JDeveloper10g for Macでjava をdeploy
jdev

そして、java stored functionとしてラップして実行。(パッケージ化しているが管理しやすくするためである。パッケージ化しなくても問題はない) ユーザ定義関数として利用できるのでSQL文から直接利用できる。(でもディレクトリオブジェクトぐらいは引数で渡すようにしたほうがよかったかも。。)
result


ただ、正解の画像にある赤いドットが気になったので遊んでみた。(画像は小さいので拡大してみないと判りずらいと思う)このURLを叩けばその絵は間違っているとわざわざ教えてくれるのだが、こんな引っかけに引っかかるるのかな?〜(引っかかっている間もなく答えが判ってしまったのに。)




Level 15へつづく。

| | コメント (0) | トラックバック (0)

2005年9月25日 (日)

PL/SQL で Python Challenge 14 準備完了

Cubeをサテライトオフィスに移動させてしまったのでJava Stored Proedureが使える環境(MacOSX Panther 10.3.9)のOracle10g がなくなってしまった。Tiger 版の Oracle10g R2がいつリリースされるか不明なので外付けFIreWire DISKにMacOSX Panther(10.3.9)をインストールし、Oracle10g R1 for MacOSX Server環境を再構築した。今回は、PowerBook G4 1Ghz 1GB-ramにつないだ。これでPowerBookは MacOSX 10.4 Tiger と 10.3.9 Panther が起動できる環境になった。 さて、Level 14 再開しますか。。

| | コメント (0) | トラックバック (0)

2005年7月 5日 (火)

Tiger & Panther De Oracle10g

Oracleの自動起動の設定をしたが、一つ忘れていた。自動停止のことを。

MacOS X 10.2 JaguarのころからOSのシャットダウン時に、/Library/StartupItems/xxx/xxx スクリプトに記述された、StopService()が実行されていない。これはPantherでも、Tigerでも同じようである。(MacOS X Serverではどうなのかは調べていない)
調べる必要はあるが今のところは手動で、 /sbin/SystemStarter stop "xxxxx" として停止するのが一番無難のようだ。ちなみに、Jaguarに Oracle 9i をインストールした際に参考にした、O'Reillyの記事でも同様の記述がある。 今のところ、Oracleのインスタンスを手動停止しないと、 MacOS X では、 kill -TERM されてしまうということのようだ。 MacOS X Tiger Serverではどうなんだろう?? MacOS X Serverはまだないのだが、MacOS X Serverを入手したら、ぜひ試してみたい点である。 (Apple ScriptでShutdownイベントを拾えれば、自動停止は可能かもしれない。。。これも調べてみよう)
 

| | コメント (0) | トラックバック (0)

2005年6月13日 (月)

Panther De Oracle10g その12

ほかのことをやろうと思いログを見ていたら、ちょっとしたエラーを見つけた。Oracle10g for Mac OS Xの
インストールで追加される、dbstart にちょっとしたバグがあるのに気がついたのだ。(まぁ、影響ないといえばないが、あるといえばあるのだ。 Oracleさんらしいといえばそれまでだが・・・。)

オラクルから提供される、dbstart スクリプトを実行すると、以下のようなエラーが発生しているのに
気がつくと思う。

ps: illegal option -- f
usage: ps [-aChjlmMrSTuvwx] [-O|o fmt] [-p pid] [-t tty] [-U user]
[-N system] [-W swap]
ps [-L]


これはMac OS Xの ps のオプションが違うということをお忘れになっている、Oracleさんの単純なミスなのである。
$ORACLE_HOME/bin/dbstart を以下のように修正すれば問題ない。
#          pmon=`ps -ef | egrep pmon_$ORACLE_SID  | grep -v grep`
pmon=`ps -aux | egrep pmon_$ORACLE_SID | grep -v grep`
if [ "$pmon" != "" ];
then
STATUS="-1"
echo "Database \"${ORACLE_SID}\" already started."
fi


明日は、絶対、Python Challengeをやりたいが。。。。。。時間がとれるかが一番の問題だ・・・。

| | コメント (0) | トラックバック (0)

2005年6月12日 (日)

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のつづきでもやるかな。。。。

| | コメント (2) | トラックバック (0)

2005年6月 6日 (月)

Panther De Oracle10g その10

前回に引き続き、積み残した未確認事項の確認。

OEM 10g にSafariや、Mozillaでアクセスすると、java exceptionが発生し、stack traceが表示されてしまうということであった。(Panther De Oracle10g その7
実は、これも、前回(Panther De Oracle10g その9)と同様に ”既知の問題” なのである。付属するドキュメント(リリースノート)には、以下の記述がある。


Copy Required Font Files

Before installing the software, copy the font files from the fonts directory on the Oracle Database 10g CD-ROM to the /Library/Java/Home/lib/fonts directory on the system where you want to install the software. For RAC installations, copy the font files to the /Library/Java/Home/lib/fonts directory on each node of the cluster.
If you do not do this, runtime exceptions may occur when you access Oracle Enterprise Manager, iSQL*Plus, or iSearch through a browser that uses a multibyte character set, for example Japanese.

ということで、OEM 10g だけではなく、iSQL*Plusや、iSearch などのWebアプリケーションをマルチバイト環境(例えば日本語)で利用する場合、前述のフォントをコピーしてやらないと、runtime exceptionが発生するというものである。まさしくこの現象である。

(記事中に、Macromedia Flashの部分があるが、MacOS X上で動作する、Safari、Mozilla、FireFox、IEでは閲覧可能であることは確認した。Windows上でもMozillaでは閲覧可能を確認したが、IEでは表示できないようである、Windowsで閲覧する方は、FireFoxや、Mozillaをおすすめします。m(_ _)m。なお、Flash上にフローティングのコントローラがあるが、Flash上であれば自由に移動可能。

では、早速、確認してみよう。

1.フォントのコピー

リリースノートの記述に従い、インストールディスク(Panther De Oracle10g その7では、ダウンロードしたアーカイブを展開したので、/Volumes/Repository/temp/Disk1/fontsにあるフォントをコピーする)よりフォントを /Library/Java/Home/lib/fonts 以下にコピーする。(念のために /Library/Java/Home/lib/fonts はバックアップしておくことをお奨めする)コピー後の状態は以下、
fonts

2.OEM 10g の動作確認

1)oem 10g の起動

起動、停止などは、 emctl コマンドで行う。

cube: oracle$ emctl start dbconsole
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 ........... started.
------------------------------------------------------------------
Logs are generated in directory
/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther/cube.discus.jp_panther/sysman/log

2)Safariでアクセス

oem 10g のURLは、インストール完了時にOUIに表示されるのでが、 emctl コマンドで起動する際にも表示されているので、その URL にブラウザでアクセスする。今回は、MacOS X 標準ブラウザである Safari を利用した。

Yahoo! でました、でました、oem 10g の画面が。。。簡単な操作だけ試してみましたがいまのところ問題はでていない。

3)oem 10g の停止

cube: oracle$ emctl stop dbconsole
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 ...
... Stopped.
cube: oracle$

3.iSQL*Plus の動作確認

Oracle9iのころから iSQL*Plus の使い勝手が向上して、Oracle Clientの SQL*Plus とほぼ同等の操作が行えるようになり、Oracle Clientをインストールさせずに、iSQL*Plusを利用してもらう場面も多くなってきました。MacOS Xでも利用できるのなら使えればいいのだが・・・・どうなりますか・・。

1) iSQL*Plus の起動

起動、停止には、isqlplusctl コマンドを利用する。

cube: oracle$ isqlplusctl start
iSQL*Plus 10.1.0.3.0
Copyright (c) 2004 Oracle. All rights reserved.
Starting iSQL*Plus ...
iSQL*Plus started.

2) iSQL*Plus の動作確認

これまた、問題なく画面が表示されました!。

iSQL*Plusも簡単な操作をしてみたが、今のところ問題はでていない。

3) iSQL*Plus の停止

cube: oracle$ isqlplusctl stop
iSQL*Plus 10.1.0.3.0
Copyright (c) 2004 Oracle. All rights reserved.

Stopping iSQL*Plus ...
iSQL*Plus stopped.
cube: oracle$

積み残していた問題も解決!。 次回は、自動起動、停止の設定でもやりますか。。。。

| | コメント (0) | トラックバック (0)

2005年6月 5日 (日)

Panther De Oracle10g その9

前回(Panther De Oracle10g その8)で、リスナーがハングアップする問題が発生したが、その解決方法が、Oracle10g for MacOS Xに付属するリリースノートに記載されていた。ようするに、”既知の問題” ということですな〜。
リリースノートには以下のように記載されている。

Stopping the Oracle Net Listener


On Mac OS X, make sure that Oracle Names Server (ONS) is running before entering the listener stop command. If ONS is not running, the listener stop command may cause the listener to hang. To start ONS, enter the following command:


$ onsctl start

2007/2/27 追記

ここで言う、ONSとはOracle Notification Serverのことだということが確認できたので修正。尚、引用部分はそのまま残しておきます。


上記にある、ONSとは、Oracle9iASで初めて登場し、Oracle10gのRAC構成時でも利用されている Oracle Nofitication Service 又は、Oracle Notification Serverの事である事が判明! マニュアルバグですね。なお、それを直訳している日本語版マニュアルでも ONSをOracle Names Serverと記載している。 Oracle10g R1や、Oracle10gASなどでONSと言ったら現在では、Oracle Notification Serviceの事を指すと覚えておきましょう。


Oracle Namesなんて私も1999年に一度触ったことがある程度で完璧に記憶の外にあった等こともあるが、これが災いして、鵜呑みにしてしまった。 Oracle10g ASや、Oracle10g RACのマニュアルにも頻繁に登場してくるので紛らわしいと思いつつ。 このエントリでも実行している onsctlの中身を見ると、 起動しているのは、$ORACLE_HOME/opmn/bin/ons だったのである。

そういえば、Oracle Net Service 管理者ガイドにもOracle Namesのサポート停止とありましたね。今更ながら。。。。ですが。
http://otndnld.oracle.co.jp/document/products/oracle10g/101/generic/B13723-07/ch05.htm#568162

MacOSXのドキュメント (ONSをOracle Names Serverとしている)が直訳なのでしかなあるまい。
http://otndnld.oracle.co.jp/document/products/oracle10g/101/mac/B15788-01.pdf


以下、opmn関連のマニュアルなど
http://otndnld.oracle.co.jp/document/products/as10g/1013/doc_cd/core.1013/B28581-01/intro.htm

http://www.oracle.co.jp/events/10g_2005/conference/doc/b-3.pdf

ということで、記載の通り、Oracle Names Server Oracle Notification Serverは起動しておけ!というものである。そうしなければ、リスナーがハングするのである。
では、早速確認してみよう!


2007/2/27 修正

前述の通り、ここで言う、ONSとは、Oracle Names Serverではなく、Oracle Notification Serverであることが判明したので、Oracle Namesの概略に関する部分の記述を削除した。


cube: oracle$ onsctl start 
onsctl: ons started

cube: oracle$ 
cube: oracle$ lsnrctl start

LSNRCTL for MacOS X Server: Version 10.1.0.3.0 - Production on 05-6月 -2005 18:27:31

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
開始日 05-6月 -2005 18:27:32
稼働時間 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件のハンドラがあります...
コマンドは正常に終了しました。

cube: oracle$ 
cube: oracle$
cube: oracle$
cube: oracle$ lsnrctl stop

LSNRCTL for MacOS X Server: Version 10.1.0.3.0 - Production on 05-6月 -2005 18:27:42

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cube.discus.jp)(PORT=1521)))に接続中
コマンドは正常に終了しました。
cube: oracle$

cube: oracle$ 
cube: oracle$
cube: oracle$ onsctl stop
onsctl: shutting down ons daemon ...
cube: oracle$

おお〜っ!。 ハングアップしていたリスナーが正常に停止できました〜!。 一件落着。
次回は、oem 10g で発生する java exception を回避する方法及びその確認です。

| | コメント (0) | トラックバック (0)

Panther De Oracle10g その8

前回までで、一通りの作業は終わりましたが、まだ、確認していないことがありました。それと自動起動の設定も残っています。今回は、まだ確認していなかった Net Service の動作を簡単に確認しておきます。

1.リスナーを起動

2.データベースインスタンスの起動

3.Net Service経由でデータベースに接続

4.データベースインスタンスの停止

5.リスナーの停止

という流れで確認してみます。

まず、最初にインストール後のNet Service関連構成ファイル(listener.ora、sqlnet.ora、tnsnames.ora)は以下のようにしてあります。(ただし、netcaで作成された内容をベースに多少変更してあります。尚、うまく接続できない場合などには、構成ファイルを確認することをおすすめします。)

listener.oraの内容
cube: oracle$ cat $ORACLE_HOME/network/admin/listener.ora
# listener.ora Network Configuration File:
# /Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
# (SID_DESC =
# (SID_NAME = PLSExtProc)
# (ORACLE_HOME = /Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther)
# (PROGRAM = extproc)
# )
(SID_DESC =
(SID_NAME = panther)
(ORACLE_HOME = /Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
# (ADDRESS_LIST =
# (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
# )
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = cube.discus.jp)(PORT = 1521))
)
)
)

sqlnet.oraの内容
cube: oracle$ cat $ORACLE_HOME/network/admin/sqlnet.ora
# sqlnet.ora Network Configuration File:
# /Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

tnsnames.oraの内容
cube: oracle$ cat $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File:
/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

PANTHER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = cube.discus.jp)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = panther)
)
)

#EXTPROC_CONNECTION_DATA =
# (DESCRIPTION =
# (ADDRESS_LIST =
# (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
# )
# (CONNECT_DATA =
# (SID = PLSExtProc)
# (PRESENTATION = RO)
# )
# )

1.リスナーの起動

特に問題なく起動しているようです。
cube: oracle$ 
cube: oracle$
cube: oracle$ lsnrctl start

LSNRCTL for MacOS X Server: Version 10.1.0.3.0 - Production on 04-6月 -2005 22:10:08

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
開始日 04-6月 -2005 22:10:49
稼働時間 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件のハンドラがあります...
コマンドは正常に終了しました。

2.データベースインスタンスの起動

これも問題無いようですね。
cube: oracle$ 
cube: oracle$
cube: oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 土 6月 4 22:30:22 2005

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

SQL>
SQL> conn / as sysdba
アイドル・インスタンスに接続しました。
SQL>
SQL> startup
ORACLEインスタンスが起動しました。

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

念のためリスナーの状態を確認しておきます。

cube: oracle$ 
cube: oracle$
cube: oracle$ lsnrctl status

LSNRCTL for MacOS X Server: Version 10.1.0.3.0 - Production on 04-6月 -2005 22:39:31

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cube.discus.jp)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for MacOS X Server: Version 10.1.0.3.0 - Production
開始日 04-6月 -2005 22:10:49
稼働時間 0 日 0 時間 1 分 22 秒
トレース・レベル 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)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cube.discus.jp)(PORT=8080))
(Presentation=HTTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cube.discus.jp)(PORT=2100))
(Presentation=FTP)(Session=RAW))
サービスのサマリー...
サービス"panther"には、2件のインスタンスがあります。
インスタンス"panther"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
インスタンス"panther"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"pantherXDB"には、1件のインスタンスがあります。
インスタンス"panther"、状態READYには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。

3. Net Service経由で接続

これもすんなり接続できました。
cube: oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 日 6月 4 22:58:37 2005

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

SQL> conn scott/tiger@panther
接続されました。

SQL> exit

4.データベースインスタンスの停止

特に問題はないようです。
cube: oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 日 6月 4 23:01:00 2005

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

SQL> conn / as sysdba
接続されました。
SQL> shutdown
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> exit
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining optionsとの接続が切断されました。
cube: oracle$

5.リスナーの停止


順調過ぎましたね。ハングしているようです。10分以上経過しましたが制御が戻ってきません。キャンセルしてリスナーのステータスを確認してみると、リスナーは停止しているように見えます。しかし、psで確認してみると。。。tnslsnrは、まだ、居るんですよ。で、よくよく、リリースノートを読み返してみると、あるじゃないですか。このリリースでは、なんと、Oracle Namesを起動しておかないと、リスナー停止時にリスナーがハングします! と。
ということで、次回以降の Panther De Oracle10g では、そのあたりを確認していこうと思います。
cube: oracle$
cube: oracle$
cube: oracle$ lsnrctl stop

LSNRCTL for MacOS X Server: Version 10.1.0.3.0 - Production on 04-6月 -2005 23:02:02

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cube.discus.jp)(PORT=1521)))に接続中
^C
cube: oracle$
cube: oracle$
cube: oracle$ lsnrctl status

LSNRCTL for MacOS X Server: Version 10.1.0.3.0 - Production on 04-6月 -2005 23:20:08

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cube.discus.jp)(PORT=1521)))に接続中
TNS-12541: TNS: リスナーがありません。
TNS-12560: TNS: プロトコル・アダプタ・エラー
TNS-00511: リスナーがありません。
MacOS X Server Error: 61: Connection refused
cube: oracle$
cube: oracle$
cube: oracle$ ps -auxc | grep tnslsnr
oracle 737 0.0 0.5 45736 4052 ?? Ss 10:10PM 0:00.27 tnslsnr
cube: oracle$
cube: oracle$ kill -TERM 737
cube: oracle$
cube: oracle$ ps -auxc | grep tnslsnr
cube: oracle$

| | コメント (0) | トラックバック (0)

2005年5月31日 (火)

Panther De Oracle10g その7

いよいよ、Panther De Oracle10 のインストールもあと少し。。(今回の記事中に、Macromedia Flashの部分があるが、MacOS X上で動作する、Safari、Mozilla、FireFox、IEでは閲覧可能であることは確認した。Windows上でもMozillaでは閲覧可能を確認したが、IEでは表示できないようである、Windowsで閲覧する方は、FireFoxや、Mozillaをおすすめします。m(_ _)m。なお、Flash上にフローティングのコントローラがあるが、Flash上であれば自由に移動可能。

4.インストール

OTN-USからダウンロードした ship_mac_db.cpio を /Volumes/Repository/temp 以下で解凍済みなので、Disk1に移動する。そこには、runInstaller が あるはずなので、それを起動すれば OUIが起動する。
(注意
解凍した、Disk1以下の読み込み及び実行パーミッションがあることは事前に確認しておいてほしい。 => だったら、一番最初に解凍するより、Oracle所有者でログイン後に解凍する手順を書けばいいのに!。と自分へツッコミ!)
cube: oracle$ cd /Volumes/Repository/temp
cube:/Volumes/Repository/temp oracle$ ll
total 2678000
drwxr-xr-x 9 discus wheel 306 May 17 17:11 Disk1
-rw-r--r-- 1 discus wheel 652902028 Dec 23 09:47 ship_mac_db.cpio.gz
cube:/Volumes/Repository/temp oracle$ cd Disk1
cube:/Volumes/Repository/temp/Disk1 oracle$ ll
total 24
drwxr-xr-x 6 discus wheel 204 May 17 17:09 doc
drwxr-xr-x 7 discus wheel 238 May 17 17:09 fonts
drwxr-xr-x 12 discus wheel 408 May 17 17:09 install
drwxr-xr-x 8 discus wheel 272 May 17 17:09 response
-rwxr-xr-x 1 discus wheel 1259 Dec 22 07:33 runInstaller
drwxr-xr-x 16 discus wheel 544 May 17 17:11 stage
-rwxr-xr-x 1 discus wheel 5171 Dec 22 07:33 welcome.htm
cube:/Volumes/Repository/temp/Disk1 oracle$
cube:/Volumes/Repository/temp/Disk1 oracle$ ./runInstaller &
[1] 2754
cube:/Volumes/Repository/temp/Disk1 oracle$ Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini,
no system pre-requisite checks will be executed.
Preparing to launch Oracle Universal Installer
from /tmp/OraInstall2005-05-22_11-00-16PM.
Please Oracle Universal Installer, バージョン 10.1.0.3.0 製品版
Copyright (C) 1999, 2004, Oracle. All rights reserved.


[1]+ Done ./runInstaller
cube:/Volumes/Repository/temp/Disk1 oracle$

4−1) orainstRoot.shの実行

Last login: Sun May 22 23:20:55 on ttyp2
Welcome to Darwin!
cube: oracle$ sudo sh
Password:
sh-2.05b# cd /Volumes/ExtraDisk2/u01/app/oracle/oraInventory
sh-2.05b# ./orainstRoot.sh
chmod: /var/opt/oracle: No such file or directory
Oracleインベントリ・ポインタ・ファイルを作成しています。(/var/opt/oracle/oraInst.loc)
次のグループ名を変更します: /Volumes/ExtraDisk2/u01/app/oracle/oraInventory
新規グループ名: oinstall.
sh-2.05b#

このあと再び、OUIに戻り、インストールを続ける。

4−2)root.shの実行

インストールも後半になると、unix系プラットフォームでは、おなじみのroot.shの実行が必要になる。(なぜか、こればかりは、10gになってもインストーラー側ではやってくれないので、未だに人手に頼っている!)
root.sh の実行中に Oracle Cluster Ready 用の処理があるようだ。クラスタ環境でもなくCRSもインストールしていないので、CRSデーモンは絶対起動しないのである。最大で、600秒間起動を待っているようなので、じっと(10分間)我慢であった。。。。。(ほんとかよ〜〜)
じっと我慢していると、タイムアウトしたのか、こんどは、ASM関連らしき処理ステップで散々、no such file or directoryを連発して、”無事??” 終了する。Linuxや他のUnix系の10gでは、こんなことになんなかったような気がするが。。。ま、いいか!。Linux版Oracleも別途インストールして確かめてみればいいし。。。
Last login: Sun May 22 16:21:34 on ttyp1
Welcome to Darwin!
cube: oracle$ sudo sh
Password:
sh-2.05b# cd /Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther
sh-2.05b# ls
Apache install oc4j relnotes
OPatch install.platform olap root.sh
assistants inventory opmn slax
bin javavm oraInst.loc sqlj
cdata jdbc oracore sqlplus
config jdk ord srvm
copyJDK.sh jlib oui sysman
css jre owm uix
ctx ldap perl ultrasearch
dbs lib plsql wwg
demo md precomp xdk
diagnostics mesg racg
dm network rcpJDK.sh
has nls rdbms
sh-2.05b# ./root.sh
Running Oracle10 root.sh script...
\nThe following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther

Enter the full pathname of the local bin directory:
[/usr/local/bin]:

Creating /usr/local/bin directory...
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...

\nCreating /etc/oratab file...
Adding entry to /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
/etc/oracle does not exist. Creating it now.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'wheel'..
Operation successful.
Oracle Cluster Registry for cluster has been initialized

cp: /etc/watchdog.conf: No such file or directory
cat: /etc/watchdog.conf: No such file or directory
Adding to inittab
usage: kill [-s signal_name] pid ...
kill -l [exit_status]
kill -signal_name pid ...
kill -signal_number pid ...
Checking the status of Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.


Giving up: Oracle CSS stack appears NOT to be running.
/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther/root.sh:
line 788: /System/Library/StartupItems/OracleCRS: is a directory
Oracle CSS service would not start as installed
Automatic Storage Management(ASM) cannot be used until Oracle CSS service is started
mkdir: /opt: No such file or directory
mkdir: /opt/ORCLfmap: No such file or directory
mkdir: /opt/ORCLfmap/prot1_32: No such file or directory
mkdir: /opt/ORCLfmap/prot1_32: No such file or directory
mkdir: /opt/ORCLfmap/prot1_32: No such file or directory
cp: /opt/ORCLfmap/prot1_32/bin: No such file or directory
cp: /opt/ORCLfmap/prot1_32/bin: No such file or directory
chmod: /opt/ORCLfmap/prot1_32/bin/fmputl: No such file or directory
chmod: /opt/ORCLfmap/prot1_32/bin/fmputlhp: No such file or directory
cp: /opt/ORCLfmap/prot1_32/etc: No such file or directory
sh-2.05b#
sh-2.05b#
sh-2.05b#
ひとまず、インストールはできたようである。ここからは、DBCA (Database Configuration Assistant)が起動して、データベースを作成してくれる。

5.インストール後の作業

Oracle所有者でログインし、.bash_profileを編集し、必要な環境変数を追加する。追加したら、.bash_profileを読み込ませて sql*plusを使って、停止、起動の確認を する。
cube: oracle$ cat .bash_profile
##
# for Oracle10g
##
umask 022

TEMP=/tmp
TMPDIR=/tmp

ORACLE_BASE=/Volumes/ExtraDisk2/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.1.0/panther
ORACLE_SID=panther
NLS_LANG=Japanese_Japan.JA16SJISTILDE
DYLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$DYLD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:$PATH
export TEMP TMPDIR ORACLE_BASE ORACLE_HOME ORACLE_SID NLS_LANG DYLD_LIBRARY_PATH PATH

cube: oracle$ . .bash_profile
cube: oracle$
作成したインスタンスが起動しているはずなので、停止、してから再起動してみる。ふ〜〜〜。問題ないようである。(今回は、Windowsからも試してみたいかったので、文字コードを JA16SJISTILDE にしたが、以前のリリース(開発途上版?だったか?)では、文字コードがMACSJISだとデータベース作成に失敗するという問題があった。このリリースでは問題ないようである。)
yahoo

OEMを起動すると、Safari1.3では、対象外と言われるし、Mozilla1.7.7ではこのような、Javaのスタックトレースをたっぷり、おみまいされた!
なんとかしろ〜〜〜。って叫んだところでどうにもならんが、、付属するリリースノートを読み返すと、どうもフォント関係の問題のようで、そのフォントをjavaのライブラリにコピーしてやればよいらしい。現時点では放っておくことにする。ちなみに、Safariでサブミットボタンがないのだが、ENTER キーには反応して、このような例外を吐き出してくれた!SafariとMozillaでアクセスしてみた、OEM 10g ....
49 50 51
でも、データベース本体は、無事? のようなので、ここで、Panther De Oracle10g はひとまず終了。 (MacOS X Tigerは、現時点(2005/05/31)で未サポートのようだが、とりあえずインストールしてみるか・・・ということで、次は、Tiger De Oracle10g です。)

| | コメント (0) | トラックバック (0)

2005年5月30日 (月)

Panther De Oracle10g その6

oracle所有者でのインストール事前準備です。
Oracle6,7,8,8iまで、unix系インストールってそれほど進化してなかったんですが、Oracle9i R1、R2そして、Oracle10gと、インストールは確実に楽になってきているように思います。(今のところ、事前準備に関しては、Windows版ほど簡単だとは感じませんが、Windows環境では、レジストリという手強い相手がいますので、個人的には、unix系のほうが好きです。そういえば、昔のunix系プラットフォームで、インストール失敗原因の一つに、環境変数LANGをunsetし忘れてしまうというのがありました。 いまそんなの気にしなくていいですから、楽になりましたよ、ほんとに。)

3.Oracle所有者での作業

3−1)Oracle所有者でログイン

ログインウィンドウからOracle所有者にログインして、Terminalを起動し、Terminalの文字エンコーディングを設定します。Terminalのメニュー->ウィンドウ設定...->ターミナルインスペクタ->ポップアップメニュー->ディスプレイを選択->文字セットエンコーディングを日本語(MacOS)にします。最後にデフォルトにするボタンをクリック!。
terminal_charaset

3−2)インストール用環境変数の設定

.bash_profileを作成し、以下のようにTEMP TMPDIR ORACLE_BASE ORACLE_SIDの環境変数を設定。また、umaskの設定もお忘れなく。ORACLE_BASEには、前述、2−6)でORACLE_BASE用に作成したパスを設定。ORACLE_SIDには、今回作成するインスタンス名 tiger を設定。

cube: oracle$ vi .bash_profile
cube: oracle$
cube: oracle$ cat .bash_profile
umask 022

# oracle environment
TEMP=/tmp
TMPDIR=/tmp
ORACLE_BASE=/Volumes/ExtraDisk2/u01/app/oracle
ORACLE_SID=panther
export TEMP TMPDIR ORACLE_BASE ORACLE_SID

cube: oracle$
cube: oracle$ . .bash_profile
cube: oracle$
cube: oracle$
cube: oracle$ echo $ORACLE_BASE
/Volumes/ExtraDisk2/u01/app/oracle
cube: oracle$
cube: oracle$ echo $ORACLE_SID
panther
cube: oracle$
cube: oracle$ echo $TEMP
/tmp
cube: oracle$
cube: oracle$ echo $TMPDIR
/tmp
cube: oracle$
cube: oracle$ umask
0022
cube: oracle$

とインストール前のOracle所有者での設定はここまでです。Oracle9i R2あたりから、インストール時の必須環境変数が随分簡素化されたので たったこれだけです。では、次はいよいよ、Oracle Universal Installer(OUI)でインストールを行います。(どうなりますか。。。。)

| | コメント (1) | トラックバック (0)

panther De Oracle10g その5

さて、rootユーザでの作業も終了間近、、、Macでコマンドばかり使っていると、GUIが恋しくなってくる。。。かな。

2−6)ディレクトリの作成

OFA(Optimal Flexible Architecture)に基づいて、Oracleソフトウェアをインストールするディテクトリ及び、データベースファイルを配置するディレクトリを作成します。(OFAについては、インストレーションガイドを参照してください)
本番環境では、OFAに基づいて、複数の物理ディスクや、論理ボリュームにOracleソフトウェアや、データファイル、制御ファイル、REDOログファイル、アーカイブREDOログファイルを配置するようにしますが、インストールする PowerMac G4 Cube にはディスクが1本で、パーティションが4つ作成してあるだけなので、ファイルを分散配置しても、パフォーマンスや、ディスク障害に対してはほとんど効果はありません。ただし、管理という側面からはそれなりに意味があるので /Volumes/ExtraDisk2/u01以下をOracleソフトウェア用とREDOログファイル、制御ファイル、/Volumes/ExtraDisk2/u02 以下をデータファイル、REDOログファイル、制御ファイル、そして、/Volumes/ExtraDisk/u03以下は、REDOログファイルと制御ファイル配置用とておきます。(お試し環境なので、ノーアーカイブモードでデータベースを作成します)
各ディレクトリ作成後に、ディレクトリのオーナーをOracle所有者へ、グループを今回のインストールでは、oinstallに変更。それと、パーミッションの変更も忘れずに!
sh-2.05b# cd /Volumes/ExtraDisk2/
sh-2.05b# pwd
/Volumes/ExtraDisk2
sh-2.05b# mkdir -p u01/app/oracle
sh-2.05b# chown -R oracle:oinstall u01
sh-2.05b# chmod -R 775 u01
sh-2.05b#
sh-2.05b# mkdir -p u02/oradata
sh-2.05b# chown -R oracle:oinstall u02
sh-2.05b# chmod -R 775 u02
sh-2.05b#
sh-2.05b# cd /Volumes/ExtraDisk
sh-2.05b# pwd
/Volumes/ExtraDisk
sh-2.05b# man mkdir
sh-2.05b# mkdir -p u03/oradata
sh-2.05b# chown -R oracle:oinstall u03
sh-2.05b# chmod -R 775 u03
sh-2.05b#
ここもコマンドで行っていますが、コマンドを使うのは苦手という方は、Finderから各フォルダを作成後、フォルダの所有権とアクセス権を変更すれば同じです。
mk_and_permission

2−7)カーネルパラメータの調整及び、シェル内のリソース制限値調整

MacOS Xもunixベースですから、他のunix系OSと同様に、カーネルパラータを調整しておく必要があります、Installation Guideに記載されているカーネルパタメータ以上になっているか確認し、必要があれば調整してください。
マニュアルに記載されている値は、以下の通り。

kern.corefile = core
kern.sysv.semmni = 87381
kern.sysv.semmns = 87381
kern.sysv.semmnu = 87381
kern.sysv.semmsl = 87381
kern.sysv.semume = 10
kern.sysv.maxproc = 2068
kern.sysv.maxprocperuid = 2068

2−7−1) 現在値の確認

お試し環境を作成するだけなので、扱えるファイル数はデフォルトのままで問題ないと思いますが、インストレーションガイドでは、シェル内のリソース制限値を変更するようになっているため、カーネルパラメータのmaxfilesとmaxfilesperprocも確認しておきます。マニュアルでは、Maximum number of open file descriptorsは65536以上にするようにとなっています。

  • カーネルパラメータの確認
  • sh-2.05b# sysctl -a | grep -E corefile\|sem\|maxproc\|maxfile
    kern.maxproc = 532
    kern.maxprocperuid = 100
    kern.corefile = /cores/core.%P
    kern.sysv.semmni: 87381
    kern.sysv.semmns: 87381
    kern.sysv.semmnu: 87381
    kern.sysv.semmsl: 87381
    kern.sysv.semume: 10
    kern.posix.sem.max: 10000
    kern.maxfiles = 12288
    kern.maxfilesperproc = 10240
    sh-2.05b#

  • シェル内のリソース制限値を確認
  • sh-2.05b# ulimit -aH
    core file size (blocks, -c) 0
    data seg size (kbytes, -d) 6144
    file size (blocks, -f) unlimited
    max locked memory (kbytes, -l) unlimited
    max memory size (kbytes, -m) unlimited
    open files (-n) unlimited
    pipe size (512 bytes, -p) 1
    stack size (kbytes, -s) 65536
    cpu time (seconds, -t) unlimited
    max user processes (-u) 532
    virtual memory (kbytes, -v) unlimited
    sh-2.05b#
    sh-2.05b# ulimit -aS
    core file size (blocks, -c) 0
    data seg size (kbytes, -d) 6144
    file size (blocks, -f) unlimited
    max locked memory (kbytes, -l) unlimited
    max memory size (kbytes, -m) unlimited
    open files (-n) 256
    pipe size (512 bytes, -p) 1
    stack size (kbytes, -s) 8192
    cpu time (seconds, -t) unlimited
    max user processes (-u) 100
    virtual memory (kbytes, -v) unlimited

    2−7−2)カーネルパラメータの変更

    私の環境では、maxproc 関連だけを調整すれば問題ないようですから、maxproc と macprocperuid を2068に増加し、 maxfiles を 67584、 maxfilesperproc を 65535 に増加することにします。

    /etc/sysctl.conf を編集して、カーネルパラメータを設定することにしますが、デフォルトでは、sysctl.conf が存在していないようなので vi なり、pico なり、emcas なり、お好きなエディタで作成しちゃいましょ。

    sh-2.05b# vi /etc/sysctl.conf
    sh-2.05b# cat /etc/sysctl.conf
    ##
    # for Oracle10g EE 10.1.0.3
    # created by discus. 2005-5-21.
    ##
    kern.maxfiles=67584
    kern.maxfilesperproc=65536
    kern.maxproc=2068
    kern.maxprocperuid=2068

    2−7−3)シェル内のリソース制限値調整

    注)
    インストレーションガイドでは、以降で解説する /System/Library/StartupItems/IPServices/IPServices と /etc/rc を変更するように記載されているが、/etc/rc.common でシェルリソース制限値を設定するほうがよいのではないかと思える。/etc/rc.common の最初には以下のコメントがある。
    #######################
    # Configure the shell #
    #######################
    まぁ、ちゃんと調べたわけではないので個人的な考えですが・・・。
    それではマニュアル通りに進めることにして、/System/Library/StartupItems/IPServices/IPServices をお好きなテキストエディタ開き、以下の ulimitコマンドを、IPServices内の StartServices関数に追加。

    2−7−1)のリソース制限値のハードリミットで、open file は unlimited になっていますから、max user processes のハードリミットとソフトリミットを調整することにします。

    以下のコマンドでいうと、最初の2つだけを設定することにします。
    ulimit -Hu 2068
    ulimit -Su 2068
    ulimit -Hn 65536
    ulimit -Sn 65536
    変更後の /System/Library/StartupItems/IPServices/IPServices
    sh-2.05b# cd /System/Library/StartupItems/IPServices
    sh-2.05b# ls -l IPServices
    -rwxr-xr-x 1 root wheel 283 Mar 24 10:49 IPServices
    sh-2.05b# vi IPServices
    sh-2.05b# cat IPServices
    #!/bin/sh

    ##
    # IP Services
    ##


    . /etc/rc.common

    StartService ()
    {
    ###########################################################
    # set resource limit in shell for Oracle10g

    ulimit -Hu 2068
    ulimit -Su 2068
    ###########################################################

    ##
    # Internet super-server.
    ##
    ConsoleMessage "Starting internet services"
    xinetd -inetd_compat -pidfile /var/run/xinetd.pid

    ##
    # Internet Address Sharing.
    ##
    if [ -a /etc/com.apple.named.conf.proxy ]
    then
    ConsoleMessage "Starting Internet address sharing"
    /usr/libexec/InternetSharing
    fi

    }

    StopService ()
    {
    return 0
    }

    RestartService ()
    {
    return 0
    }

    RunService "$1"
    sh-2.05b#

    次に、同じ ulimit コマンドを /etc/rc スクリプトの、SystemStarter コマンドの前に追加します。

    変更後の /etc/rc の内容(長いので途中略)
    sh-2.05b# cd /etc 
    sh-2.05b# ls -l rc
    -rw-r--r-- 1 root wheel 7782 Mar 24 10:49 rc
    sh-2.05b# vi rc
    sh-2.05b# cat rc
    #!/bin/sh

    ##
    # Multi-user startup script.
    #
    # Copyright 1997-2002 Apple Computer, Inc.
    #
    # Customize system startup by adding scripts to the startup
    # directory, rather than editing this file.
    ##

    stty intr undef
    stty kill undef
    stty quit undef
    stty susp undef
    stty start undef
    stty stop undef
    stty dsusp undef

    . /etc/rc.common

    〜〜〜〜〜〜中略〜〜〜〜〜

    ############################################
    # set resource limit in shell for Oracle10g
    ############################################
    ulimit -Hu 2068
    ulimit -Su 2068
    ############################################


    # Start the Language Chooser. This code should be able to go away as far as I
    # know once loginwindow becomes dynamic and SystemStarter exits the GUI
    # business.
    STARTPBS="/System/Library/CoreServices/pbs" # apps stall w/o
    BUDDYCOOKIE="/var/db/.AppleSetupDone"
    LCACOOKIE="/var/db/.RunLanguageChooserToo"
    STARTLCA="/System/Library/CoreServices/Language Chooser.app/Contents/MacOS/Language Chooser"

    if [ -x "$STARTLCA" -a -x "$STARTPBS" -a ! -f "$BUDDYCOOKIE" -a -f "$LCACOOKIE" ]; then
    SystemStarter -g start Core(J\(B Graphics
    "$STARTPBS" &
    pbspid=$!
    "$STARTLCA"
    kill $pbspid # XSelect does this independently
    fi

    if [ ! -s "/var/log/CDIS.custom" ]; then
    echo "Language Chooser seems to have failed; defaulting to English"
    echo "LANGUAGE=English" > "/var/log/CDIS.custom"
    fi

    export LANGUAGE

    SystemStarter -gr ${VerboseFlag} ${SafeBoot}

    if [ -f /etc/rc.local ]; then
    sh /etc/rc.local
    fi

    exit 0
    sh-2.05b#

    ここで一旦、再起動(問題なく起動したか syslog などを確認!)。

    ここまでで、rootユーザでの作業は終わりです。rootユーザの作業で作成した Oracle所有者での作業に、つづく。。

    | | コメント (0) | トラックバック (0)

    2005年5月29日 (日)

    Panther De Oracle10g その4

    これもUnix系プラットフォームでは、おなじみ、Oracle所有者用アカウントの作成です。MacOSXでも同じようなものですが、フラットファイルを利用せず、NetInfoManagerを利用しているところがことなります。が、/etc/group や /etc/passwd を利用した場合と大きな違いはありません。 

    2−5)グループ及び、Oracle所有者の作成

    2−5−1)oinstall及び、dbaグループの作成

    オラクルのインストールでお約束である、グループの作成です。 /etc/groups を利用することもできますが、ここでも、NetInfoManager を利用します。
    oinstall 及び、 dba グループが存在しないこと確認しておきます。(ここでは、 oinstall 及び、dba グループの gid をそれぞれ、100、101に設定するため、100と101が gid として利用されていないことも合わせて確認おきます。)
    sh-2.05b# nireport . /groups name gid | grep -E oinstall\|dba
    sh-2.05b# nireport . /groups gid | grep -E 100\|101
    sh-2.05b#
  • oinstall グループ及び、dba グループを niclコマンドで作成、追加します。
  • sh-2.05b# nicl . -create /groups/oinstall passwd "*"
    sh-2.05b# nicl . -append /groups/oinstall gid 100
    sh-2.05b# nicl . -create /groups/dba passwd "*"
    sh-2.05b# nicl . -append /groups/dba gid 101
    sh-2.05b# nicl . -append /groups/oinstall users oracle
    sh-2.05b# nicl . -append /groups/dba users oracle
    sh-2.05b#
  • グループはうまくできているようですね。
  • sh-2.05b# nireport . /groups name gid passwd users | grep -E oinstall\|dba
    oinstall 100 * oracle
    dba 101 * oracle
    sh-2.05b#
    sh-2.05b#

    NetInfoManagerではこのようになります。
    netinfo_group_panther   netinfo_user_panther

    2−5−2)Oracle所有者の作成

    /etc/passwd は使用しません、NetInfoManager を利用します。
    oracle というユーザを uid 502 で作成するので、既存ユーザとぶつからないかチェック。
    sh-2.05b# nireport . /users name uid | grep -E oracle\|502
    sh-2.05b#
    /Users 以下に oracle というディレクトリを下記条件、手順で作成。 なお、dittoコマンドでは、NetInfoではできないユーザディレクトリの各国語対応のテンプレートをコピーします。 これを忘れても、ログインはできますし、オラクルのインストール及び利用は可能ですが、一部のGUIアプリケーションでは、起動できなかったり、文字化けなどを起こすアプリケーションがありますのでご注意ください。
  • niclコマンドで oracleユーザを作成します。
  • gid:100 (oinstallグループ)
  • uid:502
  • shell:/bin/bash
  • ホームディレクトリ:/Users/oracle
  • realname:"Oracle Owner"
  • /Users/oracle のオーナーとグループを oracle、oinstallに変更。
  • 最後に、oracle所有者のパスワードを設定して終了!
  • sh-2.05b# mkdir /Users/oracle
    sh-2.05b# ditto /System/Library/User\ template/Japanese.lproj /Users/oracle
    sh-2.05b# nicl . -create /users/oracle
    sh-2.05b# nicl . -append /users/oracle gid 100
    sh-2.05b# nicl . -append /users/oracle uid 502
    sh-2.05b# nicl . -append /users/oracle shell /bin/bash
    sh-2.05b# nicl . -append /users/oracle home /Users/oracle
    sh-2.05b# nicl . -append /users/oracle realname "Oracle Owner"
    sh-2.05b# chown oracle:oinstall /Users/oracle
    sh-2.05b# passwd oracle
    Changing password for oracle.
    New password:
    Retype new password:
    sh-2.05b#
  • 作成内容の確認!
  • sh-2.05b# nireport . /users name gid uid shell home realname | grep oracle
    oracle 100 502 /bin/bash /Users/oracle Oracle Owner
    sh-2.05b#

    NetInfoManagerでのこのようになります。
    netinfo_oracle_user_panther
  • oracle所有者にログインできるか確認。コマンドで確認するなら、
  • [cube:] discus% su - oracle
    Password:
    cube: oracle$

    Fast User Switchなどで確認してもよいですね!。
    oracle_user_login_panther


    rootユーザでの作業はまだあります。次は、ディレクトリの作成・・・

    | | コメント (0) | トラックバック (0)

    Panther De Oracle10g その3

    rootユーザでの作業の続き。。

    2−4)IPアドレス、ホスト名の確認及び設定

    注)

    ネットワークに接続しないで行う場合には、以下の設定は行わなくてもインストールできます。その場合には、cube.local(127.0.0.1)のままにしておけば問題なくインストールできますが、このインストールでは、マニュアルで推奨されている通り、ホスト名を設定して行います。

    OEMや、Net Serviceの設定があるので、この時点でホスト名やIPアドレスを決めておきます!

    固定IPアドレスを割り当て、デフォルトのホスト名も変更します。(私の環境では、192.168.1.5に設定して、ホスト名は、cube.discus.jp と設定することにします)

    2−4−1)hostnameの確認!

    あれれ、domain名が .local になってますね!(デフォルトのままです!) 実はシステム環境設定->共有 でホスト名は変更できるのですが、ドメインは .local のまま変更できません! でどうするかというと /etc/hostconfig の hostname を変更します!

    sh-2.05b# hostname
    cube.local
    sh-2.05b#

    HOSTNAME=-AUTOMATIC- の部分を HOSTNAME=cube.discus.jp に変更して保存します。vi でも、pico でも、emacs でもお好きなエディタで編集してください。(もし、 HOSTNAME が存在していなければ追加してください) 以下、/etc/hostconfig の変更前、後の内容を示します。(HOSTNAME の部分だけに注目!)

    変 更 前 変 更 後
    sh-2.05b# cat /etc/hostconfig
    ##
    # /etc/hostconfig
    ##
    # This file is maintained by the system control panels
    ##
    # Network configuration
    HOSTNAME=-AUTOMATIC-
    ROUTER=-AUTOMATIC-
    # Services
    AFPSERVER=-NO-
    APPLETALK=-NO-
    AUTHSERVER=-NO-
    AUTOMOUNT=-YES-
    CONFIGSERVER=-NO-
    CUPS=-YES-
    IPFORWARDING=-NO-
    IPV6=-YES-
    MAILSERVER=-NO-
    NETBOOTSERVER=-NO-
    NETINFOSERVER=-AUTOMATIC-
    NISDOMAIN=-NO-
    RPCSERVER=-YES-
    TIMESYNC=-YES-
    QTSSERVER=-NO-
    SSHSERVER=-NO-
    WEBSERVER=-NO-
    SMBSERVER=-NO-
    DNSSERVER=-NO-
    CRASHREPORTER=-YES-
    PORTMAP=-YES-
    NFSLOCKS=-AUTOMATIC-
    SNMPSERVER=-NO-
    SPOTLIGHT=-YES-
    sh-2.05b#
    sh-2.05b# cat /etc/hostconfig
    ##
    # /etc/hostconfig
    ##
    # This file is maintained by the system control panels
    ##
    # Network configuration
    HOSTNAME=cube.discus.jp
    ROUTER=-AUTOMATIC-
    # Services
    AFPSERVER=-NO-
    APPLETALK=-NO-
    AUTHSERVER=-NO-
    AUTOMOUNT=-YES-
    CONFIGSERVER=-NO-
    CUPS=-YES-
    IPFORWARDING=-NO-
    IPV6=-YES-
    MAILSERVER=-NO-
    NETBOOTSERVER=-NO-
    NETINFOSERVER=-AUTOMATIC-
    NISDOMAIN=-NO-
    RPCSERVER=-YES-
    TIMESYNC=-YES-
    QTSSERVER=-NO-
    SSHSERVER=-NO-
    WEBSERVER=-NO-
    SMBSERVER=-NO-
    DNSSERVER=-NO-
    CRASHREPORTER=-YES-
    PORTMAP=-YES-
    NFSLOCKS=-AUTOMATIC-
    SNMPSERVER=-NO-
    SPOTLIGHT=-YES-
    sh-2.05b#

    2−4−2)IPアドレスの設定

    /etc/hosts は利用しないで NetInfoManager を利用します(デフォルト。 /etc/hosts を利用するようにすることもできますがデフォルトのまま NetInfoManager を利用します。) ちなみに、Finderウィンドウ->サイドバーのアプリケーション->ユーティリティ->ディレクトリアクセスをダブルクリックで現状のディレクトリアクセスを参照、変更できます。 directory_access

    まずは、nireportコマンドで cube.discus.jp (192.168.1.5) が存在しないことを確認。 まだ登録されいないようですね!

    sh-2.05b# nireport . /machines name ip_address
    localhost 127.0.0.1
    broadcasthost 255.255.255.255
    sh-2.05b#
    /etc/host にエントリを登録するような感じで、niclコマンドでホスト名とIPアドレスを登録します。 登録できたら、nireportで確認! niclコマンドや、nireportコマンドは、NetInfoManeger のコマンドです。詳細は、manで確認するか、googleで検索したり、Panther De Oracle10g その1で紹介した書籍などを参考にしてくだい。

    次に、cube.discus.jp をローカルドメインの /machines ディレクトリに作成して、IPアドレスとして 192.168.1.5 を追加、さらにホスト名の別名として、 cube を追加しています。

    sh-2.05b# nicl . -create /machines/cube.discus.jp
    sh-2.05b# nicl . -append /machines/cube.discus.jp ip_address 192.168.1.5
    sh-2.05b# nicl . -append /machines/cube.discus.jp name cube

    うまく作成できたか nireport コマンドで確認!

    sh-2.05b# nireport . /machines name ip_address
    localhost 127.0.0.1
    broadcasthost 255.255.255.255
    cube.discus.jp,cube 192.168.1.5
    sh-2.05b#


    NetInfoManagerのコマンドではなく、GUIでも同様の操作は行えます。Macですから、GUIがいい! という方は、GUIで行ってもかまいません。
    NetInfoManagerは、Finderウィンドウ->アプリケーション->ユーティリティ->NetInfo マネージャをダブルクリックして起動できます。
    netinfo
    ちなみに、/etc/hosts は、OSインストール時のままで何もしていません。

    sh-2.05b# cat /etc/hosts
    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting. Do not change this entry.
    ##
    127.0.0.1 localhost
    255.255.255.255 broadcasthost
    ::1 localhost
    sh-2.05b#

    ここで、一旦、再起動。

    再起動したら、Finderウィンドウ->アプリケーション->ユーティリティ->Terminalをダブルクリックして起動し、hostname の確認や ping でネットワークの確認をしておきます。

    pb17:〜 oracle$ sudo sh
    Password:
    sh-2.05b# hostname
    cube.discus.jp
    sh-2.05b#
    sh-2.05b# ping -c 5 cube.discus.jp
    PING cube.discus.jp (192.168.1.5): 56 data bytes
    64 bytes from 192.168.1.5: icmp_seq=0 ttl=64 time=0.133 ms
    64 bytes from 192.168.1.5: icmp_seq=1 ttl=64 time=0.129 ms
    64 bytes from 192.168.1.5: icmp_seq=2 ttl=64 time=0.125 ms
    64 bytes from 192.168.1.5: icmp_seq=3 ttl=64 time=0.127 ms
    64 bytes from 192.168.1.5: icmp_seq=4 ttl=64 time=0.133 ms

    --- localhost ping statistics ---
    5 packets transmitted, 5 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 0.125/0.129/0.133/0.003 ms
    sh-2.05b#

    今日はここまで。rootでの作業は、まだ続く!

    | | コメント (0) | トラックバック (0)

    2005年5月27日 (金)

    Panther De Oracle10g その2

    rootユーザでの作業(Oracleインストール時のお約束!)

    2. rootユーザでの事前準備

    事前に、MacOS X 10.3.9 (panther) と XCode1.1 をインストールしておきます。なお、なお、MacOS X 10.3.9は、Pantherの最新リリースで、XCode1.1も日本語版では最新のものです(英語版では、XCode2.0までリリースされています。)

    MacOS Xでは、MacOS X Serverにインストールされている管理用ツールがないのですが、NetInfoManagerを利用するだけでも十分設定が可能なので心配ありません。また、NetInfoManagerは、GUIでも利用できますが、今回は、TerminalからNetInfoManagerコマンドを利用して設定します。また、デフォルトでは、rootユーザはdisableになっていますので、NetInfoManagerでrootユーザをenableにしないと、直接、rootユーザでログインできません

    [pb17:] discus% su -
    Password:
    su: Sorry
    [pb17:] discus%
    しかし、sudoコマンドでrootになることはできるので、NetInfoManagerでrootユーザをenableにしなくても問題ありません。 Oracle10g EE Release 1(10.1.0.3) for Apple Mac OS X Server Quick Installation Guideでは、
    The system must meet the following minimum hardware requirements:
    RAM 512MB
    Swap 1GB or twice the size of RAM
    Disk space in /tmp 400MB
    Disk space for Software files 2GB
    Disk space for database files 1.2GB

    と記載されていますので、これ以上のサイズがあれば問題ありません。 作成するデータベースをカスタマイズしてサイズを大きくするのであればその分は考慮してください。Swapは、MacOS Xではダイナミックページャが管理しており、動的に作成してくれるのでシステムディスクにそれ以上の空きがあれば十分でしょう。

    マニュアルに書いてある手順で進めますが、ワークグループマネージャはMacOS X Serverにしか付属していないので、その部分はNetInfoManagerを利用します。また、ローカルで利用するだけならネットワークへの接続は不要なのですが、前述した通り、マニュアルに沿って作業を行うので、ネットワーク(LAN)には接続した状態を前提にしておきます。

    2−1)rootユーザに切り替える!

    [pb17:] discus%
    sudo sh
    Password:
    sh-2.05b#
    sh-2.05b# whoami
    root
    sh-2.05b# echo $SHELL
    /bin/bash

    2−2)メモリとディスク空き容量の確認!

  • システムディスク及び、/tmpは、十分空いてます。
  • sh-2.05b# df -h /
    Filesystem Size Used Avail Capacity Mounted on
    /dev/disk0s12 15G 6.0G 8.8G 41% /

    sh-2.05b# df -h /tmp
    Filesystem Size Used Avail Capacity Mounted on
    /dev/disk0s12 15G 6.0G 8.8G 41% /
  • ディスクは内蔵が1本、FireWireの外付けが1本なので、Oracle10gのソフトウェアは、 外付けのExtraDisk2パーティションへインストールし、データベースは、 ExtraDiskパーティションに作成することにします。
  • sh-2.05b# df -h /Volumes/ExtraDisk
    Filesystem Size Used Avail Capacity Mounted on
    /dev/disk1s10 57G 3.0G 54G 5% /Volumes/ExtraDisk

    sh-2.05b# df -h /Volumes/ExtraDisk2
    Filesystem Size Used Avail Capacity Mounted on
    /dev/disk1s12 57G 4.4G 53G 8% /Volumes/ExtraDisk2
  • メモリは要件を満たしています。
  • sh-2.05b# /usr/sbin/system_profiler SPHardwareDataType | grep Memory
    Memory: 832 MB
    GUIで操作したい方は、Finderウィンドウ->サイドバーのアプリケーション-> ユーティリティ->システムプロファイラダブルクリックで確認できます。

    system_profier


    2−3)ソフトウェアのバージョンを確認!

    MacOS X は、10.3.9 Pantherで、Server版ではありません! gccも3.3なので問題なし! XCodeは、1.1ですが、付属しているgccが要件を満たしてます。
    sh-2.05b# uname -a
    Darwin discus.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 20:11:17 PST 2005; 
    root:xnu/xnu-517.12.7.obj ̄1/RELEASE_PPC  Power Macintosh powerpc
    sh-2.05b# 
    sh-2.05b# sw_vers
    ProductName:    Mac OS X
    ProductVersion: 10.3.9
    BuildVersion:   7W98
    sh-2.05b#
    sh-2.05b# gcc -v
    Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs
    Thread model: posix
    gcc version 3.3 20030304 (Apple Computer, Inc. build 1640)
    sh-2.05b# 
    sh-2.05b# /usr/sbin/system_profiler SPApplicationsDataType | grep Xcode
        Xcode:
          Get Info String: Xcode v1.1
          Location: /Developer/Applications/Xcode.app

    | | コメント (0) | トラックバック (0)

    2005年5月26日 (木)

    Panther De Oracle10g その1

    1996年にリリースされたPersonal Oracle7 for MacOS以来、9年ぶりに、Macintosh上で動作するOracleデータベース(Oracle10g)が正式にリリースされた。本家OTNでは、昨年末からダウンロード可能になっていたので早々ダウンロードし、MacOS Xにインストールしてみることにした。
    (現在は、OTN-Jでもダウンロード可能なので、興味を持った方はチャレンジしてみるのもよいのでは?)

    ということで、Mac OS X 10.3 (Panther)へのOracle10gインストールを始めるまえに。。。

    なお、ご自身の Macにインストールする際には、ご自身の責任において行ってくださいね!。

    対応OSおよび最小要件の通り、オラクル社では、Oracle10gは、MacOS X Server版の10.3.6 (Panther)だけを正式サポートしている。今回、私が行うインストールで対象としているのは、Server版ではないので、当然サポート対象外!。
    それと、新しくリリースされた、Tiger (10.4)は現時点では、まだサポート対象外なのである。
    だから、なにか問題があっても不思議ではない!

    ちなみに、前述のオラクル社の最小要件の末尾に、”その他”の注意として、X-Windowが必要とかなんとかの記述があるがMacOS Xでのインストールには、他のUnix系プラットフォームへのOracleのインストールとは異なり、X-Windowは必要ないことを付け加えておく。
    #いずれ、修正されることを期待しつつ。(だったら、間違いをオラクルさんに教えてあげろよ〜)
    #MacOS XでもX11は移植されているが、別世界なので気にしないように!


    なお、Oracle10gのことをもうちょっと知りたいという方や、MacOS XのUnix的な部分を知りたいというかたは、

    技術評論社「Oracle Database 10g 運用管理ガイド」ISBN4-7741-2282-3
    オライリージャパン「プログラミング Mac OS X for Unix Geeks」 ISBN4-87311-121-8
    LOCUS 「Mac OS X v10.3 UNIX的徹底活用講座」 ISBN4-89814-501-9

    が、参考になるのではないかと。。。

    それと、絶対に読まなければいけないのは、Oracleに付属するドキュメントやリリースノートである。昔、オラクルのリリースノートや、インストールガイドを軽視していたために、リリース時の制限事項(リリース時点での既知の不具合など)に気づかす、徹夜していた友人がいた。翌朝、私がリリースノートに書かれている問題だと知らせるまで、「うまくいかないんだよ〜」と、充血した目で言っていたことを今でも覚えている。(笑いたいけど、笑えない・・・・・)

    では、早速、私のMac
    DSC00003

    (PowerMac G4 Cube 1.2Ghz 832GMB RAMでMacOS X10.3.9 Panther)にOracle10g EE for MacOS X Serverをインストールしてみます。
    #ところで、気づいた方もいると思いますが、Cubeは、400Mhzまたは、450Mhzの
    #PowerPC G4だったはず!。 ですが、SonnetのCPUカードでアップグレード
    #してあるんです。このカードのおかげで、しばらくは、Cubeで遊べそう。
    #最近は、1.7Ghzのカードも登場した模様。Cubeは不滅です!(^^)

    作業は、

    1.Oracle10g for MacOS X Serverのダウンロード
    2.rootユーザでの事前準備
    3.Oracle所有者での事前準備
    4.OUI(Oracle Universal Installer)の起動(インストール)
    5.インストール後の作業


    という流れで進めます。(さて、順調に進むか?!・・・)


    注)

    MacOS X Serverにのみ付属する管理ツールでの設定以外は、OTN-USからダウンロードした、Oracle10g EE for MacOS X Server付属のQuick Installation Guideなどの手順を参考にします。また、クラスタ環境ではないのでRACのインストールはしません。

    1.Oracle10g for MacOS X Serverのダウンロード

    1−1) ダウンロード


    OTN-USでダウンロードしたものでも、国際化対応されていますので、ソフトウェア自体では、日本語などのマルチバイト文字にも対応しています。ダウンロードURLは、http://www.oracle.com/technology/software/products/database/oracle10g/index.html

    #この記事では、上記サイトからダウンロードしたものを利用しています。
    ちなみに、日本のOTNからも同じものがダウンロードできるようになってますね。(知らなかった!)

    OTN-J(http://otn.oracle.co.jp/software/products/oracle10g/index.html)

    どちらも、ユーザ登録している方がダウンロードできます。(ユーザ登録は無料です)


    ダウンロードは、 Safari から行いました。これで特に問題はでていません。コマンド好きな方は、curlコマンドを使いたくなるかもしれませんが、オラクル社のサイトから、curlコマンドでダウンロードしたことはないので curl でダウンロードできるかは不明です。

    上記、いづれかのURLから
    Download the Complete Files
    ship_mac_db.cpio.gz (652,902,028 bytes) (cksum - 2322818882)
    をダウンロードします。

    1−2) 解凍

    以下のように、解凍するべしと手順が記述されているのですが、 Terminal を起動して以下コマンドで解凍してください。
    ところで、Terminalってなんだってって方はいないと思いますが、Linux なんかの、 XTerm や、 KTerm ってところです。Windows しか知らない! という方なら、DOSプロンプトのようなものです。

    terminal

    起動は、Finderウィンドウ->サイドバーのアプリケーション->ユーティリティ->ターミナルをダブルクリック。よく利用することになるので、Dockにターミナルをドラッグ&ドロップして登録しておきましょう!
    Directions
     1. Run "gunzip " on all the files. Eg.: gunzip ship_mac_db.cpio.gz
     2. Extract the cpio archives with the command "cpio -idmv < "
      Eg.: cpio -idmv < ship_mac_db.cpio
     3. Installation guides and general Oracle Database
    10g documentation can be found here.

    1−3) 解凍後

    解凍すると、Disk1 というフォルダが現れます。
    Disk1/doc にインストレーションガイドなどのドキュメントが入っています。 readmes.html をダブルクリックしオンラインドキュメント内にある Installation Guide 、 Release note、 Quick Installation Guide などで手順や注意点などを確認。(英語です)
    と今日はここまで。。。

    | | コメント (0) | トラックバック (0)