• [20220106]ora00600 kokasgi1.txt


    [20220106]ora-00600  kokasgi1.txt

    --//上午看了https://www.xifenfei.com/2022/01/2022-first-recovery-ora-600-kokasgi1.html的恢复,我前一阵子也帮别人做了1次恢
    --//复。作者通过特殊手段启动数据库,然后修改SYSXX为原来SYS用户。我仔细想想应该类似以前laoxiong的恢复。
    --//http://www.laoxiong.net/recover-after-update-global-name.html,自己在测试环境重复看看,千万不能在生产系统做这样操作!!


    1.环境:
    SCOTT@book> @ver1
    PORT_STRING                    VERSION        BANNER
    ------------------------------ -------------- --------------------------------------------------------------------------------
    x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

    2.模拟:
    SYS@book> select rowid ,name from user$ where name like 'SYS%';
    ROWID              NAME
    ------------------ ----------------------------------------
    AAAAAKAABAAAADRAAB SYS
    AAAAAKAABAAAADUAAL SYSMAN
    AAAAAKAABAAAADRAAG SYSTEM

    SYS@book> update user$ set name=name||'DW' where name in( 'SYS','SYSTEM');
    2 rows updated.

    SYS@book> commit ;
    Commit complete.

    SYS@book> shutdown immediate ;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SYS@book> startup
    ORACLE instance started.
    Total System Global Area  643084288 bytes
    Fixed Size                  2255872 bytes
    Variable Size             205521920 bytes
    Database Buffers          427819008 bytes
    Redo Buffers                7487488 bytes
    Database mounted.
    ORA-01092: ORACLE instance terminated. Disconnection forced
    ORA-00600: internal error code, arguments: [kokasgi1], [], [], [], [], [], [], [], [], [], [], []
    Process ID: 27563
    Session ID: 295 Serial number: 3
    --//问题再现。

    3.尝试恢复:
    --//重启启动到mount状态。
    SYS@book> startup mount
    ORACLE instance started.

    Total System Global Area  643084288 bytes
    Fixed Size                  2255872 bytes
    Variable Size             205521920 bytes
    Database Buffers          427819008 bytes
    Redo Buffers                7487488 bytes
    Database mounted.

    $ ps -ef | grep LOCA[L]
    oracle   27629 27581  0 17:10 ?        00:00:00 oraclebook (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
    --//确定进程号27629

    $ rlgdb -f -p 27629
    GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-45.el5)
    Copyright (C) 2009 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-redhat-linux-gnu".
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>.
    Attaching to process 27629
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/oracle...(no debugging symbols found)...done.
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libodm11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libodm11.so
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libcell11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libcell11.so
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libskgxp11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libskgxp11.so
    Reading symbols from /lib64/librt.so.1...(no debugging symbols found)...done.
    Loaded symbols for /lib64/librt.so.1
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libnnz11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libnnz11.so
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libclsra11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libclsra11.so
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libdbcfg11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libdbcfg11.so
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libhasgen11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libhasgen11.so
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libskgxn2.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libskgxn2.so
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libocr11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libocr11.so
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libocrb11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libocrb11.so
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libocrutl11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libocrutl11.so
    Reading symbols from /usr/lib64/libaio.so.1...(no debugging symbols found)...done.
    Loaded symbols for /usr/lib64/libaio.so.1
    Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libdl.so.2
    Reading symbols from /lib64/libm.so.6...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libm.so.6
    Reading symbols from /lib64/libpthread.so.0...(no debugging symbols found)...done.
    [Thread debugging using libthread_db enabled]
    Loaded symbols for /lib64/libpthread.so.0
    Reading symbols from /lib64/libnsl.so.1...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libnsl.so.1
    Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libc.so.6
    Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
    Loaded symbols for /lib64/ld-linux-x86-64.so.2
    Reading symbols from /usr/lib64/libnuma.so.1...(no debugging symbols found)...done.
    Loaded symbols for /usr/lib64/libnuma.so.1
    Reading symbols from /lib64/libnss_files.so.2...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libnss_files.so.2
    Reading symbols from /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libnque11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libnque11.so
    0x000000379a00da70 in __read_nocancel () from /lib64/libpthread.so.0

    (gdb) break kokiasg
    Breakpoint 1 at 0x15037a0
    --//注意是kokiasg,没有1.

    SYS@book> alter database open ;

    --//挂起,回到gdb界面执行:
    (gdb) c
    Continuing.
    Breakpoint 1, 0x00000000015037a0 in kokiasg ()

    --//进程已经执行到断点,另外打开一个会话。
    SYS@book> select open_mode from v$database;
    OPEN_MODE
    --------------------
    READ WRITE

    --//OK,现在已经在读写状态,可以执行dml语句修改回来了。

    SYS@book> update user$ set name='SYS' where name = 'SYSDW';
    1 row updated.

    SYS@book> update user$ set name='SYSTEM' where name = 'SYSTEMDW';
    1 row updated.

    SYS@book> commit ;
    Commit complete.

    SYS@book> alter system checkpoint ;
    System altered.

    SYS@book> alter system checkpoint ;
    System altered.

    --//回到gdb界面:
    Breakpoint 1, 0x00000000015037a0 in kokiasg ()
    (gdb) c
    Continuing.

    --//回到挂起的会话界面查看,已经执行完成。
    SYS@book> alter database open ;
    Database altered.

    SYS@book> startup
    ORACLE instance started.
    Total System Global Area  643084288 bytes
    Fixed Size                  2255872 bytes
    Variable Size             205521920 bytes
    Database Buffers          427819008 bytes
    Redo Buffers                7487488 bytes
    Database mounted.
    Database opened.

    SYS@book> select rowid ,name from user$ where name like 'SYS%';
    ROWID              NAME
    ------------------ ----------------------------------------
    AAAAAKAABAAAADRAAB SYS
    AAAAAKAABAAAADUAAL SYSMAN
    AAAAAKAABAAAADRAAG SYSTEM

    --//这样恢复简单,以前的恢复使用bbed太麻烦了。

  • 相关阅读:
    ruby_debug笔记
    来自Neil
    rails 在迭代里的那些条件
    rails 表单嵌套
    rails present? 和 blank? 对于bool 值
    泛泛
    设计模式——策略模式
    Spring容器初始化过程
    Spring之ResourceLoader加载资源
    Spring之ClassPathResource加载资源文件
  • 原文地址:https://www.cnblogs.com/lfree/p/15772063.html
Copyright © 2020-2023  润新知