2 OCI Instant ClientおよびInstant Client Light
OCI Instant ClientおよびInstant Client Lightについて説明します
この章のトピックは、次のとおりです:
OCI Instant Clientについて
Instant Client機能により、クライアント・マシン上でOracleホームの必要がなくなることで、OCI、OCCI、ODBCおよびJDBC OCIに基づくカスタマ・アプリケーションのデプロイが簡略化されます。
Instant Clientモードで実行されるOCIアプリケーションの記憶領域の所要量は、クライアント側の完全インストールで実行される同じアプリケーションに比べて、大幅に少なくなります。Instant Client共有ライブラリは、クライアント側の完全インストールのディスク領域のうち、4分の1のみを使用します。Instant Clientは、インストールも簡単です。
Instant Clientを使用するのはなぜか。
-
インストール作業では、少数のファイルをコピーするか、Linux RPMパッケージなどのパッケージをインストールします。
-
Oracle Databaseのクライアント側で必要なファイル数およびディスク領域の合計が、大幅に少なくなります。
-
Instant Clientを使用してデプロイされたアプリケーションでは、機能またはパフォーマンスに損失がありません。
-
独立したソフトウェア・ベンダーは、アプリケーションを簡単にパッケージ化できます。
READMEは、Instant Clientインストールに付属しています。このファイルには、Instant Clientが生成されたバージョン、日時およびオペレーティング・システムが記載されています。
次の表に、OCIアプリケーションのデプロイに必要なOracle Databaseのクライアント側ファイルを示します。
表2-1 LinuxおよびUNIX用のOCI Instant Client共有ライブラリ
LinuxおよびUNIX | LinuxおよびUNIXでの説明 |
---|---|
|
クライアント・コード・ライブラリ |
|
OCI Instant Clientデータの共有ライブラリ |
|
セキュリティ・ライブラリ |
|
ONSライブラリ |
脚注 1
Instant Clientを使用するには、ライブラリlibclntsh.so.12.1、libclntshcore.so.12.1およびlibociei.soが同じディレクトリ内に存在する必要があります。
表2-2 Microsoft Windows用のOCI Instant Client共有ライブラリ
Microsoft Windows | Microsoft Windowsでの説明 |
---|---|
|
アプリケーションがリンクする転送機能 |
|
データとコード |
|
セキュリティ・ライブラリ |
|
OCIによって内部的に使用されるONSライブラリ |
|
シンボル表 |
Microsoft Windowsでは、ダイナミック・リンク・ライブラリ(DLL)ごとに.sym
ファイルが提供されます。.sym
ファイルがDLLと同じ場所にある場合、Microsoft WindowsでOCIに障害が発生した際に、関数名を含むスタック・トレースが生成されます。
関連項目:
LinuxおよびUNIX用のOCI Instant Client Light共有ライブラリ 表2-3
Microsoft Windows用のOCI Instant Client Light共有ライブラリ 表2-4
この表では、Oracle Database 12cリリース2 (12.2)のライブラリ名を使用しています。
OCI Instant ClientのインストールまたはLinux RPMパッケージのインストール
Oracle Instant Clientは、2つの方法でインストールできます。
Instant Clientライブラリは、Oracle Universal InstallerからInstant Clientオプションを選択するか、次のOracle Technology NetworkのWebサイトのOCIページからInstant Clientライブラリをダウンロードしてインストールするかのいずれかでインストールできます。
http://www.oracle.com/technetwork/database/features/instant-client/
Oracle Technology NetworkのWebサイトからInstant Clientライブラリをダウンロードしてインストールする手順、またはOracle Universal InstallerからInstant Clientをインストールする手順は、次のとおりです
Linux、UNIXおよびWindows環境では、次のステップを使用します。
-
Oracle Technology NetworkからInstant Client共有ライブラリをダウンロードして、Oracle Database 12cリリース2 (12.2)の空のディレクトリ(
instantclient_12_2
など)にインストールします。基本パッケージを選択します。 -
Oracle Universal Installerの場合は、Oracle Universal Installerを起動してInstant Clientオプションを選択し、Instant Client共有ライブラリをOracle Database 12cリリース2 (12.2)の空のディレクトリ(
instantclient_12_2
など)にインストールします。 -
オペレーティング・システム共有ライブラリ・パス環境変数を、ステップ1のディレクトリに設定します。たとえば、LinuxまたはUNIXでは、
LD_LIBRARY_PATH
をinstantclient_12_2
ディレクトリに設定します。Windowsでは、PATH
をinstantclient_12_2
ディレクトリに設定します。 -
必要ならば、
NLS_LANG
環境変数を設定して、クライアント・アプリケーションとそのアプリケーションでオープンされたデータベース接続で使用される言語と地域、およびクライアントの文字セット(クライアント・プログラムで入力または表示されるデータ用の文字セット)を指定します。NLS_LANG
は、UNIXプラットフォームでは環境変数として設定され、Windowsプラットフォームではレジストリで設定されます。NLS_LANG
環境変数設定の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 -
(オプション)。
sqlnet.ora
、tnsnames.ora
またはoraaccess.xml
を使用する場合、TNS_ADMIN
環境変数を設定します。
前述のステップを完了すると、OCIアプリケーションを実行できるようになります。
オペレーティング・システムのライブラリ・パス変数によってOCI共有ライブラリにアクセスできる場合、OCIアプリケーションは、Instant Clientを使用します。この方法では、Oracleホームへの依存性はなく、Oracleホームに指定された他のコードおよびデータ・ファイルは、OCIでは不要です(後で説明するtnsnames.ora
ファイルを除きます)。
クライアントの完全インストールを行った場合(Oracle Universal InstallerでAdmin
オプションを選択)、Instant Client共有ライブラリもインストールされます。クライアントの完全インストールにおけるInstant Client共有ライブラリの場所は、次のとおりです。
LinuxまたはUNIXの場合:
libociei.so
ライブラリは、$ORACLE_HOME/instantclient
にあります。
libclntsh.so.12.1
、libclntshcore.so.12.1
およびlibnnz12.so
は、$ORACLE_HOME/lib
にあります。
Windowsの場合:
oraociei12.dll
ライブラリは、ORACLE_HOME¥instantclient
にあります。
oci.dll
、ociw32.dll
およびorannzsbb12.dll
は、ORACLE_HOME¥bin
にあります。
Instant Clientを使用してOCIアプリケーションを実行できるようするには、前述のライブラリを別のディレクトリにコピーして、オペレーティング・システム共有ライブラリ・パスをこのディレクトリがある場所に設定します。
ノート:
すべてのライブラリを同じOracleホームからコピーして、同じディレクトリに配置する必要があります。Instant Clientライブラリへのsymlinkの関連付けは、ライブラリの物理的な関連付けに代わるものではありません。
オペレーティング・システムのLibrary Path変数に存在するOracleライブラリは1セットのみである必要があります。つまり、Instant Clientライブラリを含むディレクトリが複数ある場合、それらのディレクトリの1つのみをオペレーティング・システムのLibrary Path上に記載する必要があります。
同様に、Oracleホームベースのインストールを同じシステムに行う場合、オペレーティング・システムのLibrary PathにORACLE_HOME/lib
とInstant Clientディレクトリの両方を記載しないでください(Library Path上での順序も無関係です)。つまり、オペレーティング・システムのLibrary Path変数には、ORACLE_HOME/lib
ディレクトリ(非Instant Clientモードで操作する場合)またはInstant Clientディレクトリ(Instant Clientモードで操作する場合)のいずれかを記載します。
OCCIやJDBC OCIなどのその他の機能を有効にするには、いくつかの追加ファイルをコピーする必要があります。OCCIを有効にするには、OCCIライブラリ(LinuxまたはUNIXではlibocci.so.12.1
、Windowsではoraocci12.dll
)をInstant Clientディレクトリにインストールする必要があります。JDBC OCIドライバの場合、3つのOCI共有ライブラリ以外に、OCI JDBCライブラリ(LinuxまたはUNIXではlibocijdbc12.so
、Windowsではocijdbc12.dll
など)もダウンロードする必要があります。すべてのライブラリをInstant Clientディレクトリに配置します。
ノート:
Sparc64などのハイブリッド・プラットフォームでは、JDBC OCIドライバをInstant Clientモードで動作させるために、libociei.so
ライブラリをORACLE_HOME/instantclient32
ディレクトリからInstant Clientディレクトリにコピーします。JDBC OCI Instant Clientに必要なその他すべてのSparc64ライブラリを、ORACLE_HOME/lib32
ディレクトリからInstant Clientディレクトリにコピーします。
ノート:
-
su
を実行し、スーパーユーザーのパスワードを入力して、rootになります。 -
インストール先のディレクトリに移動します。
-
以前のすべてのインストール内容をアンインストールします。
# rpm -e package_name
-
各パッケージをインストールします。
# rpm -ivh package-name.rpm
または、各パッケージをアップグレードします。
# rpm -Uvh package-name.rpm
-
ディスク領域を節約する場合は、
.rpm
ファイルを削除します。 -
rootシェルを終了します。再起動の必要はありません。
Instant Clientを使用する場合
Instant Clientは、デプロイメントの選択対象であり、本番アプリケーションの実行に使用できます。
一般的に、Instant Clientがクライアント側の動作専用でないかぎり、Instant Clientを使用して実行されているアプリケーションではすべてのOCI機能を使用できます。したがって、サーバー側の外部プロシージャは、Instant Clientライブラリを使用できません。
開発には、Instant Client SDKを使用することもできます。
LinuxまたはUNIXでのInstant Client共有ライブラリへのパッチの適用について
Instant Clientはデプロイメント用の機能であるため、OCIアプリケーションの実行に必要なファイルの数およびサイズ(クライアント・フットプリント)が減らされました。
したがって、Instant Client共有ライブラリにパッチを適用するために必要なファイルは、Instant Clientのデプロイメントですべて入手できるわけではありません。パッチの適用には、Oracleホームをベースとした完全なクライアント・インストールが必要です。パッチを適用するには、opatch
ユーティリティを使用します。
Oracleホーム環境にパッチを適用した後、「OCI Instant ClientのインストールまたはLinux RPMパッケージのインストール」の説明に従って、「OCI Instant Clientについて」に記載されているファイルをInstant Clientディレクトリにコピーします。
個々のファイルをコピーするかわりに、「データ共有ライブラリ、zipおよびRPMファイルの再生成」の説明に従って、OCIとOCCI、JDBCおよびSQL*Plus用のInstant Client zipおよびRPMファイルを生成できます。次に、「OCI Instant ClientのインストールまたはLinux RPMパッケージのインストール」の説明に従って、zipおよびRPMファイルをターゲット・システムにコピーして解凍します。
opatch
ユーティリティによって、ORACLE_HOME
インストールのパッチ適用情報がlibclntsh.so
に格納されます。この情報を取り出すには、次のコマンドを使用します。
genezi -v
Instant Clientのデプロイメント・システムにgenezi
ユーティリティがない場合、ORACLE_HOME
/bin
ディレクトリからそれをコピーできます。
ノート:
opatch
ユーティリティは、Windowsでは使用できません。
データ共有ライブラリ、zipおよびRPMファイルの再生成
データ共有ライブラリとzipおよびRPMファイルを再生成するプロセスが変わりました。
データ共有ライブラリとzipおよびRPMファイルを再生成するプロセスは、Oracle Database 12cリリース1 (12.1)で変更されました。データ共有ライブラリ、zipおよびRPMファイルを作成するために、別々のMakefileターゲットが個々にまたは一度に使用されます。以前のリリースでは、データ共有ライブラリ、zipおよびRPMファイルの作成のために、1つのターゲットilibociei
が提供されました。ilibociei
では、zipおよびRPMファイルのみが作成されるようになりました。データ共有ライブラリの再生成には、コンパイラとリンカーの両方が必要で、これらはすべてのインストールで使用可能というわけではありません。後続の各項では、データ共有ライブラリ、zipおよびRPMファイルを再生成するために使用するMakefileターゲットを示します。
ノート:
再生成されたInstant Clientバイナリには、再生成を行ったOracle Client AdministratorホームでインストールされたInstant Clientファイルのみが含まれます。そのため、再生成環境に存在するエラー・メッセージ、文字セット・エンコーディングおよびタイムゾーン・ファイルは、データ共有ライブラリにパッケージされているもののみです。エラー・メッセージ、文字セット・エンコーディングおよびタイムゾーン・ファイルは、Oracle Client Administratorホームのインストールで選択された各国語に依存します。
データ共有ライブラリ、zipおよびRPMファイルの再生成は、Windowsプラットフォームでは使用できません。
データ共有ライブラリlibociei.soの再生成
OCI Instant Clientデータ共有ライブラリ(libociei.so
)は、ORACLE_HOME
の管理者インストールで次のコマンドを使用することで再生成できます。
cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk igenlibociei
新しく再生成されたlibociei.so
は、ORACLE_HOME
/instantclient
ディレクトリに置かれます。同じディレクトリにある元の既存のlibociei.so
は、libociei.so0
に名前が変更されます。
データ共有ライブラリlibociicus.soの再生成
Instant Client Lightデータ共有ライブラリ(libociicus.so
)を再生成するには、次のコマンドを使用します。
mkdir -p $ORACLE_HOME/rdbms/install/instantclient/light cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk igenlibociicus
新しく再生成されたlibociicus.so
は、ORACLE_HOME
/instantclient
/light
ディレクトリに置かれます。同じディレクトリにある元の既存のlibociicus.so
は、libociicus.so0
に名前が変更されます。
データ共有ライブラリlibociei.soおよびlibociicus.soの1ステップでの再生成
データ共有ライブラリlibociei.so
とlibociicus.soを再生成するには、次のコマンドを使用します。
mkdir -p $ORACLE_HOME/rdbms/install/instantclient/light cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk igenliboci
新しく再生成されたlibociei.so
は、ORACLE_HOME
/instantclient
ディレクトリに置かれます。同じディレクトリにある元の既存のlibociei.so
は、libociei.so0
に名前が変更されます。
新しく再生成されたlibociicus.so
は、ORACLE_HOME
/instantclient
/light
ディレクトリに置かれます。同じディレクトリにある元の既存のlibociicus.so
は、libociicus.so0
に名前が変更されます。
基本パッケージ用のzipおよびRPMファイルの再生成
基本パッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。
cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk ic_basic_zip
基本軽量パッケージ用のzipおよびRPMファイルの再生成
基本軽量パッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。
cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk ic_basiclite_zip
JDBCパッケージ用のzipおよびRPMファイルの再生成
JDBCパッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。
cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk ic_jdbc_zip
ODBCパッケージ用のzipおよびRPMファイルの再生成
ODBCパッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。
cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk ic_odbc_zip
SQL*Plusパッケージ用のzipおよびRPMファイルの再生成
SQL*Plusパッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。
cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk ic_sqlplus_zip
ツール・パッケージ用のzipおよびRPMファイルの再生成
ツール・パッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。
cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk ic_tools_zip
OCI Instant Clientのデータベース接続文字列
OCI Instant Clientからは、通常のSQLクライアントで可能なすべての方法で、リモート・データベースに接続できます。
ただし、Instant ClientにはOracleホーム環境およびディレクトリ構造がないため、一部のデータベース・ネーミング・メソッドには追加の構成ステップが必要です。
tnsnames.ora
、sqlnet.ora
、oraaccess.xml
などの構成ファイルを指定するためにORACLE_BASE_HOME
、ORACLE_HOME
またはTNS_ADMIN
を使用する必要のないOracle Netネーミング・メソッドは、すべてInstant Clientモードで動作します。特に、OCIServerAttach()
コールのconnect_identifier
は、次の形式で指定できます。
-
SQL接続URL文字列のフォームは、次のようになります。
username/password@host[:port][/service name][:server][/instance_name]
-
フォームの
tnsnames.ora
構成ファイル・エントリのローカル・ネーミング・パラメータ:net_service_name= (DESCRIPTION= (ADDRESS=(protocol_address_information)) (CONNECT_DATA= (SERVICE_NAME=service_name)))
-
フォームのOracle Net接続記述子:
"(DESCRIPTION=(ADDRESS=(PROTOCOL=protocol-name) (HOST=host-name) (PORT=port-number)) (CONNECT_DATA=(SERVICE_NAME=service-name)))"
-
サイトがLDAPサーバー・ディレクトリ用に構成されているディレクトリ・ネーミングを通じて解決される接続名。
tnsnames.ora
などのネーミング・メソッドやディレクトリ・ネーミングを使用するには、TNS_ADMIN
環境変数を設定する必要があります。
関連項目:
接続記述子の詳細は、『Oracle Database Net Services管理者ガイド』の「ネーミング・メソッドの構成」を参照してください
TNS_ADMIN
環境変数が設定されていない場合に、inst1
などのtnsnames.ora
エントリを使用するときは、ORACLE_HOME
変数を設定する必要があります。また、構成ファイルは$ORACLE_HOME/network/admin
ディレクトリに存在する必要があります。
この場合、ORACLE_HOME
変数は、Oracle Net構成ファイルの検索のみに使用され、クライアント・コード・ライブラリの他のコンポーネント(OCI、NLSなど)は、ORACLE_HOME
の値を使用しません。そのため、TNS_ADMIN
環境変数を設定してtnsnames.ora
ファイルの場所を特定する方が簡単で、推奨されます。
OCIServerAttach()
コールで接続文字列としてNULL
文字列""を使用する場合、TWO_TASK
環境変数をconnect_identifier
に設定できます。Windowsオペレーティング・システムでは、TWO_TASK
のかわりにLOCAL
環境変数を使用します。
同様に、SQL*PlusなどのOCIコマンド・ライン・アプリケーションには、TWO_TASK
(WindowsではLOCAL
)環境変数をconnect_identifierに設定できます。この環境変数には、通常の接続文字列上で'@'より右側であれば、任意の値を指定できます。
この項には次のトピックが含まれます: Instant Client接続識別子の例。
Instant Client接続識別子の例
SQL*PlusをInstant Clientモードで使用するには、接続識別子を次のように指定します。
Oracle Databaseのlistener.ora
ファイルに次の記述が含まれる場合:
LISTENER = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=server6)(PORT=1573)) ) SID_LIST_LISTENER = (SID_LIST= (SID_DESC=(SID_NAME=rdbms3)(GLOBAL_DBNAME=rdbms3.server6.us.alchemy.com) (ORACLE_HOME=/home/dba/rdbms3/oracle)) )
SQL*Plus接続識別子は次のようになります。
"server6:1573/rdbms3.server6.us.alchemy.com"
接続識別子は次のように指定することもできます。
"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server6)(PORT=1573))(CONNECT_DATA= (SERVICE_NAME=rdbms3.server6.us.alchemy.com)))"
または、TWO_TASK
環境変数を任意の以前の接続識別子に設定し、接続識別子を新規に指定せずに接続することもできます。たとえば、次のようにします。
export TWO_TASK=//server6:1573/rdbms3.server6.us.alchemy.com
TWO_TASK
環境変数を次のように指定することもできます。
export TWO_TASK=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server6)(PORT=1573)) (CONNECT_DATA=(SERVICE_NAME=rdbms3.server6.us.alchemy.com)))
その後、空の接続識別子でSQL*Plusを起動できます(パスワードの入力を求められます)。
sqlplus user
接続記述子は、tnsnames.ora
ファイルにも指定できます。たとえば、tnsnames.ora
ファイルに次の接続記述子が記載され、
conn_str = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server6)(PORT=1573))(CONNECT_DATA= (SERVICE_NAME=rdbms3.server6.us.alchemy.com)))
tnsnames.ora
ファイルが/home/webuser/instantclient
ディレクトリにある場合、変数TNS_ADMIN
(WindowsではLOCAL
)を次のように設定できます。
export TNS_ADMIN=/home/webuser/instantclient
その後、接続識別子conn_str
を使用して、SQL*Plusを起動するか、OCI接続を行うことができます。
ノート:
TNS_ADMIN
には、tnsnames.ora
ファイルを配置するディレクトリを指定します。TNS_ADMIN
はtnsnames.ora
ファイルのフルパスではありません。
前述のtnsnames.ora
ファイルがインストールが行われたOracleホームの、/network/server6/home/dba/oracle/network/admin
ディレクトリにある場合、ORACLE_HOME
環境変数を次のように設定して、前と同様にSQL*Plusを識別子conn_str
を使用して起動できます。
export ORACLE_HOME=/network/server6/home/dba/oracle
最後に、tnsnames.ora
がTNS_ADMIN
またはORACLE_HOME
にあれば、TWO_TASK
環境変数を次のように設定して、接続識別子なしでSQL*Plusを起動できます。
export TWO_TASK=conn_str
OCI Instant Clientの環境変数
ORACLE_HOME
環境変数は、NLS、COREおよびエラー・メッセージ・ファイルの場所を決定しなくなりました。OCI専用アプリケーションでは、ORACLE_HOME
を設定しないでください。ただし、設定されていても、OCIには影響はありません。OCIは、データ共有ライブラリからデータを常に取得します。データ共有ライブラリが使用できない場合のみORACLE_HOME
が使用され、クライアントの完全インストールとみなされます。ORACLE_HOME
を設定する必要がなくても、設定する場合には、ディレクトリを識別する有効なオペレーティング・システム・パス名に設定する必要があります。
動的ユーザー・コールバック・ライブラリをロードする場合は、このマニュアルで指定されているように、ORACLE_HOME/lib
(WindowsではORACLE_HOME\bin
)にコールバック・パッケージが存在する必要があります。この場合、ORACLE_HOME
を設定します。
Instant Clientモードでは、環境変数ORA_NLS10
およびORA_NLS_PROFILE33
は無視されます。
Oracle Database 12cリリース2 (12.2)以上では、Instant Clientライブラリを使用する場合、Instant Clientは、ORA_TZFILE
環境変数を使用して、ファイル・システムからタイム・ゾーン・ファイルを読み取ります(この環境変数が設定されている場合)。それ以外で、ORA_TZFILE
変数が設定されていない場合、データ共有ライブラリから、サイズの大きいデフォルトのtimezlrg_n.dat
ファイルが使用されます。サイズの小さいtimezone_n.dat
ファイルをデータ共有ライブラリから使用する場合は、絶対または相対パス名を付けずに、このファイルの名前をORA_TZFILE
環境変数に設定します。ファイルは、Instant Clientディレクトリのサブディレクトリoracore/zoneinfo
(UNIX/LINUXの場合)またはoracore\zoneinfo
(Microsoft Windowsの場合)にコピーする必要があります。genezi
ユーティリティを-v
オプション付きで使用して、タイム・ゾーン・ファイルおよび場所が有効であることを確認するか、SQL*Plusを実行します。
LinuxまたはUNIXの場合:
export ORA_TZFILE=timezone_n.dat
Windowsの場合:
set ORA_TZFILE=timezone_n.dat
これらの場合、nはタイムゾーン・データ・ファイルのバージョン番号です。
oracoei
またはoraociicus
DLLが存在する場所(通常はinstantclient_12_2
ディレクトリ)に必ずサブディレクトリoracore/zoneinfo
(UNIX/LINUXの場合)またはサブディレクトリoracore\zoneinfo
(Microsoft Windowsの場合)を作成し、そのディレクトリにtimezone_n.dat
ファイルをコピーします。
Instant Clientデータ共有ライブラリにパッケージされている大小のタイム・ゾーン・ファイルのバージョンを特定するには、次のコマンドを入力して、genezi
ユーティリティを実行します。
genezi -v
(データ共有ライブラリが使用できないために) OCIがInstant Clientモードで動作していない場合、以前のOracle Databaseのリリースと同様に、ORA_TZFILE
変数(設定されている場合)は、完全なパス名を付けます。
TNSNAMES
エントリが使用されている場合は、前述したように、TNS_ADMIN
ディレクトリにはTNSNAMES
構成ファイルを含める必要があります。TNS_ADMIN
が設定されていない場合は、ORACLE_HOME/network/admin
ディレクトリにOracle Net Services構成ファイルを含める必要があります。
Instant Client SDK
ソフトウェア開発キット(SDK)は、アプリケーションを作成できる開発ツールのセットで、次のOracle Technology Network WebサイトのInstant ClientのリンクURLからダウンロードできます。
http://www.oracle.com/technetwork/database/features/instant-client/
-
Instant Client SDKパッケージには、CおよびC++のヘッダー・ファイルと、Instant Client環境でOCIおよびOCCIアプリケーションを開発するためのMakefileが含まれています。開発したアプリケーションは、あらゆるクライアント環境にデプロイできます。
-
SDKには、CおよびC++のデモ・プログラムが含まれています。
-
Windowsの場合、OCIまたはOCCIアプリケーションをリンクするために必要なライブラリも含まれています。デモをビルドするための、
Make.bat
が提供されています。 -
UNIXまたはLinuxの場合、デモをビルドするにはmakefile
demo.mk
を指定します。アプリケーションをリンクする前に、LD_LIBRARY_PATH
にinstantclient_12_2
ディレクトリを必ず定義します。OCIおよびOCCIプログラムでは、instantclient_12_2
ディレクトリにlibclntsh.so
およびlibocci.so
シンボリック・リンクを配置する必要があります。demo.mk
makefileは、リンクのステップの前にこれらを作成します。これらのシンボリック・リンクは、シェルで作成することもできます。cd instantclient_12_2 ln -s libclntsh.so.12.2 libclntsh.so ln -s libocci.so.12.2 libocci.so
-
また、SDKには、アプリケーション・ヘッダー・ファイルを生成するための、Object Type Translator (OTT)ユーティリティとそのクラスが含まれます。
Instant Client Light (English)について
Instant Client Light (English)バージョンについて説明します。
Instant ClientのInstant Client Light (English)バージョンでは、クライアントのインストールに必要なディスク領域が削減されています。英語以外の言語のエラー・メッセージ・ファイルを削除し、サポートされる文字セット定義を約250の中からわずかな数のみ残すことで、ライブラリのサイズが削減されました。
このInstant Client Lightバージョンは、US7ASCII、WE8DEC、WE8ISO8859P1、WE8MSWIN1252またはUnicode文字セットのいずれかを使用するアプリケーション向けです。NLS_LANG
設定のLANGUAGE
およびTERRITORY
フィールドに制限がないため、Instant Client Lightはあらゆる言語および地域設定で動作します。Instant Client Lightでは英語のエラー・メッセージのみ提供されているため、NLS_LANG
がAMERICAN
以外の言語に設定されている場合でも、Net接続エラーなどのクライアント側で生成されたエラー・メッセージは常に英語でレポートされます。データベース・インスタンスのOracleホームに適切な翻訳済メッセージ・ファイルがインストールされている場合、SQL文の構文エラーなどのデータベース側で生成されたエラー・メッセージは、選択した言語となります。
グローバリゼーション設定
Instant Client Lightでサポートされる文字セットについて説明します。
Instant Client Lightは、次のクライアント文字セットをサポートします。
シングルバイト
-
US7ASCII
-
WE8DEC
-
WE8MSWIN1252
-
WE8ISO8859P1
Unicode
-
UTF8
-
AL16UTF16
-
AL32UTF8
Instant Client Lightは、次のいずれかのデータベース文字セットを使用するデータベースに接続できます。
-
US7ASCII
-
WE8DEC
-
WE8MSWIN1252
-
WE8ISO8859P1
-
WE8EBCDIC37C
-
WE8EBCDIC1047
-
UTF8
-
AL32UTF8
Instant Client Lightは、前述のリストにない文字セットがクライアントまたはデータベースの文字セットとして使用された場合に、エラーを戻します。
Instant Client Lightは、OCI_UTF16
モードで作成されたOCI環境ハンドルを使用しても動作できます。
関連項目:
各国語サポート(NLS)の設定の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください
Instant Client Lightの動作
OCIアプリケーションがInstant Client Lightモードで動作する状況について説明します。
OCIアプリケーションは、デフォルトで、OCIデータ共有ライブラリlibociei.so
(WindowsではOraociei12.dll
)をLD_LIBRARY_PATH
(WindowsではPATH
)から検索し、アプリケーションがInstant Clientモードで動作するかどうかを判断します。このライブラリが見つからない場合、OCIではInstant Client Lightデータ共有ライブラリ(表2-3および表2-4を参照) libociicus.so
(WindowsではOraociicus12.dll
)のロードを試みます。Instant Client Lightのライブラリが見つかった場合、アプリケーションはInstant Client Lightモードで動作します。それ以外の場合は、Oracleホームでの完全インストールが想定されます。
表2-3 LinuxおよびUNIX用のOCI Instant Client Light共有ライブラリ
LinuxおよびUNIX | LinuxおよびUNIXでの説明 |
---|---|
|
クライアント・コード・ライブラリ |
|
OCI Instant Client Lightデータの共有ライブラリ |
|
セキュリティ・ライブラリ |
表2-4 Microsoft Windows用のOCI Instant Client Light共有ライブラリ
Microsoft Windows | Microsoft Windowsでの説明 |
---|---|
|
アプリケーションがリンクする転送機能 |
|
データとコード |
|
セキュリティ・ライブラリ |
|
シンボル表 |
Instant Client Lightのインストール
Instant Client Lightのインストールは、次のいずれかの方法で行うことができます。
-
Oracle Technology Network (OTN)からのインストール
Oracle Technology Network WebサイトのInstant ClientページのURLは、次のとおりです。
http://www.oracle.com/technetwork/database/features/instant-client/
Instant Client Lightの場合、
basiclite.zip
パッケージを空のinstantclient_12_2
ディレクトリにダウンロードし、解凍します。 -
Instant Client Administratorインストールからのインストール
ORACLE_HOME/instantclient/light
サブディレクトリから、libociicus.so
(Windowsではoraociicus12.dll
)をコピーします。LD_LIBRARY_PATH
(WindowsではPATH
)のInstant Clientディレクトリに、サイズの大きいOCI Instant Clientデータ共有ライブラリlibociei.so
(Windowsではoraociei12.dll
)のかわりに、Instant Client Lightデータ共有ライブラリlibociicus.so
(Windowsではoraociicus12.dll
)を格納します。 -
Oracle Universal Installerインストールからのインストール
Oracle Universal InstallerでInstant Clientオプションを選択した場合、
libociei.so
(Windowsではoraociei12.dll
)はインストールのベース・ディレクトリにインストールされ、これらのファイルがLD_LIBRARY_PATH
(WindowsではPATH
)に置かれることになります。Instant Light Clientデータ共有ライブラリ
libociicus.so
(Windowsではoraociicus12.dll
)は、ベース・ディレクトリのlight
サブディレクトリにインストールされ、デフォルトでは無効です。したがって、Instant Client Lightモードを使用するには、OCIデータ共有ライブラリlibociei.so
(WindowsではOraociei12.dll
)を削除するか名前を変更し、Instant Client Lightのライブラリをその環境のlight
サブディレクトリからベース・ディレクトリにコピーする必要があります。たとえば、Oracle Universal InstallerでInstant Clientを
LD_LIBRARY_PATH
(WindowsではPATH
)のmy_oraic_12_2
ディレクトリにインストールした場合、Instant Client Lightモードを使用するには、次のコマンド・シーケンスを実行します。cd my_oraic_12_2 rm libociei.so mv light/libociicus.so .
ノート:
インストールに互換性のないバイナリが存在しないように、常に空のディレクトリにInstant Clientのファイルをコピーしインストールしてください。