当有两个实例时,如何连接到可插入数据库



我有两个容器数据库。

  1. SID my10,服务名称为M10CDB
  2. SID my10c,服务名称为MY10CL(它是第一个的克隆(

这两个容器都有两个可插入数据库,my10pdb和pdbsed。

如果我想直接连接到这两个插件,即my10pdb,我该如何区分它们,它们属于不同的容器?

lsnrctl status
LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 17-JUL-2020 14:45:26
Copyright (c) 1991, 2019, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MYUPG05.myworld.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 19.0.0.0.0 - Production
Start Date                16-JUN-2020 02:22:27
Uptime                    31 days 12 hr. 22 min. 59 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   C:apporacleproduct19.3.0dbhome_1networkadminlistener.ora
Listener Log File         C:apporaclediagtnslsnrMYUPG05listeneralertlog.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=MYUPG05.myworld.com)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC1521ipc)))
Services Summary...
Service "3541dad180144e9fb63afda77b213f89" has 2 instance(s).
Instance "my10", status READY, has 1 handler(s) for this service...
Instance "my10c", status READY, has 1 handler(s) for this service...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "MY10CDB" has 1 instance(s).
Instance "my10", status READY, has 1 handler(s) for this service...
Service "MY10CL" has 1 instance(s).
Instance "my10c", status READY, has 1 handler(s) for this service...
Service "MY10XDB" has 2 instance(s).
Instance "my10", status READY, has 1 handler(s) for this service...
Instance "my10c", status READY, has 1 handler(s) for this service...
Service "my10pdb" has 2 instance(s).
Instance "my10", status READY, has 1 handler(s) for this service...
Instance "my10c", status READY, has 1 handler(s) for this service...
The command completed successfully

它们必须具有唯一的服务名称。如果它们共享相同的服务名称,则侦听器将像对待RAC数据库一样对待它们,并将您随机连接到其中一个。

看看这些文章,其中详细描述了您的问题:

  • https://oracle-base.com/articles/12c/multitenant-rename-services-during-pdb-creation-12cr2

  • https://oracle-base.com/articles/10g/dbms_service#modify-服务

使用DBMS_SERVICE在新PDB中创建一个新服务并删除旧服务。

CONN / AS SYSDBA
ALTER SESSION SET CONTAINER=pdb1;
BEGIN
DBMS_SERVICE.create_service(
service_name => 'my_new_service',
network_name => 'my_new_service'
);
END;
/
BEGIN
DBMS_SERVICE.start_service(
service_name => 'my_new_service'
);
END;
/
BEGIN
DBMS_SERVICE.stop_service(
service_name => 'my_old_service'
);
END;
/
BEGIN
DBMS_SERVICE.delete_service(
service_name => 'my_old_service'
);
END;
/

最新更新