zoukankan      html  css  js  c++  java
  • [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太麻烦了。

  • 相关阅读:
    关于transition中嵌套keep-alive的问题解决
    vue-cli中使用全局less变量
    git 移除远程仓库关联
    当浏览器窗口大小发生变化时,重新绘制JsPlumb中的线条、端点
    事件循环详解
    React + Sass
    使用OpenSSL自签发SSL证书,支持chrome识别
    英汉翻译技巧之直译与意译、正说与反说、顺序法和逆序法
    英汉翻译技巧之拆句
    英语翻译时句子成分的转换
  • 原文地址:https://www.cnblogs.com/lfree/p/15772063.html
Copyright © 2011-2022 走看看