创建测试数据
17:15:33 SYS@orcl>alter user scott default tablespace xtts;
User altered.
17:16:12 SYS@orcl>conn scott/tiger@orclpdb;
Connected.
17:16:22 SCOTT@orclpdb>create table jwt(id number,name varchar2(10));
Table created.
17:20:04 SCOTT@orclpdb>insert into jwt values(1,'ss');
1 row created.
Elapsed: 00:00:01.03
17:20:18 SCOTT@orclpdb>insert into jwt values(2,'mm');
1 row created.
Elapsed: 00:00:00.00
17:20:29 SCOTT@orclpdb>insert into jwt values(3,'zz');
1 row created.
17:20:36 SCOTT@orclpdb>commit;
Commit complete.
17:20:39 SCOTT@orclpdb>insert into jwt values(4,'aa');
1 row created.
Elapsed: 00:00:00.00
17:22:26 SCOTT@orclpdb>insert into jwt values(5,'bb');
1 row created.
Elapsed: 00:00:00.00
17:22:36 SCOTT@orclpdb>insert into jwt values(6,'dd');
1 row created.
Elapsed: 00:00:00.00
17:22:43 SCOTT@orclpdb>commit;
Commit complete.
注意:使用BBED工具对块进行操作时,需关库或者设置对应的表空间为只读再操做数据块,作防止BBED修改的块被覆盖,造成不必要的错误或者失败
由于当前处于12C测试环境,所以只需要将对应数据文件所在的PDB数据库关闭(mount状态即可)或者设置表空间只读即可,而其他版本的数据库需关库或者设置表空间只读操作
查看表数据
17:47:08 SCOTT@orclpdb>select * from jwt;
ID NAME
---------- ----------
1 ss
2 mm
3 zz
4 aa
5 bb
6 dd
6 rows selected.
Elapsed: 00:00:00.12
查看表所在数据文件以及块号、行号
17:50:13 SCOTT@orclpdb>select dbms_rowid.rowid_relative_fno(rowid) rfn,dbms_rowid.rowid_block_number(rowid) bln,dbms_rowid.rowid_row_number(rowid) rn from JWT;
RFN BLN RN
---------- ---------- ----------
28 134 0
28 134 1
28 134 2
28 134 3
28 134 4
28 134 5
6 rows selected.
查看数据文件号为28的数据文件
17:51:17 SCOTT@orclpdb>select file#,name from v$datafile where file#=28;
FILE#
----------
NAME
--------------------------------------------------------------------------------
28
/data/orcl/orclpdb/XTTS.dbf
Elapsed: 00:00:00.15
BBED工具修改数据测试
BBED> set filename '/data/orcl/orclpdb/XTTS.dbf'
FILENAME /data/orcl/orclpdb/XTTS.dbf
BBED> set offset 0
OFFSET 0
BBED> set block 134
BLOCK# 134
查找需修改的字符 mm
BBED> find /c mm TOP
File: /data/orcl/orclpdb/XTTS.dbf (0)
Block: 134 Offsets: 8177 to 8191 Dba:0x00000000
------------------------------------------------------------------------
6d6d2c01 0202c102 02737304 066110
<32 bytes per line>
dump转储相关信息
BBED> dump /v offset 8177 count 128
File: /data/orcl/orclpdb/XTTS.dbf (0)
Block: 134 Offsets: 8177 to 8191 Dba:0x00000000
-------------------------------------------------------
6d6d2c01 0202c102 02737304 066110 l mm,......ss..a.
<16 bytes per line>
设置表空间只读
20:00:38 SYS@orcl>alter tablespace xtts read only;
Tablespace altered.
更改数据块
BBED> modify /c nn offset 8177
BBED-00215: editing not allowed in BROWSE mode
设置模式为编辑非浏览
BBED> set mode edit
MODE Edit
BBED> modify /c nn offset 8177 (注意长度,不能超过建表时候设置的长度,否则会出错)
File: /data/orcl/orclpdb/XTTS.dbf (0)
Block: 134 Offsets: 8177 to 8191 Dba:0x00000000
------------------------------------------------------------------------
6e6e2c01 0202c102 02737304 066110
<32 bytes per line>
转储显示修改效果
BBED> dump /v offset 8177 count 128
File: /data/orcl/orclpdb/XTTS.dbf (0)
Block: 134 Offsets: 8177 to 8191 Dba:0x00000000
-------------------------------------------------------
6e6e2c01 0202c102 02737304 066110 l nn,......ss..a.
<16 bytes per line>
检查数据块一致性,并应用修改
BBED> sum
Check value for File 0, Block 134:
current = 0xe4cc, required = 0xe7cf
BBED> sum apply
Check value for File 0, Block 134:
current = 0xe7cf, required = 0xe7cf
验证SQL表数据效果
20:06:18 SCOTT@orclpdb>select * from jwt;
ID NAME
---------- ----------
1 ss
2 nn
3 zz
4 aa
5 bb
6 dd
6 rows selected.
修改成功,重设对应表空间为Read Write
20:07:43 SYS@orcl>alter tablespace xtts read write;
Tablespace altered.
Elapsed: 00:00:00.63
版权声明:本文为博主原创文章,未经博主允许不得转载。



