SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL> select name,open_mode,con_id from v$pdbs;
NAME OPEN_MODE CON_ID
-------------------- ---------- ----------
PDB$SEED READ ONLY 2
ORCLPDB READ WRITE 3
SQL> col file_name for a50
SQL> select file_name,file_id,tablespace_name,con_id
from cdb_data_files;
2
FILE_NAME FILE_ID TABLESPACE_NAME CON_ID
-------------------------------------------------- ---------- --------------- ----------
/u01/app/oracle/oradata/ORCL/users01.dbf 7 USERS 1
/u01/app/oracle/oradata/ORCL/undotbs01.dbf 4 UNDOTBS1 1
/u01/app/oracle/oradata/ORCL/system01.dbf 1 SYSTEM 1
/u01/app/oracle/oradata/ORCL/sysaux01.dbf 3 SYSAUX 1
/u01/app/oracle/oradata/ORCL/orclpdb/system01.dbf 9 SYSTEM 3
/u01/app/oracle/oradata/ORCL/orclpdb/sysaux01.dbf 10 SYSAUX 3
/u01/app/oracle/oradata/ORCL/orclpdb/undotbs01.dbf 11 UNDOTBS1 3
/u01/app/oracle/oradata/ORCL/orclpdb/users01.dbf 12 USERS 3
8 rows selected.
SQL>
디비 사용자는 root 이지만, cdb_ 에서 조회할때는 자기 컨테이너 및 하위 컨테이너가 포함된 모든 데이터 파일이 보이지만, dba_ 에서 조회할때는 자신의 컨테이너에 있는 데이터 파일만 조회가 된다.
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL>
SQL> select file_name,file_id,tablespace_name
from dba_data_files;
2
FILE_NAME FILE_ID TABLESPACE_NAME
-------------------------------------------------- ---------- ---------------
/u01/app/oracle/oradata/ORCL/users01.dbf 7 USERS
/u01/app/oracle/oradata/ORCL/undotbs01.dbf 4 UNDOTBS1
/u01/app/oracle/oradata/ORCL/system01.dbf 1 SYSTEM
/u01/app/oracle/oradata/ORCL/sysaux01.dbf 3 SYSAUX
세션 명령어로 컨테이너 위치를 변경하면 dba_ 조회되는 데이터 파일 정보도 변경되는 것을 볼 수 있다.
SQL> alter session set container=orclpdb;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
ORCLPDB
SQL>
SQL> select file_name,file_id,tablespace_name
from dba_data_files; 2
FILE_NAME FILE_ID TABLESPACE_NAME
-------------------------------------------------- ---------- ---------------
/u01/app/oracle/oradata/ORCL/orclpdb/system01.dbf 9 SYSTEM
/u01/app/oracle/oradata/ORCL/orclpdb/sysaux01.dbf 10 SYSAUX
/u01/app/oracle/oradata/ORCL/orclpdb/undotbs01.dbf 11 UNDOTBS1
/u01/app/oracle/oradata/ORCL/orclpdb/users01.dbf 12 USERS
하지만 cdb_ 테이블로 조회를 하여도 로그인 사용자 자신 및 하위의 컨테이너만 조회가 가능해서 상위 컨테이너인 cdb$root 사용자의 데이터 파일은 조회가 되지 않는다.
SQL> select file_name,file_id,tablespace_name,con_id
from cdb_data_files order by con_id, file_id;
FILE_NAME FILE_ID TABLESPACE_NAME CON_ID
-------------------------------------------------- ---------- --------------- ----------
/u01/app/oracle/oradata/ORCL/orclpdb/system01.dbf 9 SYSTEM 3
/u01/app/oracle/oradata/ORCL/orclpdb/sysaux01.dbf 10 SYSAUX 3
/u01/app/oracle/oradata/ORCL/orclpdb/undotbs01.dbf 11 UNDOTBS1 3
/u01/app/oracle/oradata/ORCL/orclpdb/users01.dbf 12 USERS 3
SQL>
'Database > Oracle' 카테고리의 다른 글
25 - [Oracle 19C] DB name and DB version and instance name. (0) | 2023.11.17 |
---|---|
24 - [Oracle 19C] To query temps files (0) | 2023.11.17 |
22 - [Oracle 19C] to change container (cdb_, dba_) (0) | 2023.11.17 |
21 - [Oracle 19C] Dynamic Performance Views(v$ views) (0) | 2023.11.17 |
20 - [Oracle 19C] Common users VS local users (0) | 2023.11.17 |