LoginSignup
12
27

More than 3 years have passed since last update.

Oracle DB接続覚書

Last updated at Posted at 2018-06-05

Oracle DBへの接続でエラーになることが多いので覚書。12c対象

データベースの名前

名前の整理

名前に関する項目 説明
データベース識別子(DBID) RMANでDBの識別に利用。スタンバイDBはプライマリDBと同じID。
DB名(DB_NAME) RACの各インスタンスは同じデータベース名
DB_UNIQUE_NAME 通常DB_NAMEと同じ。プライマリDBとスタンバイDBはDB_NAMEを変えずこれを変更。
ドメイン名(DB_DOMAIN) RACの場合必須(と書いてあるが構築すると空)。
インスタンス名(INSTANCE_NAME) シングルDBの場合通常DB名と同じ。RACの場合DB_NAMEと異なる。
システム識別子(SID) 通常はインスタンス名と同じだが別にすることも可能。ローカル接続で利用。サーバ内でユニーク。
ORACLE_SID ローカルDB接続時のSIDを設定しておく環境変更。(但し「. oraenv」コマンドではデータベース名を入力するため、接続時はインスタンス名に変更する必要がある。また、PDB名は設定不可)
サービス名(SERVICE_NAMES) リスナ経由接続先を指定する名前。デフォルト(通常変更しない)はDB_UNIQUE_NAME.DB_DOMAIN。PDBはPDB名.DB_DOMAIN。(複数登録可能で、例えば、RACでサービス名により稼働インスタンスを制限可能)
NET_SERVICE_NAME ネットサービス名、TNSサービス名、接続識別子
GLOBAL_NAME グローバル・データベース名。DBLINKで利用。(使ったことないので下記参照先)

名前の調べ方

SQL> select DBID from v$database;
SQL> show parameter db_name
SQL> show parameter db_unique_name
SQL> show parameter db_domain
SQL> show parameter instance_name
-- SIDは/etc/oratab参照。SERVICE_NAMESはリスナに登録
SQL> SELECT * FROM GLOBAL_NAME;

接続方法

sqlplus

接続タイプ コマンド形式 説明
ローカル ORACLE_SID=システム識別子 sqlplus / as sysdba OS認証によるsys接続
ORACLE_SID=システム識別子 ユーザ名/パスワード[ as sysdba] パスワード認証による接続
リモート sqlplus ユーザ名/パスワード@ネットサービス名 tnsnames.oraに登録された名前で接続
sqlplus ユーザ名/パスワード@ホスト[:ポート][/サービス名] listenerに登録されているサービス名で接続。

JDBC thin接続

接続タイプ コマンド形式 説明
リモート jdbc:oracle:thin:@ホスト:ポート:インスタンス名 インスタンス名で接続
jdbc:oracle:thin:@//ホスト:ポート/サービス名 サービス名で接続。(//は省略可だがエラーになるケースもあるのでつけておく)

補足

  • 接続タイプ
    • ローカル接続はリスナを経由せずDBに接続する。内部接続、BEQ接続とも言う。
    • リモート接続はリスナを経由する。ホスト、ポートは(SCAN)リスナが待機している場所を指定。ホストはIPも可。ポート省略時1521
  • RACの場合
    • サービス名にはDB_UNIQUE_NAME,DB_UNIQUE_NAME.DB_DOMAINの両方が動的に登録
    • SCANリスナは生きているインスタンスにバランスして接続するため通常こちらに接続
    • インスタンスを固定して接続したい場合、(ローカル)リスナに接続する
    • クライアントのtnsnames.oraで接続先インスタンスを制御したい場合も(ローカル)リスナを設定

参照

更新履歴

  • 2020/02/13 SID、ORACLE_SID、ローカル接続の説明を修正
12
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
27