今天有个童鞋说自己的client 连接不上server端了
通过口头指导实在无法弄好,当时心里还愤愤 一个Oracle net问题搞这么长时间
让对方发远程给我
童鞋的服务端是windows端的,进来的第一件事就是sqlplus / as sysdba
直接就蹦出来空实例。。我就出离愤怒了。。。
sql>startup
看着走到mount 要open的时候
嘭的一下,蹦出两个错误
ora607
ora600
这是两个经典错误
我询问了一下当事人,之前这个库咋了,他说是个测试库(我更放心大胆的搞了),之前突然断电过。。
那就明白了,undo表空间中的数据文件中的某个块(windows界面下一堆?? 字符集不匹配,我也懒得再查了)
需要的操作步骤,网上都有,不过我还是写下
第一步:进入mount阶段,查看undo,然后把undo表空间改为手动分配
SQL> startup mount;
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 100664912 bytes
Database Buffers 180355072 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> alter system set undo_management=manual scope=spfile;
System altered.
第二步:重启打开数据库,创建新的undotbs,更换默认undotbs,将undo_management改回auto
SQL> shutdown immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 100664912 bytes
Database Buffers 180355072 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL> create undo tablespace undotbs02 datafile '/s01/oradata/orcl/undotbs02.dbf' size 50m autoextend on next 10; --路径根据select name from v$datafile;
Tablespace created.
SQL> alter system set undo_tablespace=undotbs02 scope=spfile;
System altered.
SQL> alter system set undo_management=auto scope=spfile;
System altered.