ITPub博客

首页 > 数据库 > Oracle > bbed修改表记录内容系列三

bbed修改表记录内容系列三

原创 Oracle 作者:wisdomone1 时间:2015-10-26 00:25:10 0 删除 编辑

背景

  在上篇文章:http://blog.itpub.net/9240380/viewspace-1816241/,发现如果变更记录的列宽度变宽,会导致ora-01578错误,导致数据坏块。


结论

1,如果用bbed修改列宽度加大,会导致坏块出现
2,不知为何加大列宽度,会导致坏块出现,唉,还是对于数据块结构理解不深
3,在bbed中,可以用revert回退数据块的操作


测试



SQL> select * from t_bbed_modify_row;


A
--------------------
newly


SQL> select DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID),DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID),dbms_rowid.rowid_row_number(rowid) from t_bbed_modify_row;


DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) DBMS_ROWID.ROWID_ROW_NUMBER(ROWID)
------------------------------------ ------------------------------------ ----------------------------------
                                   4                                99003                                  0


BBED> set file 4
        FILE#           4


BBED> set block 99003
        BLOCK#          99003




BBED> find /c newly
 File: /oracle/oradata/guowang/users01.dbf (4)
 Block: 99003            Offsets: 8183 to 8186           Dba:0x010182bb
------------------------------------------------------------------------
 6e65776c 


 <32 bytes per line>


可见不加count选项,默认仅显示列的前4位内容
 BBED> dump /v dba 4,99003
 File: /oracle/oradata/guowang/users01.dbf (4)
 Block: 99003   Offsets: 8183 to 8186  Dba:0x010182bb
-------------------------------------------------------
 6e65776c                            l newl


 <16 bytes per line>




 BBED> dump /v dba 4,99003 count 10
 File: /oracle/oradata/guowang/users01.dbf (4)
 Block: 99003   Offsets: 8183 to 8191  Dba:0x010182bb
-------------------------------------------------------
 6e65776c 79020665 fd                l newly..e.


 <16 bytes per line>


加上count则可以显示列的全部内容
 BBED> dump /v dba 4,99003 count 5
 File: /oracle/oradata/guowang/users01.dbf (4)
 Block: 99003   Offsets: 8183 to 8187  Dba:0x010182bb
-------------------------------------------------------
 6e65776c 79                         l newly


 <16 bytes per line>


修改列内容由newly奕成newlya
BBED> modify /c 'newlya' dba 4,99003 offset 8183
 File: /oracle/oradata/guowang/users01.dbf (4)
 Block: 99003            Offsets: 8183 to 8187           Dba:0x010182bb
------------------------------------------------------------------------
 6e65776c 79 


 <32 bytes per line>




BBED> dump /v dba 4,99003 count 6
 File: /oracle/oradata/guowang/users01.dbf (4)
 Block: 99003   Offsets: 8183 to 8188  Dba:0x010182bb
-------------------------------------------------------
 6e65776c 7961                       l newlya


 <16 bytes per line>


一验证就出现坏块了
 BBED> verify
Message 500 not found; No message file for product=RDBMS, facility=BBED
Message 501 not found; No message file for product=RDBMS, facility=BBED


Message 520 not found; No message file for product=RDBMS, facility=BBED
Corrupt block relative dba: 0x010182bb (file 0, block 99003)
Fractured block found during verification
Data in bad block:
 type: 6 format: 2 rdba: 0x010182bb
 last change scn: 0x0000.023bfd65 seq: 0x2 flg: 0x04
 spare1: 0x0 spare2: 0x0 spare3: 0x0
 consistency value in tail: 0xfd650661
 check value in block header: 0x4d80
 computed block checksum: 0x63


回退对于数据块的修改
BBED> revert
All changes made in this session will be rolled back. Proceed? (Y/N) y
Reverted file '/oracle/oradata/guowang/users01.dbf', block 99004
Reverted file '/oracle/oradata/guowang/users01.dbf', block 99003
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y


确认数据没有损坏
SQL> select * from t_bbed_modify_row;


A
--------------------
newly


SQL> alter system flush buffer_cache;


System altered.


SQL> select * from t_bbed_modify_row;


A
--------------------
newly

个人简介:


8年oracle从业经验,具备丰富的oracle技能,目前在国内北京某专业oracle服务公司从事高级技术顾问。
   
   服务过的客户:
          中国电信
          中国移动
          中国联通
          中国电通
          国家电网
          四川达州商业银行
          湖南老百姓大药房
          山西省公安厅
          中国邮政
          北京302医院     
          河北廊坊新奥集团公司
  
 项目经验:
           中国电信3G项目AAA系统数据库部署及优化
           中国联通CRM数据库性能优化
           中国移动10086电商平台数据库部署及优化
           湖南老百姓大药房ERR数据库sql优化项目
           四川达州商业银行TCBS核心业务系统数据库模型设计和RAC部署及优化
           四川达州商业银行TCBS核心业务系统后端批处理存储过程功能模块编写及优化
           北京高铁信号监控系统RAC数据库部署及优化
           河南宇通客车数据库性能优化
           中国电信电商平台核心采购模块表模型设计及优化
           中国邮政储蓄系统数据库性能优化及sql优化
           北京302医院数据库迁移实施
           河北廊坊新奥data guard部署及优化
           山西公安厅身份证审计数据库系统故障评估
         
 联系方式:
          手机:18201115468
          qq   :   305076427
          qq微博: wisdomone1
          新浪微博:wisdomone9
          qq群:275813900    
          itpub博客名称:wisdomone1    http://blog.itpub.net/9240380/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-1816245/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb qq: 305076427 微博: wisdomone9

注册时间:2008-04-04

  • 博文量
    2149
  • 访问量
    11890420