oracle 12c 怎样配置TNS来访问PDB

如题所述

Oracle 12c连接PDB时,listener和tnsnames.ora配置

 

1、配置监听

首先要明确,所有的PDB都使用1个监听,配置多个实际上启动时也只有第1个有意义。

LISTENER=

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST =ora12c_A)(PORT = 1521))

  )

 

接下来使用SID_LIST_LISTENER来进行静态注册服务。

 

SID_LIST_LISTENER=

(SID_LIST=

  (SID_DESC =

  (GLOBAL_DBNAME = ora12c) #该服务是我配置的cdb信息

  (SID_NAME = ora12c)

  )

 

  (SID_DESC =

  (GLOBAL_DBNAME = pdborcl)#该服务是我配置的pdb信息

  (SID_NAME = ora12c)

  )

)

 

ADR_BASE_LISTENER= /opt/oracle

 

2、tnsnames.ora配置

观察发现,在tnsnames中配置pdb跟CDB,即原来11g的配置完全一样。这里SERVICE_NAME = pdborcl使用得是PDB的名字,可以在v$pdbs中查看。

 

ORA12C=

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST =ora12c_A)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = ora12c)

    )

  )

 

pdborcl=

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST =ora12c_A)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = pdborcl)

    )

  )

 

3、为了保险,检查下sqlnet.ora

NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT)

这一句是为了保证优先使用TNSNAMES解析。

配置完,在PDB启动的情况下(怎么启动这里不多讲了),就可以直接连接到PDB了。(Oracle12c是没有scott用户的,我自己在PDB下面新建的)。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-13
通过配置本地数据库的tns配置文件实现:
去oracle安装目录下oracle\product\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用记事本打开,里边有远程数据库的tns连接配置串如下
ORCL23 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.23)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL)
)
)
添加好ip、端口和目标数据库的实例名(SID),然后确保tns名称(ORCL23)在整个文档中唯一,保存后打开数据库连接工具,输入远程数据库上的用户名密码,选择数据库对象为你配置的连接名就可以了本回答被提问者和网友采纳
相似回答