この章では、TCP/IPネットワークによるクライアント・アプリケーションとデータベース接続などの、一般的で単純なネットワーク構成について、初心者でも設定およびテストできるように説明します。
この章の内容は、次のとおりです。
この章のタスクでは、クライアント・コンピュータとデータベース・サーバーとのTCP/IP接続について示します。データベース・サーバーとクライアント・コンピュータは次の条件を満たす必要があります。
データベース・サーバー・コンピュータ
クライアントにアクセスできるネットワークで実行中であること。
Oracleデータベースがインストールされていること。
TCP/IPプロトコル・サポートがインストールされていること。
リスナーが構成されていること。
クライアント・コンピュータ
データベース・サーバーにアクセスできるネットワークで実行中であること。
Oracleクライアントがインストールされていること。
TCP/IPプロトコル・サポートがインストールされていること。
Oracle Netをクライアント・コンピュータとデータベース・サーバーとの接続に使用する前に、クライアント・コンピュータがデータベース・サーバーのコンピュータと正常に通信できるかどうかを確認します。ネットワークの接続性を評価しておくと、ネットワークに起因するエラーを排除できます。
ネットワークの可用性を確認するには、次の手順に従います。
データベース・サーバーのコンピュータが、ループバック・テストによって自分自身と通信できることを確認します。
ループバック・テストは、データベース・サーバーからそのデータベース・サーバーに戻る接続です。多数のネットワーク・プロトコルが、ネットワーク接続をテストする方法を用意しています。PINGユーティリティは、TCP/IPネットワークで使用できます。
TCP/IPネットワークでは、各コンピュータは一意のIPアドレスを持ちます。ドメイン・ネーム・システム(DNS)などの名前解決サービスは、そのホスト名を持つコンピュータのIPアドレスをマップするために使用します。名前解決サービスを使用しない場合、マッピングは通常hosts
と呼ばれるファイルに格納されるため、集約化して保守されます。このファイルは、Linuxでは/etc
ディレクトリに、Microsoft Windowsでは\windows\system32\drivers\etc
ディレクトリにあります。たとえば、sales-server
という名前のデータベース・サーバーのコンピュータのエントリは、次のようになります。
#IP address of server host name alias 192.168.2.203 sales-server sales.us.example.com
ハードウェア接続を確認するには、コマンドラインで次のコマンドを入力します。
ping ip_address
前述のコマンドで、ip_addressはデータベース・サーバー・コンピュータのIPアドレスです。たとえば次のように入力します。
ping 192.168.2.203
DNSまたはホスト名が正しく構成されていることを確認するには、コマンドラインで次のコマンドを入力します。
ping host_name
前述のコマンドで、host_nameはサーバーのホスト名です。
サーバーのTCP/IP設定をテストするには、次のコマンドを入力します。
ping 127.0.0.1
クライアント・コンピュータがデータベース・サーバーのコンピュータと正常に通信できることを確認します。
この方法は、ネットワーク・プロトコルによって様々です。TCP/IPでは、PING、FTP、TELNETユーティリティを使用できます。
クライアント・コンピュータがサーバーに接続できない場合、ネットワークのケーブル接続やネットワーク・インタフェース・カードが正しく接続されているかを確認します。これらの問題を解消するには、ネットワーク管理者に連絡してください。
Oracle Net ListenerとOracle Databaseサーバーは、データベース・サーバーが接続を受け取る順番で実行している必要があります。Oracle Net Listenerを構成するには、次の手順に従います。
リスナー制御ユーティリティを使用してリスナーを起動します。コマンドラインから、次のように入力します。
lsnrctl
LSNRCTL> START [listener_name
]
前述のコマンドで、listener_nameは、listener.ora
ファイルに定義されているリスナーの名前です。デフォルトの名前LISTENER
を使用している場合、リスナーを指定する必要はありません。
リスナーが正常に起動したことを示すステータス・メッセージが表示されます。
次のようにデータベースを起動します。
次のコマンドを使用して、データベースに接続せずにSQL*Plusを起動します。
sqlplus /nolog
次のコマンドを使用して、SYSDBAとしてデータベースに接続します。
SQL> CONNECT username
as sysdba
たとえば、SYS
は、SYSDBAユーザーです。パスワードの入力を求めるメッセージが表示されます。
注意: 単純化するため、この例では、デプロイされたシステムで通常使用されるパスワード管理技術を実行していません。本番環境では、Oracle Databaseのパスワード管理ガイドラインに従い、サンプル・アカウントをすべて無効にしてください。パスワード管理ガイドラインおよびその他のセキュリティに関する推奨事項については、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
次のコマンドを使用して、データベースを起動します。
SQL> STARTUP OPEN database_name
関連項目:
|
次のコマンドを使用して、リスナー制御ユーティリティによりリスナーへのデータベース・サービス登録が完了していることを確認します。
LSNRCTL> SERVICES [listener_name
]
SERVICES
コマンドは、データベースがサポートするサービスと、1つ以上の使用可能なサービス・ハンドラの一覧を示します。データベース・サービス登録が示されていない場合は、次のSQLコマンドを入力します。
SQL> ALTER SYSTEM REGISTER
Oracle Connection Managerがインストールされている場合は、次の手順に従ってOracle Connection Managerを起動します。
次のコマンドを使用して、Oracle Connection Manager Controlユーティリティ(CMCTL)を起動します。
cmctl
CMCTL> ADMINISTER [instance_name
]
前のコマンドで、instance_nameは管理対象のOracle Connection Managerの名前です。cman.ora
ファイルを表示して、その名前を確認できます。ファイルは、ORACLE_HOME/network/admin
ディレクトリ内のOracle Connection Managerコンピュータ上にあります。
Oracle Connection Managerは、インスタンス名を示すステータス・メッセージを表示し、まだインスタンスが起動していないことを知らせます。
注意: 引数にインスタンス名を設定しない場合は、Oracle Connection Managerに完全修飾ホスト名を設定します。これはデフォルトです。ADMINISTER コマンドを発行すると、CMCTLにより次のようにインスタンス名が表示されます。
CMAN_ |
次のコマンドを使用して、管理対象として選択したOracle Connection Managerを起動します。
cmctl> STARTUP
インスタンスが起動したことがOracle Connection Managerで確認され、インスタンスのステータスが表示されます。
次のコマンドを使用して、Oracle Connection Manager Controlユーティリティを終了します。
cmctl> EXIT
Oracleデータベースには複数の方法により接続できます。表6-1は、データベースに接続する構文を示しています。
表6-1 データベースへの接続
接続のタイプ | 接続構文 | 説明 |
---|---|---|
コマンドラインから |
コマンドラインからアプリケーションをデータベース・サーバーに接続させるための一般的な書式を次に示します。
パスワードの入力を求めるメッセージが表示されます。このパスワードは暗号化されます。 たとえば、次のように指定します。
SQLPLUS system@sales
Enter password: |
ほとんどのOracleのツール製品は、オペレーティング・システムのコマンドラインを使用して接続できますが、他の方法でも接続できます。 |
ログイン画面から |
|
一部のツールには、ログオンの代替形式としてログオン画面が用意されています。ユーザーがデータベース・サーバーにログオンするには、ツールのログオン画面のユーザー名フィールドにユーザー名と接続識別子の両方を指定し、パスワード・フィールドに通常どおりにパスワードを入力します。 |
3GLアプリケーションから |
exec sql connect : 前述の接続要求で、:usernameおよび:passwordは3GLの変数です。これらの変数は、静的にまたはユーザーからの入力によってプログラム内で設定できます。データベース・サーバーに接続する場合、:username変数の値の書式は次のとおりです。
:password変数には、接続先データベース・アカウントのパスワードが入ります。 |
OCIやプリコンパイラなど、3GLで作成されたアプリケーションは、クライアントからの直接データベース・アクセス用に中間層およびデータベース・アプリケーション開発者によって使用されます。 |
SQL*Plus内から |
sqlplus /nolog SQL> CONNECT たとえば、次のように指定します。
sqlplus /nolog
SQL> CONNECT scott@serverx
Enter password:
前述のコマンドで、usernameとpasswordは、データベース・ユーザーとパスワードです。また、net_service_nameはネット・サービス名です。 |
一部のOracleのツール製品には、ツールを終了せずに、異なるユーザー名を指定してデータベースに接続できるコマンドがあります。 他のOracleのツール製品では、この説明とは異なる独自の機能やインタフェースに固有の方法が使用されます。たとえば、Oracle CDE Toolsでは、ログオン・ボタンとユーザー名およびパスワード、リモート・データベースIDフィールドがあるウィンドウが使用されます。 |
ネットワークの可用性の確認に関する項で説明しているように、ネットワーク接続が確認された場合、簡易接続ネーミング・メソッドを使用してデータベースに接続します。このネーミング・メソッドを利用すると、データベースへのTCP/IP接続を簡単に行えるようになります。これは、クライアントがデータベースのホスト名の他にオプションのポートとサービス名を使用してデータベースに接続できるようにすることで、ホスト・ネーミング・メソッドの機能を拡張します。簡易接続を使用して接続する構文は、次のとおりです。
CONNECTusername
/password
@host
[:port
][/service_name
][:server
][/instance_name
]
注意: Oracle Call Interfaceのマニュアルでは、serverはconnect_type と呼ばれています。 |
Oracle Databaseサーバーのインストールを「標準」モードで実行した場合、Oracleインスタンスで使用されるデフォルトのサービス名はORCL
であり、次の簡易接続構文を使用してそのインスタンスに接続できます。
sqlplus /nolog SQL> CONNECTusername
@"host
/ORCL" SQL> Enter password:password
注意: Oracle Databaseでは、Oracle Database 10g以降、Oracle Namesの使用をサポートしていません。Oracle Database 11gのクライアントおよびデータベースでは、LDAPプロキシも含め、Oracle Namesを使用して名前を解決できません。Oracle9iのクライアントでは、引き続きOracle Namesを使用してOracle Database 11gデータベースの名前を解決できます。ただし、Oracle Database 11gの新機能を活用するために、LDAPに移行することを強くお薦めします。 |