模拟修改sys用户,窗口1:
Last login: Tue Nov 24 11:11:10 2020 from 192.168.52.1
[root@saperp ~]# su - oracle
Last login: Tue Nov 24 11:11:13 CST 2020 on pts/4
[oracle@saperp ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon Nov 30 09:53:51 2020
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1252663296 bytes
Fixed Size 2252824 bytes
Variable Size 436211688 bytes
Database Buffers 805306368 bytes
Redo Buffers 8892416 bytes
Database mounted.
Database opened.
SQL> select rowid ,name from user$ where name like 'SYS%';
ROWID NAME
------------------ ------------------------------
AAAAAKAABAAAADRAAB SYS
AAAAAKAABAAAADTAAA SYSDBA
AAAAAKAABAAAADSAAN SYSMAN
AAAAAKAABAAAADRAAG SYSTEM
SQL> update user$ set name=name||'DW' where name in( 'SYS','SYSTEM');
2 rows updated.
SQL> commit;
Commit complete.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1252663296 bytes
Fixed Size 2252824 bytes
Variable Size 436211688 bytes
Database Buffers 805306368 bytes
Redo Buffers 8892416 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [kokasgi1], [], [], [], [], [], [],
[], [], [], [], []
Process ID: 2139
Session ID: 85 Serial number: 3
SQL> startup mount
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.
Total System Global Area 1252663296 bytes
Fixed Size 2252824 bytes
Variable Size 436211688 bytes
Database Buffers 805306368 bytes
Redo Buffers 8892416 bytes
Database mounted.
新开窗口2:
[oracle@saperp ~]$ ps -ef|grep LOCAL
oracle 2327 1943 0 09:57 ? 00:00:00 oracleerp (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 2332 2238 0 09:57 pts/2 00:00:00 grep --color=auto LOCAL
[oracle@saperp ~]$ gdb $ORACLE_HOME/bin/oracle 2327
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-115.el7
Copyright (C) 2013 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 /home/db/oracle/product/11.2.0/db_1/bin/oracle...(no debugging symbols found)...done.
Attaching to program: /home/db/oracle/product/11.2.0/db_1/bin/oracle, process 2327
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libodm11.so...(no debugging symbols found)...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libodm11.so
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libcell11.so...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libcell11.so
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libskgxp11.so...(no debugging symbols found)...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libskgxp11.so
Reading symbols from /lib64/librt.so.1...Reading symbols from /usr/lib/debug/usr/lib64/librt-2.17.so.debug...done.
done.
Loaded symbols for /lib64/librt.so.1
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libnnz11.so...(no debugging symbols found)...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libnnz11.so
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libclsra11.so...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libclsra11.so
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libdbcfg11.so...(no debugging symbols found)...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libdbcfg11.so
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libhasgen11.so...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libhasgen11.so
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libskgxn2.so...(no debugging symbols found)...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libskgxn2.so
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libocr11.so...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libocr11.so
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libocrb11.so...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libocrb11.so
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libocrutl11.so...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libocrutl11.so
Reading symbols from /lib64/libaio.so.1...Reading symbols from /lib64/libaio.so.1...(no debugging symbols found)...done.
(no debugging symbols found)...done.
Loaded symbols for /lib64/libaio.so.1
Reading symbols from /lib64/libdl.so.2...Reading symbols from /usr/lib/debug/usr/lib64/libdl-2.17.so.debug...done.
done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libm.so.6...Reading symbols from /usr/lib/debug/usr/lib64/libm-2.17.so.debug...done.
done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libpthread.so.0...Reading symbols from /usr/lib/debug/usr/lib64/libpthread-2.17.so.debug...done.
done.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/libnsl.so.1...Reading symbols from /usr/lib/debug/usr/lib64/libnsl-2.17.so.debug...done.
done.
Loaded symbols for /lib64/libnsl.so.1
Reading symbols from /lib64/libc.so.6...Reading symbols from /usr/lib/debug/usr/lib64/libc-2.17.so.debug...done.
done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug/usr/lib64/ld-2.17.so.debug...done.
done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/lib64/libnuma.so.1...Reading symbols from /usr/lib64/libnuma.so.1...(no debugging symbols found)...done.
(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libnuma.so.1
Reading symbols from /ogg/19c/libgcc_s.so.1...Missing separate debuginfo for /ogg/19c/libgcc_s.so.1
(no debugging symbols found)...done.
Loaded symbols for /ogg/19c/libgcc_s.so.1
Reading symbols from /lib64/libnss_files.so.2...Reading symbols from /usr/lib/debug/usr/lib64/libnss_files-2.17.so.debug...done.
done.
Loaded symbols for /lib64/libnss_files.so.2
Reading symbols from /home/db/oracle/product/11.2.0/db_1/lib/libnque11.so...(no debugging symbols found)...done.
Loaded symbols for /home/db/oracle/product/11.2.0/db_1/lib/libnque11.so
0x00007ffff57f9700 in __read_nocancel () at ../sysdeps/unix/syscall-template.S:81
81 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
Missing separate debuginfos, use: debuginfo-install libaio-0.3.109-13.el7.x86_64 numactl-libs-2.0.12-3.el7.x86_64
(gdb) b kokiasg
Breakpoint 1 at 0x14af088
(gdb) c
Continuing.
Breakpoint 1, 0x00000000014af088 in kokiasg ()
此时回到窗口1
SQL> alter database open;
--此时系统挂住,其实已经open了。
新开窗口3,执行update恢复:
[oracle@saperp ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon Nov 30 09:58:10 2020
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> select rowid ,name from user$ where name like 'SYS%';
ROWID NAME
------------------ ------------------------------
AAAAAKAABAAAADTAAA SYSDBA
AAAAAKAABAAAADRAAB SYSDW
AAAAAKAABAAAADSAAN SYSMAN
AAAAAKAABAAAADRAAG SYSTEMDW
SQL> update user$ set name='SYS' where name='SYSDW';
1 row updated.
SQL> update user$ set name='SYSTEM' where name='SYSTEMDW';
1 row updated.
SQL> commit;
Commit complete.
回到窗口2,退出gdb
(gdb) quit
A debugging session is active.
Inferior 1 [process 2327] will be detached.
Quit anyway? (y or n) y
Detaching from program: /home/db/oracle/product/11.2.0/db_1/bin/oracle, process 2327
[oracle@saperp ~]$
回到窗口1:open已经完成,正常启停
Database altered.
SQL> select rowid ,name from user$ where name like 'SYS%';
ROWID NAME
------------------ ------------------------------
AAAAAKAABAAAADRAAB SYS
AAAAAKAABAAAADTAAA SYSDBA
AAAAAKAABAAAADSAAN SYSMAN
AAAAAKAABAAAADRAAG SYSTEM
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1252663296 bytes
Fixed Size 2252824 bytes
Variable Size 436211688 bytes
Database Buffers 805306368 bytes
Redo Buffers 8892416 bytes
Database mounted.
Database opened.
SQL>
参考:https://sqlora.blog.csdn.net/article/details/106721292