Oracle 19c通过cdb的service name连接后为pdb库

 

Oracle 19c通过cdb的service name连接后为pdb库

 

现在数据库版本为19.19,库名为oemdb,有1个容器数据库pdb为empdbrepos,如下:

[oracle@oem13c ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 19 09:34:51 2024
Version 19.19.0.0.0
......
09:34:51 SYS@oemdb(248)> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 EMPDBREPOS                     READ WRITE NO

 

监听情况如下:

[oracle@oem13c ~]$ lsnrctl status
......
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oem13c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "c0a3075e31cc7844e053578145648608" has 1 instance(s).
  Instance "oemdb", status READY, has 1 handler(s) for this service...
Service "c0a3a42eaa152a1ae053578145645baf" has 1 instance(s).
  Instance "oemdb", status READY, has 1 handler(s) for this service...
Service "empdbrepos" has 1 instance(s).
  Instance "oemdb", status READY, has 1 handler(s) for this service...
Service "oemdb" has 1 instance(s).
  Instance "oemdb", status READY, has 1 handler(s) for this service...
Service "oemdbXDB" has 1 instance(s).
  Instance "oemdb", status READY, has 1 handler(s) for this service...
The command completed successfully

 

现在通过cdb的service name来连接,但是却是连接到了empdbrepos的pdb上。

[oracle@oem13c ~]$ sqlplus sys/password@oem13c/oemdb as sysdba
......
09:44:15 SYS@oem13c/oemdb(245)> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 EMPDBREPOS                     READ WRITE NO

 

经过一番捣鼓后发现,如果在数据库启动的时候设置了环境变量ORACLE_PDB_SID=empdbrepos来启动,则会出现此种情况。防。

现在取消环境变量ORACLE_PDB_SID,重启库后再次连接,(只摘取部分信息)

[oracle@oem13c ~]$ echo $ORACLE_PDB_SID
empdbrepos
[oracle@oem13c ~]$ unset ORACLE_PDB_SID
[oracle@oem13c ~]$ echo $ORACLE_PDB_SID

[oracle@oem13c ~]$ sqlplus / as sysdba
09:47:42 SYS@oemdb(252)> shutdown immediate;
09:48:21 SYS@oemdb(252)> startup;
09:49:10 SYS@oemdb(252)> exit
[oracle@oem13c ~]$ sqlplus sys/password@oem13c/oemdb as sysdba
09:49:23 SYS@oem13c/oemdb(22)> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 EMPDBREPOS                     READ WRITE NO

https://www.cnblogs.com/PiscesCanon/p/18419888

posted @ 2024-09-19 09:47  PiscesCanon  阅读(37)  评论(0编辑  收藏  举报