Oracle 12c 如何为PDB创建一个新的service name

查询pdb的服务关系

SYS@orcl>col name for a25;
SYS@orcl>col pdb for a25;
SYS@orcl>select service_id,name,pdb,con_id from cdb_services order by con_id;

SERVICE_ID NAME                      PDB                           CON_ID
---------- ------------------------- ------------------------- ----------
         1 SYS$BACKGROUND            CDB$ROOT                           1
         6 orcl.example.local        CDB$ROOT                           1
         2 SYS$USERS                 CDB$ROOT                           1
         3 orcl                      CDB$ROOT                           1
         5 orclXDB                   CDB$ROOT                           1
         7 testpdb                   TESTPDB                            2

6 rows selected.

SYS@orcl>

为pdb创建一个服务

可以使用dbms_service 包为pdb创建另一个service。

SYS@orcl>desc dbms_service 
PROCEDURE CREATE_SERVICE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SERVICE_NAME                   VARCHAR2                IN
 NETWORK_NAME                   VARCHAR2                IN
 PARAMETER_ARRAY                TABLE OF VARCHAR2(100)  IN
PROCEDURE CREATE_SERVICE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SERVICE_NAME                   VARCHAR2                IN
 NETWORK_NAME                   VARCHAR2                IN
 GOAL                           NUMBER                  IN     DEFAULT
 DTP                            BOOLEAN                 IN     DEFAULT
 AQ_HA_NOTIFICATIONS            BOOLEAN                 IN     DEFAULT
 FAILOVER_METHOD                VARCHAR2                IN     DEFAULT
 FAILOVER_TYPE                  VARCHAR2                IN     DEFAULT
 FAILOVER_RETRIES               NUMBER                  IN     DEFAULT
 FAILOVER_DELAY                 NUMBER                  IN     DEFAULT
 CLB_GOAL                       NUMBER                  IN     DEFAULT
 EDITION                        VARCHAR2                IN     DEFAULT
PROCEDURE DELETE_SERVICE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SERVICE_NAME                   VARCHAR2                IN
PROCEDURE DISCONNECT_SESSION
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SERVICE_NAME                   VARCHAR2                IN
 DISCONNECT_OPTION              NUMBER                  IN     DEFAULT
 GUID                           VARCHAR2                IN     DEFAULT
PROCEDURE KILL_SESSION
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SERVICE_NAME                   VARCHAR2                IN
 KILL_OPTION                    NUMBER                  IN     DEFAULT
PROCEDURE MODIFY_SERVICE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SERVICE_NAME                   VARCHAR2                IN
 PARAMETER_ARRAY                TABLE OF VARCHAR2(100)  IN
PROCEDURE MODIFY_SERVICE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SERVICE_NAME                   VARCHAR2                IN
 GOAL                           NUMBER                  IN     DEFAULT
 DTP                            BOOLEAN                 IN     DEFAULT
 AQ_HA_NOTIFICATIONS            BOOLEAN                 IN     DEFAULT
 FAILOVER_METHOD                VARCHAR2                IN     DEFAULT
 FAILOVER_TYPE                  VARCHAR2                IN     DEFAULT
 FAILOVER_RETRIES               NUMBER                  IN     DEFAULT
 FAILOVER_DELAY                 NUMBER                  IN     DEFAULT
 CLB_GOAL                       NUMBER                  IN     DEFAULT
 EDITION                        VARCHAR2                IN     DEFAULT
 MODIFY_EDITION                 BOOLEAN                 IN     DEFAULT
PROCEDURE START_SERVICE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SERVICE_NAME                   VARCHAR2                IN
 INSTANCE_NAME                  VARCHAR2                IN     DEFAULT
PROCEDURE STOP_SERVICE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SERVICE_NAME                   VARCHAR2                IN
 INSTANCE_NAME                  VARCHAR2                IN     DEFAULT
 STOP_OPTION                    VARCHAR2                IN     DEFAULT
 DRAIN_TIMEOUT                  NUMBER                  IN     DEFAULT
 REPLAY                         BOOLEAN                 IN     DEFAULT
PROCEDURE TAG_SESSION
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 SERVICE_NAME                   VARCHAR2                IN
 GUID                           VARCHAR2                IN

SYS@orcl>

切换到pdb容器

SYS@orcl>alter session set container = testpdb;

Session altered.

SYS@TESTPDB>select con_id,name,open_mode from v$containers;

    CON_ID NAME                      OPEN_MODE
---------- ------------------------- --------------------
         2 TESTPDB                   READ WRITE
SYS@TESTPDB>

为当前容器创建新service

SYS@TESTPDB>exec dbms_service.CREATE_SERVICE('testpdb1','testpdb1');

PL/SQL procedure successfully completed.

SYS@orcl>select service_id,name,pdb,con_id from cdb_services order by con_id;

SERVICE_ID NAME                      PDB                           CON_ID
---------- ------------------------- ------------------------- ----------
        16 testpdb                   TESTPDB                            2
         1 testpdb1                  TESTPDB                            2

SYS@TESTPDB>

启动新的服务

千万不要忘记这一步!!!

SYS@TESTPDB>exec dbms_service.start_service('testpdb1');

PL/SQL procedure successfully completed.

SYS@TESTPDB>alter system register;

System altered.

SYS@TESTPDB>

检查监听中注册的服务

SYS@TESTPDB>!lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 12-JUL-2019 20:22:23

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db.digeekao.local)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                03-JUL-2019 20:18:31
Uptime                    9 days 0 hr. 3 min. 52 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/network/admin/listener.ora
Listener Log File         /u01/app/diag/tnslsnr/db/listener/alert/log.xml
Listening Endpoints Summary...

......

Service "testpdb" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "testpdb1" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
  
......

SYS@TESTPDB>

保存pdb设置

SYS@TESTPDB>  alter pluggable database save state;

Pluggable database altered.

SYS@TESTPDB>

上一篇
下一篇