2013年9月10日火曜日

Oracle Database 12c Tips - direct access to pluggable database/プラガブルデータベースに直接アクセス

English follows Japanese:

tnsnames.oraに以下を追加

PDBORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDBORCL.localdomain)
    )
  )

これでSQLPLUSで直接接続できる。
sqlplus /nolog
conn system@PDBORCL


##注意点:SQL Developerではなぜかこの方法ではSIDでは接続できなかった。
なのでサービス名を指定した。サービス名はグローバルDB名だった。
プラガブルDBのグローバルDB名はコンテナDBのdb_domain名が後ろにつく。

例)
コンテナDBのGlobalDB名: cdb.oracle.com
プラガブルDB名: pdb1
SQL Developer接続時に入れるサービス名:pdb1.oracle.com


##Tips:接続先の確かめ方を簡略化
つなげた先がコンテナDBなのかプラガブルDB確かめるには
show con_name
というコマンドを実行しなければならないのが面倒なので、
[ORACLE_HOME]\sqlplus\admin\glogin.sqlに以下を追加。

   set sqlp "_USER'@'_CONNECT_IDENTIFIER> "

そうすると、SQLPLUSで接続した後に通常SQL>と表示されるところに以下のように記載される。
   時間 接続ユーザ名@接続先DB名
   例)18:21:48 SYSTEM@pdborcl
なので接続先がいつもわかって便利。

参照先:http://discus-hamburg.cocolog-nifty.com/mac_de_oracle/2013/07/oracle-database.html
---------------------------------------

Adding following in tnsnames.ora
ex) Container DB global name = ORCL.localdomain
    Pluggable DB = PDBORCL
PDBORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDBORCL.localdomain)
    )
  )

Then you can access the pluggable Database Directory
sqlplus /nolog
conn system@PDBORCL

##For accessing Pluggable DB from SQL Developer, the above setting is not enough
You need to access with not SID but service name:PDBORCL.localdomain

Reference: http://discus-hamburg.cocolog-nifty.com/mac_de_oracle/2013/07/oracle-database.html

## Ensure which DB you have accessed
The simple way is to run the following command in SQLPLUS
show con_name

Here is the way you can always ensure where you are accessing.
Just add the following in [ORACLE_HOME]\sqlplus\admin\glogin.sql file.

   set sqlp "_USER'@'_CONNECT_IDENTIFIER> "

Next time you connect DB though SQLPLUS, you will see the following
   ex)18:21:48 SYSTEM@pdborcl
    which means you have made the connection to pdborcl instance as system user at 18:21:48.

0 件のコメント:

コメントを投稿