ヘッダーをスキップ
Oracle® Database Express Edition 2日でデータベース管理者
11g リリース2 (11.2)
B66471-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

4 ネットワーク接続の管理

この項では、データベースへのネットワーク接続を管理する方法について説明します。次のトピックが含まれています。

ネットワーク接続およびOracle Netリスナーについて

Oracle Database Express Edition (Oracle Database XE)では、クライアント・アプリケーションからのネットワーク経由リモート接続とローカル接続の両方がサポートされています。リモート・クライアント・アプリケーションとデータベースは、Oracle Netを介して通信します。Oracle Netは、リモート・コンピュータとOracle Database XEホスト・コンピュータの両方に常駐するソフトウェア・レイヤーです。Oracle Netは、クライアント・アプリケーションとデータベース間の通信を確立し、TCP/IPを使用して両者の間でメッセージを交換します。Oracle Netは、Oracle Database XEおよびOracle Database Express Edition Clientをインストールすると自動的にインストールされます。

Oracle Database XEのインストールでOracle Netとともに組み込まれるのは、Oracle Netリスナーで、一般的にリスナーと呼ばれます。それは、特定のTCP/IPポートの接続要求をリスニングするホスト・プロセスです。リスナーは、クライアント・アプリケーションから有効な接続要求を受信すると、その接続要求をデータベースに送信します。その後、クライアント・アプリケーションとデータベースは直接通信します。

表4-1に、リスナーで処理される接続要求のタイプを示します。

表4-1 リスナーで処理される接続要求のタイプ

接続要求タイプ デフォルトのTCPポート番号 用途

データベース

1521

Oracle Netを使用したTCP/IP経由のデータベース接続。次の例があります。

  • SQLコマンドラインからのリモート接続。

  • JDBCとの接続を行うJavaアプリケーションからのリモート接続。

HTTP

8080

HTTPプロトコルを使用したデータベース接続。次の例があります。

  • ローカル・システムに作成したOracle Application Expressアプリケーションへのアクセス。

  • Oracle XML DBリポジトリへのアクセス。Oracle XML DBは、高パフォーマンスのネイティブXMLの格納と取得を提供するOracle Database XEの機能です。Oracle XML DBリポジトリを介して、ユーザーは、HTTPおよびWebDAV (Webフォルダ)プロトコルを使用してXMLデータにアクセスできます。詳細は、『Oracle XML DB開発者ガイド』を参照してください。



注意:

また、リスナーは、Oracle XML DBリポジトリに対するFTP接続要求も処理します。セキュリティ上の理由から、FTP要求は、Oracle Database XEをインストールしたときに無効にされます。詳細は、『Oracle XML DB開発者ガイド』を参照してください。

リスナーを手動で停止することで特定のタイプの接続要求を無効にし、リスナーを再起動することでそれらを再度有効にすることができます。(Oracle Database XEをインストールしたとき、およびOracle Database XEのホスト・コンピュータを再起動したときは、自動的にリスナーが起動されます。)

表4-2に、リスナーの起動を必要とする接続のタイプを示します。

表4-2 リスナーを必要とする接続

接続タイプ ローカル接続 リモート接続

データベース

不要

必要

HTTP

必要

必要


表に示しているように、リスナーを停止すると、ローカル・データベース接続要求以外のすべての接続要求は無効になります。

リスナーの構成

Oracle Database XEのインストール・プロセス中またはインストール後に、データベースとHTTPの両方の接続要求をリスナーがリスニングするポートを変更できます。インストール後にポート番号を変更する方法の詳細は、「リスナーのポート番号の変更」を参照してください。


注意:

Windowsのインストール・プロセスでは、デフォルトのポート番号の8080がすでに使用中である場合のみ、HTTPリクエスト用のポート番号を入力するように指示されます。Linuxの構成スクリプトでは、常に、HTTPのポート番号を入力するように指示されます。

リモートHTTP接続の初期無効化

セキュリティ対策として、リモートHTTP接続要求は、最初は無効になっています。これは、ユーザーがリモートHTTP接続を有効にするまで、リモート・ユーザーはOracle Database XEのグラフィカル・ユーザー・インタフェースを使用できないことを意味します。手順については、「データベースへのリモートHTTP接続の有効化」を参照してください。

リスナーのステータスの表示

リスナーのステータスは、リスナーが起動されているかどうかを判別し、リスナーのプロパティ(リスナーがリスニングするTCP/IPポート番号など)を確認するために表示します。これを行うには、リスナー制御(lsnrctl)ユーティリティを使用します。

リスナーのステータスを表示する手順は、次のとおりです。

  1. 次の操作を1つ実行します。

    • Linuxの場合: ターミナル・セッションを開始し、Oracle Database XEのホスト・コンピュータにoracleユーザー・アカウントでログインします。

    • Windowsの場合: Oracle Database XEのホスト・コンピュータに、Oracle Database XEをインストールしたユーザーでログインし、コマンド・ウィンドウを開きます。

  2. Linuxの場合は、環境変数が「Linuxプラットフォームの環境変数の設定」の手順に従って設定されていることを確認します。

  3. 次のコマンドを入力します。

    LSNRCTL STATUS
    

リスナーが起動していない場合は、次のエラー・メッセージが表示されます。

TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener

リスナーが起動している場合は、次のようなレポートが表示されます。

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Production
Start Date                08-MAR-2011 16:12:26
Uptime                    0 days 1 hr. 57 min. 59 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   
C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\listener.ora
Listener Log File
C:\oraclexe\app\oracle\diag\tnslsnr\user1-pc\listener\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=user1-pc.example.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=user1-pc.example.com)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
  Instance "xe", status READY, has 1 handler(s) for this service...
Service "xe" has 1 instance(s).
  Instance "xe", status READY, has 1 handler(s) for this service...
The command completed successfully

前述のレポートの太字のテキストは、確認する項目を示しています。それぞれの説明を次に示します。

リスナーの停止および起動

Oracle Database Express Edition (Oracle Database XE)をインストールしたとき、およびOracle Database XEが実行されているコンピュータが再起動されるたびに、リスナーは自動的に起動されるように構成されます。次の理由から、リスナーを停止して再起動することがあります。

リスナーの停止

リスナーを停止する手順は、次のとおりです。

  1. 次の操作を1つ実行します。

    • Linuxの場合: ターミナル・セッションを開始し、Oracle Database XEのホスト・コンピュータにoracleユーザー・アカウントでログインします。

    • Windowsの場合: Oracle Database XEのホスト・コンピュータに、Oracle Database XEをインストールしたユーザーでログインし、コマンド・ウィンドウを開きます。

  2. Linuxの場合は、環境変数が「Linuxプラットフォームの環境変数の設定」の手順に従って設定されていることを確認します。

  3. 次のコマンドを入力します。

    LSNRCTL STOP
    

    コマンドが成功した場合は、次の出力が表示されます。

    Linuxの場合:

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1521)))
    The command completed successfully
    

    Windowsの場合:

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
    The command completed successfully
    

    リスナーがすでに停止している場合は、1行以上の「TNS: no listener」メッセージが表示されます。

リスナーの起動

リスナーを起動する手順は、次のとおりです。

  1. 次の操作を1つ実行します。

    • Linuxの場合: ターミナル・セッションを開始し、Oracle Database XEのホスト・コンピュータにoracleユーザー・アカウントでログインします。

    • Windowsの場合: Oracle Database XEのホスト・コンピュータに、Oracle Database XEをインストールしたユーザーでログインし、コマンド・ウィンドウを開きます。

  2. Linuxの場合は、環境変数が「Linuxプラットフォームの環境変数の設定」の手順に従って設定されていることを確認します。

  3. 次のコマンドを入力します。

    LSNRCTL START
    

    成功した場合は、「リスナーのステータスの表示」に示しているレポートが表示されます。


注意:

データベースの実行中にリスナーを停止して起動した場合、データベースはリスナーへの再登録を行って接続の受入れを開始するため、1分ほど時間がかかることがあります。データベースが接続を受入れ可能な状態であるかどうかを判別するには、レポートに次の行が表示されるまで、繰り返しlsnrctl statusコマンドを実行してください。
Service "XE" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...

リスナーのポート番号の変更

デフォルトのリスナー・ポート番号は、ポート番号が別のTCP/IPサービスと競合する場合にのみ変更する必要があります。インストール時(Windows)または構成時(Linux)に、リスナーのポート番号を変更する機会が与えられます。この項では、インストール後または構成後にポート番号を変更する方法について説明します。この章の内容は、次のとおりです。

データベース接続要求のリスナー・ポート番号の変更

データベース接続要求のリスナー・ポート番号を変更する場合は、それ以降のすべてのデータベース接続要求で、必ず新しいポート番号を使用する必要があります。これは、接続要求(たとえば、「SQLコマンドラインを使用したリモートでの接続」で説明されている接続要求など)に、ポート番号を明示的に含める必要があることを意味します。

たとえば、データベース接続要求のポート番号を1522に変更した場合、それ以降のSQLコマンドライン(SQL*Plus)のconnect文は、次のような文にする必要があります(Oracle Database Express Edition Clientからの接続を想定しています)。

connect system/mypassword@myhost.example.com:1522

例: データベース接続要求のリスナー・ポート番号の変更

たとえば、Oracle Database XEのホスト・コンピュータの名前がmyhost.example.comで、このコンピュータにインストールする新しいソフトウェア・パッケージでTCPポート番号1521が必要であると仮定します。また、そのソフトウェア・パッケージのポート番号は構成できないため、Oracle Database XEを再構成して、ポート番号の競合を解決する必要があると仮定します。データベース接続要求のリスナー・ポート番号を1522に変更することにします。

データベース接続要求のリスナー・ポート番号を1522に変更する手順は、次のとおりです。

  1. リスナーを停止します。

    手順については、「リスナーの停止および起動」を参照してください。

  2. テキスト・エディタでlistener.oraファイルを開きます。

    表4-3に、各プラットフォームのこのファイルの場所を示します。

    表4-3 listener.oraファイルの場所

    プラットフォーム 場所

    Linux

    /usr/lib/oracle/xe/app/oracle/product/11.2.0/server/network/admin/

    Windows

    c:\oraclexe\app\oracle\product\11.2.0\server\NETWORK\ADMIN\


  3. ファイルの次のセクションを探します。

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
          (ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT = 1521))
        )
      )
    

    太字で示している行は、ファイルに存在する場合としない場合があります。

  4. (PORT = 1521)のテキストを(PORT = 1522)に変更します。

  5. 変更後のlistener.oraファイルを保存します。

  6. リスナーを起動します。

    手順については、「リスナーの停止および起動」を参照してください。

  7. SQLコマンドラインを起動し、SYSTEMユーザーでデータベースに接続します。

    手順については、「SQLコマンドラインを使用したローカルでの接続」を参照してください。SYSTEMのパスワードを指定する必要があります。このパスワードは、Oracle Database XEのインストール時(Windows)または構成時(Linux)に設定します。

  8. 次の2つのコマンドを入力します。

    ALTER SYSTEM SET LOCAL_LISTENER = "(ADDRESS=(PROTOCOL=TCP)(HOST=myhost.example.com)(PORT=1522))";
    
    ALTER SYSTEM REGISTER;
    
  9. SQLコマンドラインを終了し、lsnrctl statusコマンドを実行して、ポート番号の変更を確認します。

    ステータス・レポートの「Listening Endpoints Summary」セクションに新しいポート番号が表示され、レポートに次の行が含まれているはずです。

    Service "XE" has 1 instance(s).  Instance "XE", status READY, has 1 handler(s) for this service...
    

HTTP接続要求のリスナー・ポート番号の変更

HTTP接続要求のリスナー・ポート番号を変更する場合は、それ以降のすべてのHTTP接続要求で、必ず新しいポート番号を使用する必要があります。

たとえば、HTTPリクエストのリスナー・ポート番号を8087に変更した場合は、Oracle Application Expressのログイン・ページにローカルでアクセスするには、次のURLを使用する必要があります。

http://127.0.0.1:8087/apex

注意:

HTTPのリスナー・ポート番号を変更した場合は、デスクトップの「スタート・ガイド」メニュー項目を使用してデータベース・ホームページを開けなくなります。次の手順に含まれているオプションのステップで、このメニュー項目が新しいポート番号で機能するように変更する方法を説明しています。

HTTP接続要求のリスナー・ポート番号を変更する手順は、次のとおりです。

  1. 次の操作を1つ実行します。

    • Linuxの場合: ターミナル・セッションを開始し、Oracle Database XEのホスト・コンピュータにoracleユーザー・アカウントでログインします。

    • Windowsの場合: Oracle Database XEのホスト・コンピュータに、Oracle Database XEをインストールしたユーザーでログインし、コマンド・ウィンドウを開きます。

  2. Linuxの場合は、環境変数が「Linuxプラットフォームの環境変数の設定」の手順に従って設定されていることを確認します。

  3. リスナーが起動していることを確認します。

    手順については、「リスナーのステータスの表示」および「リスナーの停止および起動」を参照してください。

  4. オペレーティング・システムのプロンプトで次のコマンドを入力し、SQLコマンドラインを起動します。

    SQLPLUS /NOLOG
    
  5. SQLコマンドラインのプロンプトで、次のコマンドを入力します。

    CONNECT SYSTEM/password
    

    ここで、passwordSYSTEMのパスワードで、Oracle Database XEのインストール時(Windows)または構成時(Linux)に設定したものです。

  6. SQLコマンドラインのプロンプトで、次のコマンドを入力します。

    EXEC DBMS_XDB.SETHTTPPORT(nnnn);
    

    ここで、nnnnは、HTTP接続要求に使用する新しいポート番号を示します。必ず、未使用のポート番号を選択してください。

    たとえば、HTTP接続要求にポート番号8087を使用するには、次のコマンドを入力します。

    EXEC DBMS_XDB.SETHTTPPORT(8087);
    

    コマンドが成功した場合は、次のメッセージが表示されます。

    PL/SQL procedure successfully completed.
    
  7. (exitコマンドを入力して)SQLコマンドラインを終了し、リスナーのステータスを表示して、ポート番号の変更を確認します。

    手順については、「リスナーのステータスの表示」を参照してください。ステータス・レポートの「Listening Endpoints Summary」セクションに新しいポート番号が表示されます。

  8. (オプション) デスクトップの「スタート・ガイド」コマンドが新しいポート番号で機能するようにするには、このコマンドで使用されるスクリプトまたはショートカット内のポート番号を変更します。次の表に、変更する必要がある各プラットフォームのスクリプトまたはショートカットを示します。

プラットフォーム HTTP接続要求のリスナー・ポートを変更した場合に変更するスクリプトまたはショートカット
Linux /usr/lib/oracle/xe/app/oracle/product/11.2.0/server/config/scripts/DatabaseHomePage.sh
Windows C:\oraclexe\app\oracle\product\11.2.0\server\Database_homepage

データベースへのリモートHTTP接続の有効化

インストール後、HTTPプロトコルでのデータベース接続要求は、Oracle Database XEをインストールしたコンピュータでのみ有効になります。これは、リモート・ユーザーは、ローカル・システム上のOracle Application Expressを使用して作成したアプリケーションにアクセスできないことを意味します。管理者であるユーザーは、リモート・ユーザーのHTTPアクセスを有効にすることができ、そうすると、リモート・ユーザーはOracle Database XEのグラフィカル・ユーザー・インタフェースにアクセスできるようになります。


セキュリティ上の注意:

Oracle Database XEへのリモートHTTPアクセスでは、ブラウザとデータベースの間で交換されるすべての情報は平文で、データベース・ユーザー名やパスワードなども含めて暗号化されません。これが懸念材料となる場合は、データベースへのリモートHTTP接続は有効にしないでください。

SQLコマンドラインを使用したリモートHTTP接続の有効化

SQLコマンドラインを使用して、リモートHTTP接続要求を有効にする手順は、次のとおりです。

  1. SQLコマンドラインを起動し、SYSTEMユーザーでデータベースに接続します。Oracle Database XEのインストール時(Windows)または構成時(Linux)に割り当てたSYSTEMのパスワードを指定します。

    手順については、「SQLコマンドラインを使用したローカルでの接続」または「SQLコマンドラインを使用したリモートでの接続」を参照してください。

  2. SQLコマンドラインのプロンプトで、次のコマンドを入力します。

    EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);