ITPub博客

首页 > 数据库 > Oracle > 12c 如何为每个pdb对应一个静态注册的监听端口

12c 如何为每个pdb对应一个静态注册的监听端口

Oracle 作者:datapeng 时间:2015-06-11 08:22:24 0 删除 编辑
最近有一个新的需求,在12c CDB环境中为每个pdb配置单独的静态注册,每个静态注册对应一个独立的端口号。
比如:
cdb  LISTENER 1521
pdb1 listener1522
pdb2 listener1523
...

首先来回顾一下静态注册的参数概念:

1. SID_NAME:数据库实例名。和数据库参数INSTANCE_NAME一致。
SYS@cdb >  show parameter instance_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      cdb

2. ORACLE_HOME:实例运行的ORACLE_HOME目录,如果是集群环境这里也填写ORACLE的ORACLE_HOME目录。

3. GLOBAL_DBNAME: 数据库服务名,可以省略,默认和SID_NAME保持一致。在本例中这里需要填写PDB的服务名。创建这个服务名可以通过NETMGR来操作。如下图所示:容器库的sid为cdb,为可插拔库pdb2创建同名服务。

实验环境如下所示,一个名为cdb的多租户数据库包含2个可插拔数据库pdb1,pdb2
[oracle@snow admin]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Sun May 3 01:57:06 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SYS@cdb > show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           READ WRITE NO

SYS@cdb > show parameter name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cell_offloadgroup_name               string
db_file_name_convert                 string
db_name                              string      cdb
db_unique_name                       string      cdb
global_names                         boolean     FALSE
instance_name                        string      cdb
lock_name_space                      string
log_file_name_convert                string
pdb_file_name_convert                string
processor_group_name                 string
service_names                        string      cdb

使用netca工具分别创建名为1522和1523的监听器,过程略。

使用netmgr工具分别为刚刚创建的监听1522,1523添加服务,也就是我们需要的静态注册。


图形工具创建完成后,查看配置文件可以看到配置中的关键步骤。
[oracle@snow admin]$ vi listener.ora 
# listener.ora Network Configuration File: /u01/app/oracle/product/12.1.0.1/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

#—netca创建的动态监听
1523 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = snow.oracle.com)(PORT = 1523))
  )
#—netca创建的动态监听
1522 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = snow.oracle.com)(PORT = 1522))
  )

ADR_BASE_1523 = /u01/app/oracle


1521 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = snow.oracle.com)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_1522 = /u01/app/oracle

ADR_BASE_1521 = /u01/app/oracle

#—netmgr创建的服务,GLOBAL_NAME为pdb名称,SID_NAME为cdb名称
SID_LIST_1523 =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = pdb2)
      (ORACLE_HOME = /u01/app/oracle/product/12.1.0.1/db_1)
      (SID_NAME = cdb)
    )
  )
#—netmgr创建的服务,GLOBAL_NAME为pdb名称,SID_NAME为cdb名称
SID_LIST_1522 =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = pdb1)
      (ORACLE_HOME = /u01/app/oracle/product/12.1.0.1/db_1)
      (SID_NAME = cdb)
    )
  )


创建完毕测试效果
[oracle@snow admin]$ sqlplus u1/u1@snow.oracle.com:1522/pdb1

SQL*Plus: Release 12.1.0.1.0 Production on Sun May 3 01:54:12 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Last Successful login time: Sun May 03 2015 01:41:23 -04:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

U1@snow.oracle.com:1522/pdb1 > exit


[oracle@snow admin]$ sqlplus u2/u2@snow.oracle.com:1523/pdb2

SQL*Plus: Release 12.1.0.1.0 Production on Sun May 3 01:54:38 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Last Successful login time: Sun May 03 2015 01:53:07 -04:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

U2@snow.oracle.com:1523/pdb2 > exit

补充内容:
集群环境下tns是grid用户下创建的,使用netmgr创建静态注册的话在ORACLE_HOME一项填写的是GRID用户下的ORACLE_HOME,比如:/u01/12.1.0.1/grid这显然是不对了。 需要手工将其修改为oracle用户下的ORACLE_HOME地址,比如:/u01/app/oracle/product/12.1.0.1/db_1

全文完

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29371470/viewspace-1695143/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-12-06

  • 博文量
    228
  • 访问量
    2684262