I don’t know but best to have one.
With multi-tenant database, I would use OMF to keep it simple and to avoid having to remember about FILE_NAME_CONVERT.
When creating PDB, there may be specification for ADMIN USER as show below:
CREATE PLUGGABLE DATABASE april ADMIN USER april_admin IDENTIFIED BY oracle;
Here are some examples I have come across (Names and Blogs are not provided to protect the innocents):
create pluggable database PDB1 admin user pdb1_admin CREATE PLUGGABLE DATABASE TESTPDB ADMIN USER TESTADMIN CREATE PLUGGABLE DATABASE devpdb2 ADMIN USER pdb2dba CREATE PLUGGABLE DATABASE mypdb ADMIN USER pdbadmin CREATE PLUGGABLE DATABASE pdb3 ADMIN USER pdb_admadmin user App_Admin
It’s no big deal, right? It’s always possible to dig for it.
Just playing around.
CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_tbs.sql CON_ID NAME TABLESPACE_NAME FILE_NAME ONLINE_STATUS ------- -------- -------------------- ------------------------------------------------------------------------------------------ ------------- 1 CDB$ROOT SYSAUX /oradata/TMNT_A/datafile/o1_mf_sysaux_crx20pot_.dbf ONLINE 1 CDB$ROOT UNDOTBS1 /oradata/TMNT_A/datafile/o1_mf_undotbs1_crx20ssy_.dbf ONLINE 1 CDB$ROOT USERS /oradata/TMNT_A/datafile/o1_mf_users_crx20tq8_.dbf ONLINE 1 CDB$ROOT SYSTEM /oradata/TMNT_A/datafile/o1_mf_system_crx20gsp_.dbf SYSTEM 2 PDB$SEED 3 APRIL SYSAUX /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_sysaux_crx522d1_.dbf ONLINE 3 APRIL USERS /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_users_crx522d2_.dbf ONLINE 3 APRIL SYSTEM /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_system_crx522cr_.dbf SYSTEM 8 rows selected. CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_role_privs.sql GRANTEE GRANTED_ROLE -------------------- -------------------- C##GGS_ADMIN CDB_DBA C##GGS_ADMIN CDB_DBA DBSNMP CDB_DBA DBSNMP CDB_DBA SYS CDB_DBA SYS CDB_DBA C##GGS_ADMIN DBA C##GGS_ADMIN DBA MDINH DBA SYS DBA SYS DBA SYSTEM DBA SYSTEM DBA APRIL_ADMIN PDB_DBA C##GGS_ADMIN PDB_DBA C##GGS_ADMIN PDB_DBA SYS PDB_DBA SYS PDB_DBA DBA XDBADMIN DBA XDBADMIN SYS XDBADMIN SYS XDBADMIN 22 rows selected. CDB$ROOT:(SYS@tmnt):PRIMARY> CREATE PLUGGABLE DATABASE donnie FROM april; Pluggable database created. CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_tbs.sql CON_ID NAME TABLESPACE_NAME FILE_NAME ONLINE_STATUS ------- -------- -------------------- ------------------------------------------------------------------------------------------ ------------- 1 CDB$ROOT SYSAUX /oradata/TMNT_A/datafile/o1_mf_sysaux_crx20pot_.dbf ONLINE 1 CDB$ROOT UNDOTBS1 /oradata/TMNT_A/datafile/o1_mf_undotbs1_crx20ssy_.dbf ONLINE 1 CDB$ROOT USERS /oradata/TMNT_A/datafile/o1_mf_users_crx20tq8_.dbf ONLINE 1 CDB$ROOT SYSTEM /oradata/TMNT_A/datafile/o1_mf_system_crx20gsp_.dbf SYSTEM 2 PDB$SEED 3 APRIL SYSAUX /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_sysaux_crx522d1_.dbf ONLINE 3 APRIL USERS /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_users_crx522d2_.dbf ONLINE 3 APRIL SYSTEM /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_system_crx522cr_.dbf SYSTEM 4 DONNIE 9 rows selected. Where are the tablespaces and datafiles for DONNIE? CDB$ROOT:(SYS@tmnt):PRIMARY> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 APRIL READ WRITE NO 4 DONNIE MOUNTED CDB$ROOT:(SYS@tmnt):PRIMARY> alter pluggable database donnie open; Pluggable database altered. CDB$ROOT:(SYS@tmnt):PRIMARY> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 APRIL READ WRITE NO 4 DONNIE READ WRITE NO CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_tbs.sql CON_ID NAME TABLESPACE_NAME FILE_NAME ONLINE_STATUS ------- -------- -------------------- ------------------------------------------------------------------------------------------ ------------- 1 CDB$ROOT SYSAUX /oradata/TMNT_A/datafile/o1_mf_sysaux_crx20pot_.dbf ONLINE 1 CDB$ROOT USERS /oradata/TMNT_A/datafile/o1_mf_users_crx20tq8_.dbf ONLINE 1 CDB$ROOT UNDOTBS1 /oradata/TMNT_A/datafile/o1_mf_undotbs1_crx20ssy_.dbf ONLINE 1 CDB$ROOT SYSTEM /oradata/TMNT_A/datafile/o1_mf_system_crx20gsp_.dbf SYSTEM 2 PDB$SEED 3 APRIL SYSAUX /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_sysaux_crx522d1_.dbf ONLINE 3 APRIL USERS /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_users_crx522d2_.dbf ONLINE 3 APRIL SYSTEM /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_system_crx522cr_.dbf SYSTEM 4 DONNIE SYSAUX /oradata/TMNT_A/38DDD14641845D0EE0530100007F0289/datafile/o1_mf_sysaux_csso885x_.dbf ONLINE 4 DONNIE USERS /oradata/TMNT_A/38DDD14641845D0EE0530100007F0289/datafile/o1_mf_users_csso885y_.dbf ONLINE 4 DONNIE SYSTEM /oradata/TMNT_A/38DDD14641845D0EE0530100007F0289/datafile/o1_mf_system_csso885k_.dbf SYSTEM 11 rows selected. PDB DONNIE does not have ADMIN USER. CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_role_privs.sql GRANTEE GRANTED_ROLE -------------------- -------------------- C##GGS_ADMIN CDB_DBA C##GGS_ADMIN CDB_DBA C##GGS_ADMIN CDB_DBA DBSNMP CDB_DBA DBSNMP CDB_DBA DBSNMP CDB_DBA SYS CDB_DBA SYS CDB_DBA SYS CDB_DBA C##GGS_ADMIN DBA C##GGS_ADMIN DBA C##GGS_ADMIN DBA MDINH DBA MDINH DBA SYS DBA SYS DBA SYS DBA SYSTEM DBA SYSTEM DBA SYSTEM DBA APRIL_ADMIN PDB_DBA APRIL_ADMIN PDB_DBA C##GGS_ADMIN PDB_DBA C##GGS_ADMIN PDB_DBA C##GGS_ADMIN PDB_DBA SYS PDB_DBA SYS PDB_DBA SYS PDB_DBA DBA XDBADMIN DBA XDBADMIN DBA XDBADMIN SYS XDBADMIN SYS XDBADMIN SYS XDBADMIN 34 rows selected. CDB$ROOT:(SYS@tmnt):PRIMARY> UPDATED: Looks like APRIL_ADMIN is for 2 different PDB's. Now that's confusing. CDB$ROOT:(SYS@tmnt):PRIMARY> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 APRIL READ WRITE NO 4 DONNIE READ WRITE NO CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_role_privs.sql GRANTEE GRANTED_ROLE CON_ID -------------------- -------------------- ------- C##GGS_ADMIN CDB_DBA 1 C##GGS_ADMIN CDB_DBA 3 C##GGS_ADMIN CDB_DBA 4 DBSNMP CDB_DBA 1 DBSNMP CDB_DBA 3 DBSNMP CDB_DBA 4 SYS CDB_DBA 1 SYS CDB_DBA 3 SYS CDB_DBA 4 C##GGS_ADMIN DBA 1 C##GGS_ADMIN DBA 3 C##GGS_ADMIN DBA 4 MDINH DBA 3 MDINH DBA 4 SYS DBA 1 SYS DBA 3 SYS DBA 4 SYSTEM DBA 1 SYSTEM DBA 3 SYSTEM DBA 4 APRIL_ADMIN PDB_DBA 3 APRIL_ADMIN PDB_DBA 4 C##GGS_ADMIN PDB_DBA 1 C##GGS_ADMIN PDB_DBA 3 C##GGS_ADMIN PDB_DBA 4 SYS PDB_DBA 1 SYS PDB_DBA 3 SYS PDB_DBA 4 DBA XDBADMIN 1 DBA XDBADMIN 3 DBA XDBADMIN 4 SYS XDBADMIN 1 SYS XDBADMIN 3 SYS XDBADMIN 4 34 rows selected. CDB$ROOT:(SYS@tmnt):PRIMARY>
