• 模拟修改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
  • 相关阅读:
    asp.net的尖括号绑定字段总结
    在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
    同一个页面内根据分类查询
    利用修改AccessDataSource的sql语句来检索数据
    ADO.NET站内模糊搜索
    又是一个新阶段
    完成一个测试的小功能实践题
    苦心志,劳筋骨,饿体肤,乏其身,乱其所为
    毕业设计进入收尾阶段
    两种模糊过滤关键字的方法
  • 原文地址:https://www.cnblogs.com/tomatoes-/p/15346637.html
Copyright © 2020-2023  润新知