技术开发 频道

UPDATE GLOBAL_NAME为空之后的恢复

  【IT168 技术】在以前的一篇文章中,我提到千万不能将Oracle数据库的global_name更新为空。这不,事儿来了。我的一个同事,提到了一个解决办法,不过那个办法实际上是一种不完全恢复的办法,如果没有备份,就行不通。如果没有备份,可以使用BBED来修改块来解决这个问题,不过使用bbed仍然比较麻烦。

  下面是我一时心血来潮进行的一次测试。测试环境,10.2.0.4 for Linux AS 5.5。注意,不要在生产库上模仿。

  首先UPDATE GLOBAL_NAME为空,COMMIT后以abort方式关闭数据库,以abort方式只是为了增加点难度。之后再启动数据库。

SQL> update global_name set global_name='';  
  
1 row updated.  
  
SQL
> commit;  
  
Commit complete.  
  
SQL
> shutdown abort  
ORACLE instance shut down.  
SQL
> startup  
ORACLE instance started.  
  
Total System Global Area  
209715200 bytes  
Fixed Size                  
1266632 bytes  
Variable Size              
75500600 bytes  
Database Buffers          
130023424 bytes  
Redo Buffers                
2924544 bytes  
Database mounted.  
ORA
-01092: ORACLE instance terminated. Disconnection forced  

  启动失败,不出意料出现ORA-600 [18062]错误:

Mon Sep  6 15:43:31 2010  
Errors in file
/oracle/app/oracle/admin/xty/udump/xty_ora_3149.trc:  
ORA
-00600: internal error code, arguments: [18062], [], [], [], [], [], [], []  
QMNC started
with pid=16, OS id=3151  
Mon Sep  
6 15:43:33 2010  
Errors in file
/oracle/app/oracle/admin/xty/udump/xty_ora_3149.trc:  
ORA
-00600: internal error code, arguments: [18062], [], [], [], [], [], [], []  
Mon Sep  
6 15:43:33 2010  
Errors in file
/oracle/app/oracle/admin/xty/udump/xty_ora_3149.trc:  
ORA
-00600: internal error code, arguments: [18062], [], [], [], [], [], [], []
0
相关文章