Tuesday, October 11, 2022

How to solve "Service name or network name of ... in the PDB is invalid or conflicts with an existing service name or network name in the CDB."

From the alert log during startup of the container database called "cdb":
pdb1(3):***************************************************************
pdb1(3):WARNING: Pluggable Database saes with pdb id - 3 is
pdb1(3):         altered with errors or warnings. Please look into
pdb1(3):         PDB_PLUG_IN_VIOLATIONS view for more details.
pdb1(3):***************************************************************
When I check the PDB_PLUG_IN_VIOLATIONS I see this:
select name,cause,type,message,status,action 
from pdb_plug_in_violations;

NAME CAUSE TYPE MESSAGE STATUS ACTION
sales Service Name Conflict WARNING Service name or network name of service salesXDB in the PDB is invalid or conflicts with an existing service name or network name in the CDB. PENDING Drop the service and recreate it with an appropriate name.

Check the CDB_SERVICES view:
SELECT name,network_name,creation_date,pdb,enabled
FROM   cdb_services
where con_id=3
and name='salesXDB'
ORDER BY 1;

NAME NETWORK_NAME CREATION_DATE PDB ENABLED
salesXDB salesXDB 03/03/2022 11:28:56 sales NO

There is indeed a service called salesXDB, which is a reminisce from an earlier point in time where "sales" was a non-CDB database.
It has now been replaced with the container database XDB service, in my case called "cdbXDB".

How to address the warnings

Log onto the sales pluggable database:
sqlplus / as sysdba

alter session set container=sales;

Session altered.
Remove the service from the PDB:
exec dbms_service.delete_service('salesXDB');

PL/SQL procedure successfully completed.
If you check the CDB_SERVICES again, it will now be gone.

Restart the pluggable database:
sqlplus / as sysdba

alter session set container=sales;

Session altered.

shutdown immediate
startup

If you query the PDB_PLUG_IN_VIOLATIONS again, you will see that the value for status in the error is now set to RESOLVED:
time NAME CAUSE TYPE MESSAGE STATUS ACTION
11.10.2022 12:49 sales Service Name Conflict WARNING Service name or network name of service salesXDB in the PDB is invalid or conflicts with an existing service name or network name in the CDB. RESOLVED Drop the service and recreate it with an appropriate name.


Source: PDB Name Conflicts With Existing Service Name In The CDB Or The PDB (Doc ID 2247291.1) from Oracle Support

No comments:

Post a Comment