この章では、TCP/IPネットワークによるクライアント・アプリケーションとデータベース接続などの、一般的で単純なネットワーク構成について、初心者でも設定およびテストできるように説明します。
この章の内容は、次のとおりです。
この章のタスクでは、データベース・サーバーとクライアント・コンピュータとのTCP/IP接続について示します。データベース・サーバーとクライアント・コンピュータは次の条件を満たす必要があります。
データベース・サーバー
クライアントにアクセスできるネットワークでサーバーが実行中であること
Oracleデータベースがインストールされていること
リスナーが構成されていること
TCP/IPプロトコル・サポートがインストールされていること
クライアント・コンピュータ
データベース・サーバーにアクセスできるネットワークでクライアント・コンピュータが実行中であること
Oracleクライアントがインストールされていること
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.0.2.203 sales-server sales.us.example.com
Oracle Netをクライアント・コンピュータとデータベース・サーバーとの接続に使用する前に、クライアント・コンピュータがデータベース・サーバーのコンピュータと正常に通信できるかどうかを確認します。ネットワークの接続性を評価しておくと、ネットワークに起因するエラーを排除できます。
次の手順では、ネットワーク接続の確認方法について説明します。
次のように、データベース・サーバーのコンピュータが、ループバック・テストによって自分自身と通信できることを確認します。
ハードウェア接続を確認するには、コマンドラインで次のコマンドを入力します。
ping ip_address
前述のコマンドで、ip_addressはデータベース・サーバー・コンピュータのIPアドレスです。たとえば次のように入力します。
ping 192.0.2.203
DNSまたはホスト名が正しく構成されていることを確認するには、コマンドラインで次のコマンドを入力します。
ping host_name
前述のコマンドで、host_nameはサーバーのホスト名です。
サーバーのTCP/IP設定をテストするには、次のコマンドを入力します。
ping 127.0.0.1 ping6 ::1
IPアドレス127.0.0.1は、ループバック・テスト用の標準のIPv4アドレスです。IPアドレス::1 (0: 0: 0: 0: 0: 0: 0: 1)は、ループバック・テスト用の標準のIPv6アドレスです。
クライアント・コンピュータがデータベース・サーバーのコンピュータと正常に通信できることを確認します。
検証方法は、ネットワーク・プロトコルによって様々です。TCP/IPでは、PING、FTP、TELNETユーティリティを使用できます。
クライアント・コンピュータがサーバーに接続できない場合、ネットワークのケーブル接続やネットワーク・インタフェース・カードが正しく接続されているかを確認します。これらの問題を解消するには、ネットワーク管理者に連絡してください。
Oracle Net ListenerとOracle Databaseサーバーは、データベース・サーバーが接続を受け取る順番で実行している必要があります。次の手順では、Oracle Netリスナーを起動する方法について説明します。
リスナー制御ユーティリティを使用してリスナーを起動します。コマンドラインから、次のように入力します。
lsnrctl
LSNRCTL> START [listener_name
]
前述のコマンドで、listener_nameは、listener.ora
ファイルに定義されているリスナーの名前です。デフォルトの名前LISTENER
を使用している場合、リスナーを指定する必要はありません。
リスナーが正常に起動したことを示すステータス・メッセージが表示されます。
次のようにデータベースを起動します。
次のコマンドを使用して、データベースに接続せずにSQL*Plusを起動します。
SQLPLUS /nolog
次のコマンドを使用して、SYSDBAとしてデータベースに接続します。
SQL> CONNECT username
as sysdba
パスワードの入力を求めるメッセージが表示されます。
注意: 単純化するため、この例では、デプロイされたシステムで通常使用されるパスワード管理技術を実行していません。本番環境では、Oracle Databaseのパスワード管理ガイドラインに従い、サンプル・アカウントをすべて無効にしてください。パスワード管理ガイドラインおよびその他のセキュリティに関する推奨事項については、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
次のコマンドを使用して、データベースを起動します。
SQL> STARTUP database_name
前述のコマンドで、database_nameはデータベースの名前です。
関連項目: データベースの起動の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
リスナー制御ユーティリティと次のコマンドを使用して、リスナーへのデータベース・サービス登録が完了していることを確認します。
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インスタンスで使用されるデフォルトのサービス名はデータベース名であり、次の簡易接続構文を使用してそのインスタンスに接続できます。
SQLPLUS /nolog SQL> CONNECTusername
@"host
/db_name"
SQL> Enter password:password
注意: Oracle Databaseでは、Oracle Database 10g時点で、Oracle Namesの使用をサポートしていません。Oracle Database 12cのクライアントおよびデータベースでは、LDAPプロキシも含め、Oracle Namesを使用して名前を解決できません。Oracle9iのクライアントでは、引き続きOracle Namesを使用してOracle Database 12cデータベースの名前を解決できます。ただし、Oracle Database 12cの新機能を活用するために、LDAPに移行することを強くお薦めします。 |