6 Oracle Database Freeへの接続

OS認証を使用したローカル接続

Oracle Database Freeをインストールすると、oracleユーザーにSYSDBA権限が付与されます。次のコマンドを使用してデータベースに接続できます。

$ cd $ORACLE_HOME/bin
$ ./sqlplus / as sysdba

これらのコマンドにより、データベース・ユーザーSYSとしてマルチテナント・データベース(CDB)のルート・コンテナCDB$ROOTに接続されます。データベースへのこの接続方法は、Net Servicesリスナーが実行されていない場合でも機能します。

次のような出力により、現在データベースに接続されていることが確認されます。

SQL*Plus: Release 23.0.0.0.0 - Production on Tue Aug 15 03:27:05 2023
Version 23.3.0.23.09

Copyright (c) 1982, 2023, Oracle.  All rights reserved.

Connected to:
Oracle Database 23c Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.3.0.23.09

Net Servicesリスナーおよびデフォルト・サービス

Oracle Database FreeのNet Servicesデータベース・リスナーを使用すると、同じマシンまたはネットワーク上の他のマシンからTCP/IP経由でデータベースに接続できます。リスナーの構成は、コマンド・プロンプトから次のコマンドを実行すれば表示できます。

$ cd $ORACLE_HOME/bin
$ lsnrctl status
LSNRCTL for Linux: Version 23.0.0.0.0 - Production on 15-AUG-2023 03:30:11

Copyright (c) 1991, 2023, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbhost.example.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 23.0.0.0.0 - Production
Start Date                15-AUG-2023 03:19:38
Uptime                    0 days 0 hr. 8 min. 3 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           FREE
Listener Parameter File /opt/oracle/product/23c/dbhomeFree/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/dbhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbhost.example.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "FREE.dbhost.example.com" has 1 instance(s).
  Instance "FREE", status READY, has 1 handler(s) for this service...
Service "FREEXDB.dbhost.example.com" has 1 instance(s).
  Instance "FREE", status READY, has 1 handler(s) for this service...
Service "dbhost.example.com" has 1 instance(s).
  Instance "FREE", status READY, has 1 handler(s) for this service...
Service "freepdb1.dbhost.example.com" has 1 instance(s).
  Instance "FREE", status READY, has 1 handler(s) for this service...
The command completed successfully
lsnrctlコマンドの出力には、多数の重要なパラメータの値が表示されます。
  • リスナーがリスニングするポート
  • リスナーに登録されているサービスのリスト
  • リスナーが使用する構成ファイルの名前
  • ログ・ファイルの名前

リスナーを介してデータベースに接続する場合は、サービスを指定する必要があります。Oracle Database Freeで作成されるデフォルトのサービスは、FREEおよびFREEPDB1です。Oracle Database Freeサービスによりデータベースのrootコンテナ(CDB$ROOT)に接続され、FREEPDB1サービスによりインストール時に作成されたデフォルトのプラガブル・データベースFREEPDB1に接続されます。新しいプラガブル・データベース(PDB)ごとに、PDBと同じ名前で新しいデフォルト・サービスが作成されます。

ノート:

Oracle Database Freeインスタンスを停止すると、lsnrctl statusコマンドでは、接続できるサービスが表示されません。

簡易接続ネーミング・メソッドを使用したOracle Databaseへの接続

次の簡易接続文字列を使用してデータベースに接続できます。
  • マルチテナント・コンテナ・データベース: host[:port]

  • プラガブル・データベース: host[:port]/service_name

FREEPDB1は、デフォルトで作成される最初のPDBに対して定義されるサービス名です。FREEPDB1は、接続先の別のPDBの名前に置き換えることができます。

リスナーがデフォルトのポート1521で設定されている場合、ポートの指定はオプションです。別のポートを使用する場合は、ポート番号を指定する必要があります。

インストールの最終画面には、ローカル接続の接続文字列が指定されていました。リモート・コンピュータから接続する場合は、localhostのかわりにhostname (Oracle Database Freeがインストールされている場所)を入力する必要があります。

正常に接続するには、指定したポートのデータベース・ホストでNet Servicesデータベース・リスナーが実行されている必要があります。

たとえば、SQL*Plusの次のコマンドを使用して、クライアント・コンピュータからデータベースのrootコンテナに接続できます。
$ cd $ORACLE_HOME/bin
$ ./sqlplus system@dbhost.example.com:1521
次のコマンドを使用して、デフォルトのPDB FREEPDB1に接続できます。
$ cd $ORACLE_HOME/bin
$ ./sqlplus system@dbhost.example.com:1521/FREEPDB1

ご使用のデータベース・ホスト名でdbhost.example.comを置き換えます。必要に応じて、リスナーがリスニングするポート番号で1521を置き換えます。FREEPDB1は、接続先の別のPDBの名前に置き換えることができます。

接続文字列を短くしたり、アプリケーション・コードおよびDBAスクリプトでのホスト名とポートのハード・コーディングを避けるために、データベース・クライアントの構成ファイルORACLE_HOME/network/admin/tnsnames.oraに接続文字列の別名を定義できます。詳細は、ローカル・ネーミング・メソッドの構成を参照してください。