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下面新建的)。