• 模拟修改SYS用户名


    1.修改sys用户名为sysadmin

    update user$ set name='sysadmin' where name='SYS';

    2.修改后数据库正常,停库重启后报错

    SQL> startup
    ORACLE instance started.
    
    Total System Global Area  964546560 bytes
    Fixed Size            2259080 bytes
    Variable Size          612370296 bytes
    Database Buffers      343932928 bytes
    Redo Buffers            5984256 bytes
    Database mounted.
    ORA-01092: ORACLE instance terminated. Disconnection forced
    ORA-00600: internal error code, arguments: [kokasgi1], [], [], [], [], [], [],
    [], [], [], [], []
    Process ID: 2646
    Session ID: 125 Serial number: 5

    3.将数据库起到mount状态后进入调试模式

    3.1 数据库启动到mount状态
    SQL> conn / as sysdba
    Connected to an idle instance.
    SQL> startup mount;
    ORACLE instance started.
    
    Total System Global Area  964546560 bytes
    Fixed Size            2259080 bytes
    Variable Size          612370296 bytes
    Database Buffers      343932928 bytes
    Redo Buffers            5984256 bytes
    Database mounted.
    
    3.2 gdb进入调试模式
    [oracle@ora11gr2 ~]$ ps -ef|grep LOCAL
    oracle     2753   2601  0 08:36 ?        00:00:00 oracleora11gr2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
    oracle     2757   2683  0 08:37 pts/2    00:00:00 grep LOCAL
    [oracle@ora11gr2 ~]$ gdb /u01/app/oracle/product/11.2.0/db/bin/oracle 2753
    GNU gdb (GDB) Red Hat Enterprise Linux (7.2-92.el6)
    Copyright (C) 2010 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/>...
    Reading symbols from /u01/app/oracle/product/11.2.0/db/bin/oracle...(no debugging symbols found)...done.
    Attaching to program: /u01/app/oracle/product/11.2.0/db/bin/oracle, process 2753
    Reading symbols from /u01/app/oracle/product/11.2.0/db/lib/libodm11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/lib/libodm11.so
    Reading symbols from /u01/app/oracle/product/11.2.0/db/lib/libcell11.so...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/lib/libcell11.so
    Reading symbols from /u01/app/oracle/product/11.2.0/db/lib/libskgxp11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/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/db/lib/libnnz11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/lib/libnnz11.so
    Reading symbols from /u01/app/oracle/product/11.2.0/db/lib/libclsra11.so...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/lib/libclsra11.so
    Reading symbols from /u01/app/oracle/product/11.2.0/db/lib/libdbcfg11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/lib/libdbcfg11.so
    Reading symbols from /u01/app/oracle/product/11.2.0/db/lib/libhasgen11.so...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/lib/libhasgen11.so
    Reading symbols from /u01/app/oracle/product/11.2.0/db/lib/libskgxn2.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/lib/libskgxn2.so
    Reading symbols from /u01/app/oracle/product/11.2.0/db/lib/libocr11.so...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/lib/libocr11.so
    Reading symbols from /u01/app/oracle/product/11.2.0/db/lib/libocrb11.so...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/lib/libocrb11.so
    Reading symbols from /u01/app/oracle/product/11.2.0/db/lib/libocrutl11.so...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/lib/libocrutl11.so
    Reading symbols from /lib64/libaio.so.1...(no debugging symbols found)...done.
    Loaded symbols for /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/db/lib/libnque11.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/11.2.0/db/lib/libnque11.so
    0x0000003042e0e810 in __read_nocancel () from /lib64/libpthread.so.0
    Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.209.el6.x86_64 libaio-0.3.107-10.el6.x86_64 numactl-2.0.9-2.el6.x86_64
    (gdb) b kokiasg
    Breakpoint 1 at 0x15037cc
    (gdb) c
    Continuing.
    
    
    此时在另外一个窗口起库,显示hang住,其实已经open了。
    SQL> alter database open;

    4.新开窗口,执行恢复操作

    4.1 查看数据库状态
    SQL> select status from v$instance;
    
    STATUS
    ------------
    OPEN
    
    4.2 将sys用户恢复
    SQL> update user$ set name='sys' where name='sysadmin';
    
    0 rows updated.
    
    SQL> commit;
    
    Commit complete.
    
    4.3 gdb窗口退出后open报错,原因为将SYS用户置为小写sys了,更新没有生效
    (gdb) quit
    A debugging session is active.
    
        Inferior 1 [process 2753] will be detached.
    
    Quit anyway? (y or n) y
    Detaching from program: /u01/app/oracle/product/11.2.0/db/bin/oracle, process 2753
    SQL> alter database open;
    alter database open
    *
    ERROR at line 1:
    ORA-01092: ORACLE instance terminated. Disconnection forced
    ORA-00600: internal error code, arguments: [kokasgi1], [], [], [], [], [], [],
    [], [], [], [], []
    Process ID: 3175
    Session ID: 125 Serial number: 5
    4.4 重新进入调试模式,恢复SYS用户,退出调试模式
    SQL> conn / as sysdba
    Connected to an idle instance.
    SQL> startup mount;
    ORACLE instance started.
    
    Total System Global Area  964546560 bytes
    Fixed Size            2259080 bytes
    Variable Size          612370296 bytes
    Database Buffers      343932928 bytes
    Redo Buffers            5984256 bytes
    Database mounted.
    [oracle@ora11gr2 ~]$ ps -ef |grep LOCAL
    oracle     3238   3130  0 08:59 ?        00:00:00 oracleora11gr2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
    oracle     3240   3003  0 08:59 pts/1    00:00:00 grep LOCAL
    [oracle@ora11gr2 ~]$ gdb $ORACLE_HOME/bin/oracle 3238
    (gdb) b kokiasg
    Breakpoint 1 at 0x15037cc
    (gdb) c
    Continuing.
    SQL> alter database open;
    
    Breakpoint 1, 0x00000000015037cc in kokiasg ()
    SQL> select status from v$instance;
    
    STATUS
    ------------
    OPEN
    
    SQL> select rowid,name from user$ where name like 'sys%';
    
    ROWID           NAME
    ------------------ ------------------------------
    AAAAAKAABAAAADRAAB sys
    
    SQL>  update user$ set name='SYS' where name='sys'; 
    
    1 row updated.
    
    SQL> commit
      2  ;
    
    Commit complete.
    (gdb) quit
    A debugging session is active.
    
        Inferior 1 [process 3238] will be detached.
    
    Quit anyway? (y or n) y
    Detaching from program: /u01/app/oracle/product/11.2.0/db/bin/oracle, process 3238
    SQL> alter database open;
    
    Database altered.

    5.测试数据库正常启停

    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup
    ORACLE instance started.
    
    Total System Global Area  964546560 bytes
    Fixed Size            2259080 bytes
    Variable Size          612370296 bytes
    Database Buffers      343932928 bytes
    Redo Buffers            5984256 bytes
    Database mounted.
    Database opened.
    SQL> select status from v$instance;
    
    STATUS
    ------------
    OPEN
    
    SQL> show user
    USER is "SYS
  • 相关阅读:
    ASM ClassReader failed to parse class file解决方法
    Android Studio3.1.2升级问题:Configuration 'compile' is obsolete and has been replaced with 'implementation'.
    解决Android Studio出现Failed to open zip file. Gradle's dependency cache may be corrupt的问题
    AS使用lombok注解报错:Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor.
    IDEA调试SpringMvc项目时,出错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener,解决办法
    解决Android Studio出现GC overhead limit exceeded
    android ScrollView 控制行数
    [android警告]AndroidManifest.xml警告 Not targeting the latest versions of Android
    Android中的windowSoftInputMode属性详解
    MySQL中的isnull、ifnull和nullif函数用法
  • 原文地址:https://www.cnblogs.com/tomatoes-/p/15346637.html
Copyright © 2020-2023  润新知