Re: Block Identifiers in Multitenant Databases

  • From: Mladen Gogala <gogala.mladen@xxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Tue, 5 Oct 2021 19:49:38 -0400


On 10/5/21 15:29, Seth Miller wrote:
I am attempting to isolate the identification attributes of an individual block. Prior to multitenant, this was easy to do using the RDBA to get the file and block. However, in a PDB, the RDBA does not tell me how the root container identifies the block either by the file number at the root level or by the container ID.
I've done a lot of digging and debugging and can't figure out how the root container identifies a block or where it might be in the block header. Any help would be appreciated.
Seth

Seth, in the good old times we identified the segment containing the block by using DBA_EXTENTS. In the multi-tenant environment, you can use CDB_EXTENTS:

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.12.0.0.0

SQL> desc cdb_extents
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER						    VARCHAR2(128)
 SEGMENT_NAME					    VARCHAR2(128)
 PARTITION_NAME 				    VARCHAR2(128)
 SEGMENT_TYPE					    VARCHAR2(18)
 TABLESPACE_NAME				    VARCHAR2(30)
 EXTENT_ID					    NUMBER
 FILE_ID					    NUMBER
 BLOCK_ID					    NUMBER
 BYTES						    NUMBER
 BLOCKS 					    NUMBER
 RELATIVE_FNO					    NUMBER
 CON_ID 					    NUMBER

SQL>

If I understand you correctly, you want to identify the segment containing the block from the root container? If that is not what you want, please ignore my reply.




-- 
Mladen Gogala
Database Consultant
Tel: (347) 321-1217
https://dbwhisperer.wordpress.com
-- //www.freelists.org/webpage/oracle-l

Other related posts: