• BBED ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []


    BBED模拟并修复

    删除:$ORACLE_HOME/rdbms/admin/prvtsupp.plb

    SQL> alter database open;
    alter database open
    *
    ERROR at line 1:
    ORA-01092: ORACLE instance terminated. Disconnection forced
    ORA-00704: bootstrap process failure
    ORA-00704: bootstrap process failure
    ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []
    Process ID: 29344
    Session ID: 3319 Serial number: 3

    利用:第三方工具GDUL,导出mount下库的数据,导入到新的库。以解决这个灾难

    http://www.eygle.com/archives/2018/07/recover_ora-600_16703.html

    https://www.cnblogs.com/lhrbest/p/7576416.html#3795408

    部分处理过程:

    oradebug:生成10046事件,观察报错信息:
    alter session set tracefile_identifier='elon';
    alter session set events '10046 trace name context forever,level 12';
    alter session set events '10046 trace name context off';

    查文件块号:
    select
    dbms_rowid.ROWID_RELATIVE_FNO(rowid) fno,
    dbms_rowid.ROWID_BLOCK_NUMBER(rowid) bno,
    dbms_rowid.ROWID_ROW_NUMBER(rowid) rowno from sys.tab$ ;

    select max(dbms_rowid.ROWID_BLOCK_NUMBER(rowid)) bno from sys.tab$ ;
    select min(dbms_rowid.ROWID_BLOCK_NUMBER(rowid)) bno from sys.tab$ ;

    select distinct file_no, blk_no
    from
    (
    select dbms_rowid.rowid_relative_fno(rowid) file_no, dbms_rowid.rowid_block_number(rowid) blk_no from sys.tab$
    ) order by file_no, blk_no;


    生成copy 语句:
    select 'copy file 100 block ' || blk_no || ' to file 1 block ' || blk_no || ';'
    from
    (
    select distinct dbms_rowid.rowid_relative_fno(rowid) file_no, dbms_rowid.rowid_block_number(rowid) blk_no
    from sys.tab$
    order by file_no, blk_no
    );

    select distinct file_no, blk_no
    from
    (
    select dbms_rowid.rowid_relative_fno(rowid) file_no, dbms_rowid.rowid_block_number(rowid) blk_no from sys.tab$
    )
    where blk_no = 31497;

    file: 1, 块号是169,170,145


    vi filelist.txt
    1 /home/oracle/oradata/dstdw/system01.dbf
    2 /home/oracle/oradata/dstdw/sysaux01.dbf
    3 /home/oracle/oradata/dstdw/undotbs01.dbf
    4 /home/oracle/oradata/dstdw/users01.dbf
    5 /home/oracle/oradata/dstdw/credit.dbf
    100 /tmp/system01.dbf.new

    vi par.bbd
    blocksize=8192
    listfile=filelist.txt
    mode=edit

    从备份文件中copy良好的数据块进行恢复
    [oracle@ ~]$ bbed parfile=par.bbd
    password:blockedit

    BBED>copy file 100 block 169 to file 1 block 169;
    BBED>copy file 100 block 170 to file 1 block 170;
    BBED>copy file 100 block 145 to file 1 block 145;

    BBED> verify

  • 相关阅读:
    【LeetCode每天一题】Symmetric Tree(对称树)
    【LeetCode每天一题】Same Tree(相同的树)
    【Go】并发
    【LeetCode每天一题】Validate Binary Search Tree(有效的二叉搜索树)
    【LeetCode每天一题】 Unique Binary Search Trees(唯一二叉搜索树)
    【LeetCode每天一题】Binary Tree Inorder Traversal(二叉树的中序遍历)
    【LeetCode每天一题】Reverse Linked List II(旋转链表II)
    【LeetCode每天一题】Subsets II(子集合II)
    【LeetCode每天一题】Partition List(分区链表)
    【Go】面向对象
  • 原文地址:https://www.cnblogs.com/elontian/p/9686849.html
Copyright © 2020-2023  润新知