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データベース・リスナーが実行されている必要があります。
root
コンテナに接続できます。$ cd $ORACLE_HOME/bin $ ./sqlplus system@dbhost.example.com:1521
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
に接続文字列の別名を定義できます。詳細は、ローカル・ネーミング・メソッドの構成を参照してください。