Oracle8i for Linux R8.1.6 FAQ
ここにあるFAQは全てOracle8i for Linux R8.1.6に関するものです。
2000/12/6更新
インストーラが文字化けして先に進めません。
インストーラが日本語に対応していない為です。以下のように英語モードに切り替えてからインストーラを起動してください。
% export LANG=c
% export LC_ALL=c
loadjavaなどのJServerコマンドが実行できません。
loadjavaなどのJava/CORBAユーティリティはksh上で動作しますが、一部のディストリビューションでは、kshがデフォルトでインストールされません。しかし、ディストリビューションパッケージ中には、kshクローンであるpdkshパッケージが同梱されていますので、後からpdkshをインストールすることにより実行可能になります。
●Red Hat Linux Server 6.2Jの場合
Red Hat Linuxのインストールディスク1をCD-ROMドライブに入れます。
--------------------------------------------
$ su -
# mount -t iso9660 /dev/cdrom /mnt/cdrom
# cd /mnt/cdrom/RedHat/RPMS
# rpm -ivh pdksh-5.2.14-2.i386.rpm
--------------------------------------------
●Turbo Linux Server 6.1の場合
Turbo LinuxのインストールディスクをCD-ROMドライブに入れます。
--------------------------------------------
$ su -
# mount -t iso9660 /dev/cdrom /mnt/cdrom
# cd /mnt/cdrom/TurboLinux/RPMS
# rpm -ivh pdksh-5.2.14-1.i386.rpm
--------------------------------------------
Pro*Cで上手くコンパイル出来ません。
まず、Linuxにegcs(もしくは上位互換のgcc)がインストールされている必要が有ります。
それ以外に、開発用ヘッダファイルがインストールされている必要が有ります。最初に必要なヘッダファイルがインストールされているか確認してください。
上手くコンパイルができない原因の1つは、LD_LIBRARY_PATHが定義されていない事です。LD_LIBRARY_PATHに$ORACLE_HOME/libを設定する必要が有ります。
% export LD_LIBRARY_PATH=$ORACLE_HOME/lib;$LD_LIBRARY_PATH
2つめはPro*C定義ファイルであるpcscfg.cfgが定義されていないからです。この定義はディストリビューションによって異なるため手作業で設定する必要が有ります。
pcscfg.cfgファイルは$ORACLE_HOME/precomp/adminの下にあります。
以下の例は、$ORACLE_HOMEが"/u0/oracle/product/8.1.6"の場合になります。
●Red Hat Linux 6.xの場合(例)
--------------------------------------------
sys_include = (/u0/oracle/product/8.1.6/precomp/syshdr, /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/, /usr/include)
include = (/u0/oracle/product/8.1.6/precomp/public)
include = (/u0/oracle/product/8.1.6/rdbms/demo)
include = (/u0/oracle/product/8.1.6/rdbms/public)
include = (/u0/oracle/product/8.1.6/network/public)
include = (/u0/oracle/product/8.1.6/plsql/public)
include = (/u0/oracle/product/8.1.6/otrace/public)
ltype = short
--------------------------------------------
●Turbo Linux 6.0の場合(例)
--------------------------------------------
sys_include = (/u0/oracle/product/8.1.6/precomp/syshdr, /usr/lib/gcc-lib/i586-pc-linux/2.95.2/include/, /usr/include)
(以下略)
--------------------------------------------
●Turbo Linux 6.1/Miracle Linux 1.0の場合(例)
--------------------------------------------
sys_include = (/u0/oracle/product/8.1.6/precomp/syshdr, /usr/lib/gcc-lib/i586-pc-linux/egcs-2.91.66/include/, /usr/include)
(以下略)
--------------------------------------------
インストレーションによっては上記PATHが無い場合がありますその場合は、適当なPATHに変更してください。
データベースに格納したデータが文字化けします。
大きな原因は3つ考えられます。
1つめは、LinuxのX Windowの設定の問題です。英語版のディストリビューションを利用していて、日本語フォントが入っていない。X Windowのロケールがja_JP.ujisなどに設定されていないなどが考えられます。
2つめはNLS_LANGが正しく設定されていません。Linuxの場合、クライアントのNLS_LANGは(データベースのCHARACTER SETがSJIS,EUCに関らず)、以下の様に設定する必要が有ります。
% export JAPANESE_JAPAN.JA16EUC
しかし、imp/expユーティリティ等でコードを一致させないといけない場合は以下のようにします。
% export American_America.JA16SJIS (SJISの場合)
3つめは、データベースが日本語で作成されていない為です。対策としては以下の方法が考えられます。
- インストール時にカスタムを選択し、JA16EUCもしくはJA16SJISでデータベースを作成する。
- インストール後にALTER DATABASEコマンドでCHARACTER SET及びNATIONAL CHARACTER SETをJA16EUCもしくはJA16SJISに変更する。
データベースのCHARACTER SETは何にすれば良いのでしょうか?
日本語が扱えるコードセットには、JA16SJIS,JA16EUC,UTF8がありますが、サーバーとクライアントのコードが異なる場合コード変換プロセスが入るのでパフォーマンスやアプリケーション構築を考えた場合、コード変換が発生しにくいCHARACTER SETを利用した方がコード変換によるオーバーヘッドや問題が発生しにくくなります。
JA16SJISが好ましいケース
- クライアントがWindows中心である
- Webでの利用が中心だが、Windowsと連携させたい
- 連携したいサーバがあり既にSJISで構築されている
JA16EUCが好ましいケース
- クライアントがLinux中心もしくはバッチ処理中心
- Webでの利用が中心で、Perlなどと連携させたい
- 連携したいサーバがあり既にEUCで構築されている
UTF8が好ましいケース
- クライアントがJava中心
- 多言語データベースを構築したい
Turbo Linux Server 6.1にインストールしたがデータベース作成で固まってしまいます。
これは、dbassistが、/usr/bin/freeを要求しているのに対し、Turbo Linux Server 6.1では、freeコマンドが/bin/freeに位置するからです。簡単な回避方法は、rootユーザーで/usr/bin/freeにシンボリックリンクを貼ります。
% ln -s /bin/free /usr/bin
もしくは、Turbo Linux社から提供されているPatchを適用します。
Red Hat Linux 7.0で動作しません。
現時点でOracle8i R8.1.6はRed Hat Linux 7.0には対応していません。
dbassistで修正・削除を行うとハングします。
この不具合(Bug#1295510)は、Oracle8i R8.1.7で修正される予定です。詳細に 関してはサポートまでお問い合わせください。