1. Create the test table SQLgt; createtabledump (idnumber, namevarchar (20); Tablecreated. SQLgt; insertintodumpvalues (1000,
1. create a test table SQLgt; create Table dump (id number, name varchar (20); table created. SQLgt; insert into dump values (1000,
1. Create a test table
SQL> create table dump (id number, name varchar (20 ));
Table created.
SQL> insert into dump values (1000, 'tomsh ');
1 row created.
SQL> insert into dump values (1001, 'dumpceshi ');
1 row created.
SQL> commit;
Commit complete.
2. query the data file and block number of the table.
Select file_id, block_id from dba_extents
Where segment_name = 'dump ';
SQL> select file_id, block_id from dba_extents
Where segment_name = 'dump'; 2
FILE_ID BLOCK_ID
--------------------
1 85992
SQL> col name format a50;
SQL> select file #, name from v $ datafile;
FILE # NAME
------------------------------------------------------------
1/opt/Oracle/db/oradata/oradb/system01.dbf
2/opt/oracle/db/oradata/oradb/sysaux01.dbf
3/opt/oracle/db/oradata/oradb/undotbs01.dbf
4/opt/oracle/db/oradata/oradb/users01.dbf
5/opt/oracle/db/oradata/oradb/tt. dbf
6/opt/oracle/db/oradata/tt02.dbf
7/opt/oracle/db/oradata/oradb/db01.dbf
8/opt/oracle/db/oradata/qiyi. dbf
8 rows selected.
3. query the corresponding rowid In the table
SQL> select rowid, id, name from dump;
ROWID ID NAME
------------------------------------------------------------------------------
AAATeFAABAAAU/pAAA 1000 tomsh
AAATeFAABAAAU/paab1001 dumpceshi
SQL>
4. Use the dbms_rowid package to calculate the data block corresponding to the record
Select dbms_rowid.rowid_block_number ('aaatefaabaaau/paa') from dual;
SQL> select dbms_rowid.rowid_block_number ('aaatefaabaaau/paa') from dual;
DBMS_ROWID.ROWID_BLOCK_NUMBER ('aaatefaabaaau/paa ')
---------------------------------------------------
85993
Select dbms_rowid.ROWID_OBJECT ('aaatefaabaaau/paa') from dual;
SQL> select dbms_rowid.ROWID_RELATIVE_FNO ('aaatefaabaaau/paa') from dual;
DBMS_ROWID.ROWID_RELATIVE_FNO ('aaatefaabaaau/paa ')
---------------------------------------------------
1
5. dump data file number: 85,993rd data blocks in 1
SQL> alter system dump datafile 1 blocks 85993;
System altered.
6. The content of the tracking file is as follows:
* ** Trace file recreated after being removed ***
Start dump data blocks tsn: 0 file #: 1 minblk 85993 maxblk 85993
Block dump from cache:
Dump of buffer cache at level 4 for tsn = 0, rdba = 4280297
BH (0x0000f1e48) file #: 1 rdba: 0x00414fe9 (1/85993) class: 1 ba: 0x21268000
Set: 3 pool 3 bsz: 8192 bsi: 0 sflg: 1 pwc: 0, 25
Dbwrid: 0 obj: 79749 objn: 79749 tsn: 0 afn: 1 hint: f
Hash: [0x2d2d8e60, 0x2d2d8e60] lru: [0x223f0000c, 0x217f209c]
Lru-flags: hot_buffer
Ckptq: [NULL] fileq: [NULL] objq: [0x0000f67ec, 0x2a9ff328]
St: XCURRENT md: NULL tch: 0
Flags: block_written_once redo_since_read
LRBA: [0x0. 0.0] LSCN: [0x0.0] HSCN: [0xffff. ffffffff] HSUB: [1]
Cr pin refcnt: 0 sh pin refcnt: 0
Block dump from disk:
Buffer tsn: 0 rdba: 0x00414fe9 (1/85993)
Scn: 0x0000. 002b4c95 seq: 0x01 flg: 0x06 tail: 0x4c950601
Frmt: 0x02 chkval: 0xe3f7 type: 0x06 = trans data
Hex dump of block: st = 0, typ_found = 1
Dump of memory from 0xb70000a00 to 0xB7118A00
B70000a00 0000A206 00414FE9 002B4C95 06010000 [...... OA ...... L + ......]
B70000a10 running e3f7 000E0001 00013785 002B4C56 [...... 7 ...... VL +]
B70000a20 1FE80000 00031F02 00000000 00160001 [......]
B70000a30 00000892 00C00B43 000E0287 00002002 [...... C ......]
,