zoukankan      html  css  js  c++  java
  • 模拟修改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
  • 相关阅读:
    MyBatis学习(五)resultMap测试
    MyBatis学习(四)XML配置文件之SQL映射的XML文件
    Mybatis学习(三)XML配置文件之mybatis-config.xml
    每次回顾,总会有一点小收获!
    php数组去重、魔术方法、redis常用数据结构及应用场景
    MySQL使用可重复读作为默认隔离级别的原因
    后端程序猿标配之linux命令
    常用字符串函数
    nginx配置隐藏index.php
    MySQL的sql_mode解析与设置
  • 原文地址:https://www.cnblogs.com/tomatoes-/p/15346637.html
Copyright © 2011-2022 走看看