通过以上步骤就可以完成undo表空间损坏或缺失导致的数据库无法打开问题。
总结:
需要注意的问题:
1. 在闪回数据库之后,打开数据库时需要使用 alter database open resetlogs; 命令重置重置日志
2. 要闪回数据库,数据库要装载但不能打开(mount状态下闪回数据库)
3. 记得将undo_management 参数修改回来。使用:alter system set undo_management=auto
scope=spfile;
下面是利用system表空间回滚段新建undo表空间的步骤:
1. 将数据库启动到mount
2. alter system set undo_management=manual scope=spfile;
-- 设置undo表空间的管理方式
3. shutdown immediate;
4. startup 然后新建一个undo表空间 undotbs03;
5. 修改undo_tablespace 参数指向新建的undo表空间 undotbs03;
** 6. 记得将undo_management 参数修改回来。
alter system set undo_management=auto scope=spfile;
7. SQL> alter system set undo_management=manual scope=spfile;
auto表示:该表空间是由Oracle来管理的(自动分配给不同事物使用)
manual表示:该表空间的block是通过freelist来管理如何存储数据的。
8. 打开数据库
** 9.
打开数据库后一定要把undo_management 参数修改回来。
alter system set undo_management=auto scope=spfile;