最近遇到开发库出现自己就挂掉了,内存突然消失,用toad连接数据时报错:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
这个错误刚开始,不知道为什么,重新启动数据库服务后,方可以正常运行,
远程登陆到oracle所在的主机
sqlplus '/as sysdba'
sql> startup
可是,这个现象并没有停止,不到2-3个小时,oracle又开始抱这个同样的错误,这样重复进行了一段时间,最后通过alert日志,终于定位到了错误原因:ora-00600错误
通过分析表,发现其有坏块,回想了下,那天确实很突然的断过电,易损坏文件
运行该语句成功:
analyze table smon_scn_time validate stucature;
运行该语句报错:
analyze table smon_scn_time validate structure cascade;
ORA-01499: table/Index Cross Reference Failure - see trace file
处理方法
先以这个方法获得系统标准脚本
selct dbms_metadata.get_ddl('INDEX','索引名','SYS') from dual;
drop index smon_scn_time_scn_idx;
drop index smon_scn_time_tim_idx;
create unique index smon_scn_time_scn_idx on smon_scn_time(scn);
create unique index smon_scn_time_tim_idx on smon_scn_time(time_mp);
analyze table smon_scn_time validate structure cascade;
通过上面得知,如果是分析表就开始报错,就得重新获得表的脚本并重建这个表
selct dbms_metadata.get_ddl('TABLE','表名','SYS') from dual;
当然,还得重建索引