A SQL*Loader、エクスポートおよびインポートのInstant Client

Oracle Instant Clientを使用すると、標準のOracleクライアントをインストールしたりOracleホームを使用せずにアプリケーションを実行できます。

A.1 ツールInstant Clientとは

ツールInstant Clientパッケージは、Oracle Call Interface (OCI) Instant Clientがサポートされているプラットフォームで使用できます。

ツール・パッケージには、SQL*Loader、Oracle Data Pump Export、Oracle Data Pump Import、オリジナルの(クラシック)エクスポート、オリジナルの(クラシック)インポートなどの複数のコマンドライン・ユーティリティが含まれています。Instant Clientのインストールはスタンドアロンで、製品のコマンドライン・バージョンのすべての機能が備えられています。Instant Clientは既存のリモートOracle Databaseに接続しますが、独自のデータベースはありません。簡単にインストールでき、製品のコマンドライン・バージョンの使用に必要なOracle Database Clientの完全なインストールと比較すると、非常に少ないディスク領域を使用します。

ツールInstant Clientの使用に必要なステップの概要

ツールInstant Clientを使用するには、2つのパッケージが必要です。

  • ツールInstant Clientパッケージ

  • 基本OCI Instant ClientパッケージまたはOCI Instant Client Lightパッケージ。

ツールInstant Clientを使用するために必要な基本ステップは次のとおりです。これらの各ステップの詳細は、この付録で説明します。

  1. 使用するOCIパッケージ(基本またはLight)を選択し、Instant Clientファイルをインストールするディレクトリも選択します。

  2. インストールしたOracleインスタンスから、ツールInstant Clientパッケージおよび選択したOCI Instant Clientパッケージをコピーするか、またはOTNからダウンロードします。

  3. ツールInstant ClientパッケージおよびOCIパッケージをインストール(解凍)します。新しいディレクトリinstantclient_12_2がインストールの一部として作成されます。

  4. Instant Clientを構成します。

  5. 実行するユーティリティでリモート・インスタンスに接続します。

ツール・パッケージとOCIパッケージの両方がバージョン12.2.0.0.0以上のOracle Databaseであり、両方のバージョンが同じである必要があります。

OCI Instant Clientの詳細は、Oracle Call Interface開発者ガイドを参照してください。

A.2 インストールするInstant Clientの選択

ツールInstant Clientツール・パッケージをインストールする前に、基本Instant Clientを使用するか、Instant Client Lightのより小さいディスク領域要件を利用するかを決定します。

ツールInstant Clientパッケージは、両方のOracle Instant Clientオプションで完全にサポートされています。これらの主な違いは、Instant Client Lightオプションには英語のエラー・メッセージ・ファイルのみが含まれる点です。

基本Instant Client

ツールInstant Clientパッケージは、基本Instant Clientとともに使用する場合、Oracle DatabaseでサポートされているNLS_LANG設定で動作します。Oracle Databaseで使用可能なすべての文字セットおよび言語設定をサポートしています。

Instant Client Light

Instant ClientのInstant Client Light (English)バージョンでは、クライアントのインストールに必要なディスク領域が削減されています。英語以外の言語のエラー・メッセージ・ファイルを削除し、サポートされる文字セット定義を約250の中からわずかな数のみ残すことで、ライブラリのサイズが削減されました。

Instant Client Lightは、US7ASCIIWE8DECWE8ISO8859P1WE8MSWIN1252またはUnicode文字セットのいずれかを使用するアプリケーション向けです。NLS_LANG設定のLANGUAGEおよびTERRITORYフィールドに制限がないため、Instant Client Lightはあらゆる言語および地域設定で動作します。Instant Client Lightでは英語のエラー・メッセージのみが提供されているため、クライアント側で生成されたエラー・メッセージ(Net接続エラーなど)は、常に英語でレポートされます。これは、NLS_LANGAMERICAN以外の言語に設定されている場合にも当てはまります。Oracle DatabaseインスタンスのOracleホームに適切な翻訳済メッセージ・ファイルがインストールされている場合、SQL文の構文エラーなどのデータベース側で生成されたエラー・メッセージは、選択した言語となります。

A.3 OTNからのダウンロードによるInstant Clientツールのインストール

Oracle Instant Clientツール・パッケージをインストールするには、Oracle Technical Network (OTN)からプラットフォームの手順を選択し、ファイルをダウンロードします。

Instant Clientツール・パッケージを使用すると、多数のOracle DatabaseユーティリティをInstant Clientに簡単に追加できます。ツール・パッケージには、Oracle Data Pump、SQL*Loaderおよびワークロード・リプレイ・クライアントが含まれます。

Linux用のOTNダウンロードは、RPMパッケージです。UNIXおよびWindows用のOTNダウンロードは、zipファイルです。

A.3.1 Linux用のInstant ClientおよびInstant ClientツールRPMパッケージのインストール

この手順を使用して、Oracle Instant ClientおよびOracle Instant ClientツールのLinux RPMパッケージをダウンロードします。

このデプロイメント・オプションでは、Oracle Instant Client RPMおよびInstant ClientツールのRPMをOracle Technical Networkからダウンロードします。

注意:

Oracle Instant Clientの別のインストール場所を設定します。Oracle Instant ClientパッケージはOracleホームにインストールしないでください。

  1. 次のURLから、Oracle Instant ClientおよびInstant ClientツールのRPMパッケージをダウンロードします。

    http://www.oracle.com/technetwork/database/database-technologies/instant-client/overview/index.html

    どちらのパッケージも、12.2.0.0.0以上のリリースである必要があり、両方のパッケージが同じリリースである必要があります。

  2. RPMパッケージを初期インストールするにはrpm -i、新しいバージョンのパッケージにアップグレードするにはrpm -uを使用します。Oracle Instant Clientをインストールしてから、Instant Clientツール・パッケージをインストールしてください。

  3. Instant Clientを構成します。

A.3.2 UNIXまたはWindows zipファイルからのInstant ClientおよびInstant Clientツールのインストール

この手順を使用して、Oracle Instant ClientおよびOracle Instant Clientツールのzipファイルをダウンロードします。

このデプロイメント・オプションでは、Oracle Instant Client RPMおよびInstant ClientツールのRPMをOracle Technical Networkからダウンロードします。

注意:

Oracle Instant Clientの別のインストール場所を設定します。Oracle Instant ClientパッケージはOracleホームにインストールしないでください。

  1. 次のURLから、Oracle Instant ClientおよびInstant Clientツールのzipファイルをダウンロードします。

    http://www.oracle.com/technetwork/database/database-technologies/instant-client/overview/index.html

    どちらのzipファイルも、12.2.0.0.0以上のリリースである必要があり、両方のzipファイルが同じリリースである必要があります。

  2. 新規ディレクトリを作成します。たとえば、Oracle Instant Client 19cデプロイメントの場合、UNIXシステムでは/home/instantclient19cを作成します。Windowsでは、c:\instantclient19cを作成します。

  3. 2つのパッケージを新規ディレクトリに解凍します。最初にOracle Instant Clientパッケージをインストールします。

  4. Instant Clientを構成します。

A.4 Clientリリース・メディアからのツールInstant Clientのインストール

ツールInstant ClientパッケージをClientリリース・メディアからインストールするには、ファイルをローカル・ホームにコピーします。

  1. Oracle Database Clientリリース・メディアでインストーラを実行し、管理者オプションを選択します。

  2. 新規ディレクトリを作成します。たとえば、UNIXおよびLinuxでは、/home/instantclientreleaseなどのディレクトリを作成します。releaseはInstant Clientパッケージのリリース番号です。たとえば、/home/instantclient19などです。Microsoft Windowsでは、c:\instantclient19などのパスを作成します。

  3. ツールInstant Clientパッケージを新しいディレクトリにコピーします。すべてのファイルを同じOracleホームからコピーする必要があります。コピーするファイルのリストについては、「Oracle Instant Clientツール・ファイルのリスト」を参照してください

Instant Clientファイルをコピーすると、システム上でツールInstant Clientパッケージを構成する準備が整います。

A.5 Oracle Instant Clientツール・ファイルのリスト

Oracle Instant Clientツールを構成するファイルの目的について学習します。

Oracle Instant Clientツール・ファイル

プラットフォーム用のファイルのリストを参照してください。便宜上、Microsoft Windowsファイルにはシンボリック・リンク(symlinks)が含まれているため、これらを作成する必要はありません。zipファイルが解凍されてリストアされると、symlinksもリストアされます。

表A-1 LinuxおよびUNIXのInstant Clientツール・ファイル

ファイル名 説明

exp

オリジナルの(クラシック)エクスポート実行可能ファイル

expdp

Oracle Data Pump Export実行可能ファイル

imp

オリジナルの(クラシック)インポート実行可能ファイル

impdp

Oracle Data Pump Import実行可能ファイル

libnfsodmrelease.so

Oracle Disk Manager (ODM)を使用するためにSQL*Loader Instant Clientで使用される共有ライブラリ。変数releaseの値は、zipに含まれているツール・ファイルのリリースに対応します。たとえば、Oracle Database 19cのツール・ファイル・セットには共有ライブラリlibnfsodm19.soがあります。

sqlldr

SQL*Loader実行可能ファイル

TOOLS_LICENSE

ツールInstant Clientパッケージのライセンス文書。

TOOLS_README

ツールInstant ClientパッケージのReadme

wrc

ツールInstant Clientパッケージには、この付録で説明したもの以外のツールが含まれています。wrcツールは、Oracle Databaseの再実行機能用のワークロードの再実行クライアント(wrc)です。wrcツールはここに示されていますが、この付録の情報には含まれていません。

表A-2 Microsoft Windows用のOracle Instant Clientツール・ファイル

ファイル名 説明

exp.exe

オリジナルの(クラシック)エクスポート実行可能ファイル

exp.sym

オリジナルの(クラシック)エクスポート実行可能ファイルのシンボリック・リンク・ファイル。

expdp.exe

Oracle Data Pump Export実行可能ファイル。

expdp.sym

Oracle Data Pump Export実行可能ファイルのsymlink。

imp.exe

オリジナルの(クラシック)インポート実行可能ファイル

imp.sym

オリジナルの(クラシック)インポート実行可能ファイルのsymlink。

impdp.exe

Oracle Data Pump Import実行可能ファイル。

impdp.sym

Oracle Data Pump Import実行可能ファイルのsymlink。

sqlldr.exe

SQL*Loader実行可能ファイル。

sqlldr.exe

SQL*Loader実行可能ファイルのsymlink。

TOOLS_LICENSE

ツールInstant Clientパッケージのライセンス文書。

TOOLS_README

ツールInstant ClientパッケージのReadmeドキュメント。

wrc.exe

ツールInstant Clientパッケージには、この付録で説明したもの以外のツールが含まれています。wrcツールは、Oracle Databaseの再実行機能用のワークロードの再実行クライアント(wrc)です。wrcツールはここに示されていますが、この付録の情報には含まれていません。

wrc.sym

ワークロード・リプレイ・クライアントのsymlink。

A.6 ツールInstant Clientパッケージの構成

Oracle Instant Clientで使用するためにツールInstant Clientパッケージの実行可能ファイルを構成するには、環境変数を設定する必要があります。

Oracle Instant Clientでは、ORACLE_HOMEまたはORACLE_SID環境変数を設定する必要はありません。ただし、LD_LIBRARY_PATHを設定する必要があり、必要なグローバリゼーション環境変数を設定する必要があります。

ツール・パッケージと一緒に使用する予定のOracle Instant Client実行可能ファイルと同じリリースのツールInstant Clientパッケージ実行可能ファイルのみを使用してください。

例A-1 Linuxでの(RPMSからの)ツールInstant Clientパッケージの構成

この例では、ツールInstant Clientパッケージのサブディレクトリにあるリリース固有のサブディレクトリで、OTNインストールからダウンロードしたRPMを/usrファイル・システムに移動します。/usrサブディレクトリ内のリリース固有のフォルダを使用することにより、使用するOracle Instant Clientのリリースごとに使用可能な複数のバージョンのInstant Clientツールを使用できます。

  1. Oracle Instant Clientライブラリを含むディレクトリの名前をLD_LIBRARY_PATHに追加します。その他のOracleディレクトリは削除します。

    たとえば、BourneまたはKornシェルでLD_LIBRARY_PATHを設定するには、次の構文を使用します。

    LD_LIBRARY_PATH=/usr/lib/oracle/19/client/lib:${LD_LIBRARY_PATH}
    export LD_LIBRARY_PATH

    または、CシェルでLD_LIBRARY_PATHを設定するには、次の構文を使用します。

    % setenv LD_LIBRARY_PATH /usr/lib/oracle/19/client/lib:$LD_LIBRARY_PATH
  2. たとえば、RPMからインストールしたTools実行可能ファイルが、PATHの先頭の実行可能ファイルであることを確認します。たとえば、ツール実行可能ファイルが最初に見つかったかどうかをテストするには、which sqlldrと入力します。PATH環境変数が正しく構成されている場合、レスポンスは/usr/bin/sqlldrになります。このレスポンスが得られない場合は、他のOracleディレクトリをPATHから削除するか、PATH内の他のTools実行可能ファイルの前に/usr/binを入力するか、あるいは絶対パスまたは相対パスを使用してツールInstant Clientを起動します。

    たとえば、bashシェルでPATHを設定するには、次のように指定します。

    PATH=/usr/bin:${PATH}
    export PATH
  3. ロケールに必要なOracleグローバリゼーション変数を設定します。たとえば:

    NLS_LANG=AMERICAN_AMERICA.UTF8
    export NLS_LANG

    グローバリゼーション値を設定しない場合、ツール・パッケージは、デフォルト・ロケールからグローバリゼーション値を取得します。

例A-2 LinuxおよびUNIXでの(Clientメディアまたはzipファイルからの)ツールInstant Clientパッケージの構成

  1. Instant Clientファイルを含むディレクトリの名前を、適切な共有ライブラリ・パスLD_LIBRARY_PATHLIBPATHまたはSHLIB_PATHに追加します。その他のOracleディレクトリは削除します。

    たとえば、Oracle Solaris上でBourneまたはKornシェルにSolarisを使用するには、次のコマンドを入力します。

    LD_LIBRARY_PATH=/home/instantclient19:${LD_LIBRARY_PATH}
    export LD_LIBRARY_PATH
  2. Instant Clientファイルを含むディレクトリを環境変数PATHに追加します。設定されていない場合は、絶対パスまたは相対パスを使用して、ツール・パッケージで提供されるユーティリティを起動する必要があります。その他のOracleディレクトリはPATHから削除します。たとえば:

    PATH=/home/instantclient19:${PATH}
    export PATH
  3. ロケールに必要なOracleグローバリゼーション変数を設定します。たとえば:

    NLS_LANG=AMERICAN_AMERICA.UTF8
    export NLS_LANG

    グローバリゼーション値を設定しない場合、ツール・パッケージは、デフォルト・ロケールからグローバリゼーション値を取得します。

例A-3 WindowsでのツールInstant Clientパッケージの構成

Windowsコマンド・プロンプトでSETコマンドを使用すると、Microsoft Windows環境を構成できます。システム・プロパティで環境変数を設定することで、環境変数を永続的にすることができます。

たとえば、Windows Server 2019でシステム・プロパティを使用して環境変数を設定するには、「コントロール パネル」から「システム」を開き、「システムの詳細設定」リンクをクリックしてから、「環境変数」をクリックします。

  1. Instant Clientファイルを含むディレクトリをシステム環境変数PATHに追加します。その他のOracleディレクトリはPATHから削除します。

    たとえば、PATHの先頭にc:\instantclient19を追加します。

  2. ロケールに必要なOracleグローバリゼーション変数を設定します。変数を設定しない場合は、デフォルトのロケールが指定されたものとみなされます。

    たとえば、日本語環境用のNLS_LANGを設定するには、JAPANESE_JAPAN.JA16EUCに設定されたユーザー環境変数NLS_LANGを作成します。

A.7 ツールInstant Clientパッケージによるデータベースへの接続

ツールInstant Clientパッケージをインストールして構成した後、ツールを使用してデータベースに接続する方法は複数あります。

ツールInstant Clientで提供されるユーティリティは、すべてのデータベース・サーバーから常にリモートの状態になります。Oracle Instant Clientを使用するには、サーバー上でOracle Databaseインスタンスが稼働中で、TNSリスナーが実行中である必要があります。Oracle Data Pump ExportおよびOracle Data Pump Importの場合、ダンプ・ファイルはリモート・サーバーに存在します。サーバー上のOracle Databaseディレクトリ・オブジェクトが存在し、適切な権限が割り当てられている必要があります。

例A-4 Instant Clientツールを使用してデータベースに接続する複数の方法

データベースに接続するには、Oracle Net接続識別子を使用して、データベースを指定する必要があります。次の情報ではSQL*Loader (sqlldr)ユーティリティを使用しますが、この情報はツールInstant Clientパッケージで提供される他のユーティリティにも適用されます。

たとえば、簡単な接続識別子を使用して、mymachineで実行されているMYDBデータベース内のHRスキーマに接続できます:

sqlldr hr/your_password@\"//mymachine.mydomain:port/MYDB\"

また、ネット・サービス名も使用できます。

sqlldr hr/your_password@MYDB

ネット・サービス名は、LDAPなどの様々な場所に格納できます。新しいリリースのOracle Database機能を十分に活用するために、LDAPを使用することをお薦めします。

ローカルのOracle Net tnsnames.oraファイル内に構成されたネット・サービス名を使用する場合は、tnsnames.oraファイルを含むディレクトリに環境変数TNS_ADMINを設定します。たとえば、UNIXまたはLinuxシステムでは、tnsnames.oraファイルが/home/user1にあり、ネット・サービス名MYDB2が定義されている場合、次のコマンドを使用できます。

TNS_ADMIN=/home/user1
export TNS_ADMIN
sqlldr hr@MYDB2

TNS_ADMINを環境変数として設定しない場合、tnsnames.oraを検索するためにオペレーティング・システムに依存するディレクトリのセットが調べられます。この検索パスには、network/admin/tnsnames.oraORACLE_HOME環境変数によって指定されているディレクトリの検索も含まれます。オペレーティング・システムでtnsnames.oraファイルを検索できるようにすることが、SQL*Loader Instant ClientのORACLE_HOME環境変数を設定する唯一の理由です。Instant Clientアプリケーションの実行時にORACLE_HOMEを設定する場合は、既存のディレクトリに設定する必要があります。

次の例は、環境変数ORACLE_HOMEが設定されていて、$ORACLE_HOME/network/admin/tnsnames.oraまたはORACLE_HOME\network\admin\tnsnames.oraファイルによってNetサービス名MYDB3が定義されていることを前提としています。

sqlldr hr@MYDB3

環境変数TWO_TASK (UNIXとLinuxの場合)またはLOCAL (Microsoft Windowsの場合)を接続識別子に設定できます。環境変数をこのように設定することで、SQL*LoaderまたはSQL*Loader Instant Clientを介して接続が確立されるたびに明示的に接続識別子を入力しなくてすむようにできます。たとえば、UNIXシステムでクライアントを使用してデータベースに接続するとします。次の例では、MYDB4と呼ばれるデータベースに接続します。

TNS_ADMIN=/home/user1
export TNS_ADMIN
TWO_TASK=MYDB4
export TWO_TASK
sqlldr hr

Microsoft Windowsのシステム・プロパティで、TNS_ADMINLOCALの両方を設定できます。

A.8 ツールInstant ClientパッケージおよびInstant Clientのアンインストール

ツールInstant Clientパッケージを個別にアンインストールすることも、Instant Client全体をアンインストールすることもできます。

ツールInstant Clientパッケージをアンインストールした後も、残されたInstant Clientライブラリによって、カスタム作成されたOCIプログラムまたはサード・パーティのデータベース・ユーティリティで引き続きデータベースに接続できます。

例A-5 ツールInstant Clientのアンインストール

  1. LinuxでのRPMパッケージからのインストールの場合は、ツールInstant Clientパッケージに対してのみrpm -eを使用します。

    または

    UNIXおよびWindowsでのインストールの場合、およびLinuxでのClientリリース・メディアからのインストールの場合は、ツールInstant Clientに固有のすべてのファイルを手動で削除します。削除するファイルは、インストール時に指定したInstant Clientディレクトリにあります。Oracleホーム・ファイルは削除しないでください。

    必要に応じて、環境変数をリセットし、tnsnames.oraを削除します。

例A-6 Instant Client全体のアンインストール

  1. Linux上のRPMパッケージからのインストールでは、次のいずれかのオプションを選択します。

    • rpm -qaを使用して、ツールInstant Clientおよび基本Oracle Instant Clientパッケージの名前を検索します。これらを削除するには、rpm -eを実行します

    • UNIXおよびWindowsでのインストールの場合、およびLinuxでのClientリリース・メディアからのインストールの場合は、Tools実行可能ファイルおよびOracleライブラリを含むディレクトリを手動で削除します。

  2. PATHLD_LIBRARY_PATHTNS_ADMINなどの環境変数をリセットします。

  3. 必要に応じて、tnsnames.oraを削除します。