看了老熊的写的blog http://www.laoxiong.net/recover-after-update-global-name.html 关于修复global_name update为空重启ORA-00600: 内部错误代码, 参数: [18062], [], [], [], [], [], [], []的解决方法,自己也尝试一下,一下是实验内容。
我的环境是 solaris 10x86pc 10.0.2.0
先做一个数据文件的冷备份
sqlplus> shutdown immediate
cd $ORA_BASE/oradata/ora10g
cp system01.dbf system01.dbf.bak
bash-3.00$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.2.0 - Production on 星期日 9月 6 20:06:47 2015
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
已连接到空闲例程。
idle@0> startup
ORACLE 例程已经启动。
Total System Global Area 935329792 bytes
Fixed Size 1283524 bytes
Variable Size 234883644 bytes
Database Buffers 696254464 bytes
Redo Buffers 2908160 bytes
数据库装载完毕。
数据库已经打开。
idle@0> select * from global_name;
GLOBAL_NAME
----------------------------------------------------------------------------------------------------
ORA10G.REGRESS.RDBMS.DEV.US.ORACLE.COM
idle@0> desc global_name
名称 是否为空? 类型
----------------------------------------------------- -------- ------------------------------------
GLOBAL_NAME VARCHAR2(4000)
idle@0> update global_name set global_name='';
已更新 1 行。
idle@0> commit;
提交完成。
idle@0> shutdown abort
ORACLE 例程已经关闭。
idle@0> startup
ORACLE 例程已经启动。
Total System Global Area 935329792 bytes
Fixed Size 1283524 bytes
Variable Size 234883644 bytes
Database Buffers 696254464 bytes
Redo Buffers 2908160 bytes
数据库装载完毕。
ORA-01092: ORACLE 实例终止。强制断开连接
查看alert_ora10g.log
-bash-3.00$ tail -f alert_ora10g.log
Errors in file /export/home/oracle/admin/ora10g/udump/ora10g_ora_28347.trc:
ORA-00600: 内部错误代码, 参数: [18062], [], [], [], [], [], [], []
Sun Sep 6 20:11:51 2015
Errors in file /export/home/oracle/admin/ora10g/udump/ora10g_ora_28347.trc:
ORA-00600: 内部错误代码, 参数: [18062], [], [], [], [], [], [], []
Sun Sep 6 20:11:51 2015
Error 600 happened during db open, shutting down database
USER: terminating instance due to error 600
Instance terminated by USER, pid = 28347
ORA-1092 signalled during: ALTER DATABASE OPEN...
Sun Sep 6 20:12:47 2015
接一下了用gdb 来解决问题
首先 先把实例启动到mount状态
SQL*Plus: Release 10.2.0.2.0 - Production on 星期日 9月 6 20:12:44 2015
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
已连接到空闲例程。
idle@0> startup mount
ORACLE 例程已经启动。
Total System Global Area 935329792 bytes
Fixed Size 1283524 bytes
Variable Size 234883644 bytes
Database Buffers 696254464 bytes
Redo Buffers 2908160 bytes
数据库装载完毕。
然后查出这个 会话对应的serverprocess spid 号
bash-3.00# ps -ef|grep -i local
oracle 28389 28360 0 20:12:58 ? 0:00 oracleora10g (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
然后用 gdb $ORACLE_HOME/bin/oracle 28390
bash-3.00$ gdb $ORACLE_HOME/bin/oracle 28360
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-pc-solaris2.10"...
(no debugging symbols found)
Attaching to program `/export/home/oracle/app/product/10.2.0.2/dbhome_1/bin/oracle', process 28360
Retry #1:
Retry #2:
Retry #3:
Retry #4:
[New LWP 1]
(no debugging symbols found)
0xcb39a5a5 in _rt_boot () from /usr/lib/ld.so.1
(gdb) quit
The program is running. Quit anyway (and detach it)? (y or n) y
Detaching from program: /export/home/oracle/app/product/10.2.0.2/dbhome_1/bin/oracle, process 28360
-bash-3.00$ gdb $ORACLE_HOME/bin/oracle 28389
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-pc-solaris2.10"...
(no debugging symbols found)
Attaching to program `/export/home/oracle/app/product/10.2.0.2/dbhome_1/bin/oracle', process 28389
Reading symbols from /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libskgxp10.so...(no debugging symbols found)...done.
Loaded symbols for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libskgxp10.so
Reading symbols from /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libhasgen10.so...(no debugging symbols found)...done.
Loaded symbols for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libhasgen10.so
Reading symbols from /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libskgxn2.so...
(no debugging symbols found)...done.
Loaded symbols for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libskgxn2.so
Reading symbols from /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libocr10.so...(no debugging symbols found)...done.
Loaded symbols for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libocr10.so
Reading symbols from /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libocrb10.so...
(no debugging symbols found)...done.
Loaded symbols for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libocrb10.so
Reading symbols from /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libocrutl10.so...(no debugging symbols found)...done.
Loaded symbols for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libocrutl10.so
Reading symbols from /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libjox10.so...
(no debugging symbols found)...done.
Loaded symbols for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libjox10.so
Reading symbols from /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libclsra10.so...(no debugging symbols found)...done.
Loaded symbols for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libclsra10.so
Reading symbols from /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libdbcfg10.so...
(no debugging symbols found)...done.
Loaded symbols for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libdbcfg10.so
Reading symbols from /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libnnz10.so...(no debugging symbols found)...done.
Loaded symbols for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libnnz10.so
Reading symbols from /lib/libkstat.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/libkstat.so.1
Reading symbols from /lib/libnsl.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libsocket.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/libsocket.so.1
Reading symbols from /lib/libgen.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libgen.so.1
Reading symbols from /lib/libdl.so.1...
---Type <return> to continue, or q <return> to quit---
(no debugging symbols found)...done.
Loaded symbols for /lib/libdl.so.1
Reading symbols from /usr/lib/libsched.so.1...
warning: Lowest section in /usr/lib/libsched.so.1 is .dynamic at 00000074
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libsched.so.1
Reading symbols from /lib/libc.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.1
Reading symbols from /lib/librt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib/libaio.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/libaio.so.1
Reading symbols from /lib/libm.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libm.so.2
Reading symbols from /lib/libthread.so.1...
warning: Lowest section in /lib/libthread.so.1 is .dynamic at 00000074
(no debugging symbols found)...done.
Loaded symbols for /lib/libthread.so.1
Reading symbols from /lib/libpthread.so.1...
warning: Lowest section in /lib/libpthread.so.1 is .dynamic at 00000074
(no debugging symbols found)...done.
Loaded symbols for /lib/libpthread.so.1
Reading symbols from /lib/libmd.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/libmd.so.1
Reading symbols from /lib/ld.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/ld.so.1
sol-thread active.
Retry #1:
Retry #2:
Retry #3:
Retry #4:
[New LWP 1 ]
[New Thread 1 (LWP 1)]
Symbols already loaded for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libskgxp10.so
Symbols already loaded for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libhasgen10.so
Symbols already loaded for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libskgxn2.so
Symbols already loaded for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libocr10.so
Symbols already loaded for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libocrb10.so
Symbols already loaded for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libocrutl10.so
Symbols already loaded for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libjox10.so
Symbols already loaded for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libclsra10.so
Symbols already loaded for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libdbcfg10.so
Symbols already loaded for /export/home/oracle/app/product/10.2.0.2/dbhome_1/lib/libnnz10.so
Symbols already loaded for /lib/libkstat.so.1
Symbols already loaded for /lib/libnsl.so.1
Symbols already loaded for /lib/libsocket.so.1
Symbols already loaded for /lib/libgen.so.1
Symbols already loaded for /lib/libdl.so.1
Symbols already loaded for /usr/lib/libsched.so.1
Symbols already loaded for /lib/libc.so.1
Symbols already loaded for /lib/librt.so.1
Symbols already loaded for /lib/libaio.so.1
Symbols already loaded for /lib/libm.so.2
Symbols already loaded for /lib/libthread.so.1
Symbols already loaded for /lib/libpthread.so.1
Symbols already loaded for /lib/libmd.so.1
Symbols already loaded for /lib/ld.so.1
[Switching to Thread 1 (LWP 1)]
0xcb21a5a5 in _read () from /lib/libc.so.1
(gdb) break kokiasg
Breakpoint 1 at 0x8ad710d
(gdb) continue
Continuing.
[New LWP 2 ]
[New LWP 3 ]
[New LWP 4 ]
[New LWP 5 ]
[New LWP 6 ]
[New LWP 7 ]
[New LWP 8 ]
[New LWP 9 ]
[New LWP 10 ]
[New LWP 11 ]
Breakpoint 1, 0x08ad710d in kokiasg ()
然后在那个会话里 执行 alter database open; --此时语句hang在此。
然后再gdb 里执行 kill 杀掉 server process
(gdb) kill
Kill the program being debugged? (y or n) y
(gdb)
此时 查询 v$database.open_mode 状态
dle@0> alter database open;
alter database open
*
第 1 行出现错误:
ORA-03113: 通信通道的文件结束
idle@0> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
-bash-3.00$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.2.0 - Production on 星期日 9月 6 20:17:38 2015
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
ERROR:
ORA-22303: 未找到类型 "SYS"."DBMSOUTPUT_LINESARRAY"
ORA-00942: 表或视图不存在
ORA-06508: PL/SQL: 无法找到正在调用 : "SYS.DBMS_OUTPUT" 的程序单元
ORA-06512: 在 line 1
sys@@156> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
执行 update global_name set global_name='ora10g' ;
sys@@156> update global_name set global_name='ora10g';
已更新 1 行。
sys@@156> commit;
commit
* --不能显示 commit 数据库
第 1 行出现错误:
ORA-01109: 数据库未打开
sys@@156> exit --直接退出sqlpus 会话或者执行ddl 语句隐式提交
从 Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
-bash-3.00$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.2.0 - Production on 星期日 9月 6 20:19:12 2015
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
ERROR:
ORA-22303: 未找到类型 "SYS"."DBMSOUTPUT_LINESARRAY"
ORA-00942: 表或视图不存在
ORA-06508: PL/SQL: 无法找到正在调用 : "SYS.DBMS_OUTPUT" 的程序单元
ORA-06512: 在 line 1
sys@ora10g@156> select * from global_name;
GLOBAL_NAME
----------------------------------------------------------------------------------------------------
ora10g
sys@ora10g@156> select count(*) from v$Lock where type='TX';
COUNT(*)
----------
0
sys@ora10g@156> SHUTDOWN immediate; --不能以immediate 关闭库。
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01109: 数据库未打开
sys@ora10g@156> shutdown abort
ORACLE 例程已经关闭。
sys@ora10g@156> startup
ORACLE 例程已经启动。
Total System Global Area 935329792 bytes
Fixed Size 1283524 bytes
Variable Size 234883644 bytes
Database Buffers 696254464 bytes
Redo Buffers 2908160 bytes
数据库装载完毕。
数据库已经打开。##恢复成功。
sys@ora10g@156> select * from global_name;
GLOBAL_NAME
----------------------------------------------------------------------------------------------------
ora10g
最后,感谢一下老熊的blog 指导。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21980353/viewspace-1792728/
,如需转载,请注明出处,否则将追究法律责任。