有朋友求助于我,新安装的oracle11g数据库,使用PLSQL Developer工具连接报错,错误代码:ORA-01219,数据库版本号11.2.0.1.0,操作系统Windows Server 2012,问我不用重装是否可以解决?初步判断是数据库启动异常,因为是内网环境,不能远程,只能指导他一步步操作。
1.首先让他登录到服务器,重启数据库:
SQL> shutdown immediate
SQL> startup
执行startup启动指令后,果然出现错误信息,显示为datafile 3文件异常。这里的datafile 3对应的是undo表空间,在打开数据库时,需要用到undo block 208来回滚没有提交的事务,但是block 208这个块有问题,提示需要恢复。
2.执行以下命令,进行数据文件恢复:
SQL> recover datafile 3;
3.结果提示上面的错误,说明datafile 3已经损坏,将其下线:
SQL> alter database datafile 3 offline drop;
4.既然数据库已经是open的状态,那么就可以创建新的undo表空间:
SQL> create undo tablespace UNDOTBS datafile 'D:APPADMINISTRATORORADATAORCLUNDOTBS.dbf' size 500m autoextend off;
5.指定UNDOTBS表空间为默认undo表空间:
SQL> alter system set undo_tablespace='UNDOTBS' scope=both;
6.确保所有UNDOTBS1的status都已变成offline:
SQL> select SEGMENT_NAME ,STATUS ,TABLESPACE_NAME from dba_rollback_segs;
7.当UNDOTBS1都为OFFLINE状态后,删除UNDOTBS1:
SQL> drop tablespace UNDOTBS1 including contents and datafiles;
8.重启数据库验证结果,问题已解决:
注意:
- 对于非归档模式下只能使用以下指令对数据文件置为离线,否则会提示错误:
SQL> alter database datafile 3 offline drop;
- 而对于归档模式,offline和offline drop没有什么区别