sitemap

RSS地图

收藏本站

设为首页

Oracle研究中心

当前位置:Oracle研究中心 > 产品DBA > Oracle BBED >

学习笔记:Oracle bbed学习教程 通过bbed修改数据库表中的数据内

时间:2016-05-13 21:21   来源:Oracle研究中心   作者:惜分飞   点击:

天萃荷净

Oracle bbed修改数据库某表中的数据内容

1、创建模拟表
SQL> create table hr.b(id number,name varchar2(100)) tablespace xff;
 
Table created.
 
SQL> insert into hr.b values(1,’aaa’);
 
1 row created.
 
Commit complete.
 
2、查看Oracle数据位置
QL> ?select ? rowid,
2 ? dbms_rowid.rowid_relative_fno(rowid)rel_fno,
3 ? dbms_rowid.rowid_block_number(rowid)blockno,
4 ? dbms_rowid.rowid_row_number(rowid) rowno
5 ? from hr.b;
 
ROWID ? ? ? ? ? ? ? ? REL_FNO ? ?BLOCKNO ? ? ?ROWNO
—————— ———- ———- ———-
AAAHytAACAAAAIKAAA ? ? ? ? ?2 ? ? ? ?522 ? ? ? ? ?0
 
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
虽然bbed 可以在db open 状态来进行修改,但是建议在做任何修改操作之前先shutdown db。 这样避免checkpoint 进程重写bbed 对block 的修改。 也避免oracle 在bbed 修改完成之前读block 或者申明block 为corrupt。
 
[oracle@localhost ~]$ bbed parfile=/tmp/parfile.cnf
Password:
 
BBED: Release 2.0.0.0.0 – Limited Production on Sat Aug 20 17:10:24 2011
 
Copyright (c) 1982, 2002, Oracle Corporation. ?All rights reserved.
 
************* !!! For Oracle Internal Use only !!! ***************
 
BBED> show all
FILE# ? ? ? ? ? 2
BLOCK# ? ? ? ? ?1
OFFSET ? ? ? ? ?0
DBA ? ? ? ? ? ? 0×00800001 (8388609 2,1)
FILENAME ? ? ? ?/opt/oracle/oradata/xifenfei/xff01.dbf
BIFILE ? ? ? ? ?bifile.bbd
LISTFILE ? ? ? ?/tmp/list
BLOCKSIZE ? ? ? 8192
MODE ? ? ? ? ? ?Edit
EDIT ? ? ? ? ? ?Unrecoverable
IBASE ? ? ? ? ? Dec
OBASE ? ? ? ? ? Dec
WIDTH ? ? ? ? ? 80
COUNT ? ? ? ? ? 512
LOGFILE ? ? ? ? log.bbd
SPOOL ? ? ? ? ? No
 
3、设置dba位置
BBED> set dba 2,522
DBA ? ? ? ? ? ? 0x0080020a (8389130 2,522)
 
4、查询aaa位置
BBED> find /c aaa
File: /opt/oracle/oradata/xifenfei/xff01.dbf (2)
Block: 522 ? ? ? ? ? ? ?Offsets: 8185 to 8191 ? ? ? ? ? Dba:0x0080020a
————————————————————————
61616101 067735
 
<32 bytes per line>
 
5、查看该位置内容
BBED> dump /v offset 8185
File: /opt/oracle/oradata/xifenfei/xff01.dbf (2)
Block: 522 ? ? Offsets: 8185 to 8191 ?Dba:0x0080020a
——————————————————-
61616101 067735 ? ? ? ? ? ? ? ? ? ? l aaa..w5
 
<16 bytes per line>
 
BBED> show all
FILE# ? ? ? ? ? 2
BLOCK# ? ? ? ? ?522
OFFSET ? ? ? ? ?8185
DBA ? ? ? ? ? ? 0x0080020a (8389130 2,522)
FILENAME ? ? ? ?/opt/oracle/oradata/xifenfei/xff01.dbf
BIFILE ? ? ? ? ?bifile.bbd
LISTFILE ? ? ? ?/tmp/list
BLOCKSIZE ? ? ? 8192
MODE ? ? ? ? ? ?Edit
EDIT ? ? ? ? ? ?Unrecoverable
IBASE ? ? ? ? ? Dec
OBASE ? ? ? ? ? Dec
WIDTH ? ? ? ? ? 80
COUNT ? ? ? ? ? 512
LOGFILE ? ? ? ? log.bbd
SPOOL ? ? ? ? ? No
 
6、修改aaa为bbb
BBED> modify /c bbb
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /opt/oracle/oradata/xifenfei/xff01.dbf (2)
Block: 522 ? ? ? ? ? ? ?Offsets: 8185 to 8191 ? ? ? ? ? Dba:0x0080020a
————————————————————————
62626201 067735
 
<32 bytes per line>
 
BBED> dump /v
File: /opt/oracle/oradata/xifenfei/xff01.dbf (2)
Block: 522 ? ? Offsets: 8185 to 8191 ?Dba:0x0080020a
——————————————————-
62626201 067735 ? ? ? ? ? ? ? ? ? ? l bbb..w5
 
<16 bytes per line>
 
7、应用变更
BBED> sum
Check value for File 2, Block 522:
current = 0xa285, required = 0xa286
此时 current checksum 是0xa285,requiredchecksum 是0xa286
 
BBED> sum apply
Check value for File 2, Block 522:
current = 0xa286, required = 0xa286
加上apply参数,使checksum一致。即之前的修改生效。
 
8、开启数据测试
SQL> startup
ORACLE instance started.
 
Total System Global Area ?236000356 bytes
Fixed Size ? ? ? ? ? ? ? ? ? 451684 bytes
Variable Size ? ? ? ? ? ? 201326592 bytes
Database Buffers ? ? ? ? ? 33554432 bytes
Redo Buffers ? ? ? ? ? ? ? ? 667648 bytes
Database mounted.
Database opened.
 
SQL> col name for a20
SQL> select * from hr.b;
 
ID NAME
———- ——————–
1 bbb


-----------------温馨提示--------------------
操作有风险,动手需谨慎
Oracle研究中心
http://www.oracleplus.net
本文由大师惜分飞原创分享,转载请尽量保留本站网址


--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之学习笔记:Oracle bbed学习教程 通过bbed修改数据库表中的数据内

本文由大师惜分飞原创分享,网址:http://www.oracleplus.net/arch/174.html

Oracle研究中心

关键词:

Oracle bbed学习教程

通过bbed修改数据库表中的数据内容