Oracle 専用サーバ接続 共有サーバ接続 切替方法

1つの端末から Oracle DBへの専用サーバ接続と共有サーバ接続を切り替えたい場合は下記2通りの方法がある。

tnsnames.ora に両方用意する

tnsnames.ora に同じ接続先のネットサービス名を2つ用意して接続モードだけ変更する。
接続モードとは SERVER = の部分を指す。
tnsnames.ora 例

#専用サーバ接続
TESTDB_SENYO =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = TESTSERVER)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = TESTDB)
    )
  )

#共有サーバ接続
TESTDB_KYOYU =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = TESTSERVER)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = TESTDB)
    )
  )
SQLPLUSで接続する例
  • 専用サーバ接続:scott/tiger@TESTDB_SENYO
  • 共有サーバ接続:scott/tiger@TESTDB_KYOYU

tnsnames.ora を使わず接続箇所に直書きする

tnsnames.ora のネットサービス名以降の部分をすべて接続先として書き、その際に接続モードを指定する。
tnsnames.ora の内容と同じく接続モードとは SERVER = の部分を指す。
SQLPLUSで接続する例
  • 専用サーバ接続:scott/tiger@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=TESTSERVER)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=TESTDB)))
  • 共有サーバ接続:scott/tiger@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=TESTSERVER)(PORT=1521))(CONNECT_DATA=(SERVER=SHARED)(SERVICE_NAME=TESTDB)))
無理矢理感があるが tnsnames.ora が容易に変更できない場合やお試しで接続したい場合などに使える。
また同様の方法で JDBC接続でも接続モードの指定が可能となる。
JDBC接続文字列例
  • 専用サーバ接続:jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=TESTSERVER)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=TESTDB)))
  • 共有サーバ接続:jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=TESTSERVER)(PORT=1521))(CONNECT_DATA=(SERVER=SHARED)(SERVICE_NAME=TESTDB)))