OS:linux
oracle version:11.2.0.1
由于磁盘空间问题,将一个表空间offline ,在将表空间online 的时候,报错如下,
alter tablespace tbs_name online
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-00376: file 179 cannot be read at this time
ORA-01110: data file 179:
'/opt/oracle/oradata/ora/tbs_data_03.dbf'
ORA-06512: at line 957
ORA-00376: file 179 cannot be read at this time
ORA-01110: data file 179:
'/opt/oracle/oradata/ora/tbs_data_03.dbf'
查看'/opt/oracle/oradata/ora/tbs_data_03.dbf' 文件,也存在
ll /opt/oracle/oradata/ora/tbs_data_03.dbf
-rw-r----- 1 oracle dba 26843553792 Jul 20 10:25 tbs_data_03.dbf'
SQL> recover datafile 179;
ORA-00283: recovery session canceled due to errors
ORA-00264: no recovery required
确认文件不需要恢复。
没有找到任何思路。去trace 目录下,看看有没有线索
在该目录下,发现一个异常的文件ggs_ddl_trace.log,打开发现如下内容:
SESS 16893430-2011-07-20 11:28:06 : DDL : Cleaning up DDL sequence []
SESS 16893430-2011-07-20 11:28:06 : DDL : Cleaned up [0] rows from DDL table
SESS 16893431-2011-07-20 11:28:06 : DDL : setTracing: :ORA-00376: file 179 cannot be read at this time
ORA-01110: data file 179: /opt/oracle/oradata/ora/tbs_data_03.dbf''
SESS 16893431-2011-07-20 11:28:06 : DDL : Trigger sys.GGS_DDL_TRIGGER_BEFORE :Error processing DDL operation [], error ORA-00376: file 179 cannot be read at this time
ORA-01110: data file 179: '/opt/oracle/oradata/ora/tbs_data_03.dbf'', error stack: ORA-06512: at "GGDATA.DDLREPLICATION", line 1057
ORA-06512: at line 92
很明显sys.GGS_DDL_TRIGGER_BEFORE 这个trigger 导致了这个问题。
alter trigger sys.GGS_DDL_TRIGGER_BEFORE disable;
alter tablespace tbs_name online;
成功。
数据库的日志目录下,有很多隐含的信息,对我们处理问题有很大的帮助!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21601207/viewspace-702652/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21601207/viewspace-702652/