6 Oracle Net Services接続のクイック・スタート
クライアント・アプリケーションとデータベースのTCP/IPネットワークによる接続のように、単純でありながら一般的なネットワーク構成について、初心者でも設定とテストができるように説明します。
6.1 接続確立の前提条件
この章のタスクでは、データベース・サーバーとクライアント・コンピュータとの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
6.2 ネットワークの可用性の確認
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ユーティリティを使用できます。
クライアント・コンピュータがサーバーに接続できない場合、ネットワークのケーブル接続やネットワーク・インタフェース・カードが正しく接続されているかを確認します。これらの問題を解消するには、ネットワーク管理者に連絡してください。
6.3 Oracle Net ListenerとOracle Databaseサーバーの起動
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;
関連項目:
SERVICES
コマンドの詳細は、「リスナーのサービスの監視」を参照してください
6.4 Oracle Connection Managerの起動
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_
fully_qualified_host_name
-
次のコマンドを使用して、管理対象として選択したOracle Connection Managerを起動します。
cmctl> STARTUP
インスタンスが起動したことがOracle Connection Managerで確認され、インスタンスのステータスが表示されます。
-
次のコマンドを使用して、Oracle Connection Manager Controlユーティリティを終了します。
cmctl> EXIT
6.5 データベースへの接続
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のフィールドが使用されます。 |
6.6 データベースに接続するための簡易接続の使用
「ネットワークの可用性の確認」に関する項で説明しているように、ネットワーク接続が確認された場合、簡易接続ネーミング・メソッドを使用してデータベースに接続します。このネーミング・メソッドを利用すると、データベースへの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に移行することを強くお薦めします。
関連項目:
このメソッドの詳細は、「簡易接続ネーミング・メソッドの理解」を参照してください