• UNDO表空间损坏导致数据库无法OPEN


    在数据库undo表空间文件损坏。或者undo表空间文件缺失的情况下。无法打开数据库。
    这两种情况都能够视为一种情况处理,解决方法一样。


    场景:在23:10的时候新建一个undo表空间undotbs02,并切换至该undo表空间。
                 UNDO表空间损坏导致数据库无法OPEN - AllenLi - Allen的博客
                此时再闪回数据库至23:10。
                因为闪回数据库时使用的是undotbs02,而23:10时使用的是undotbs01,
                会造成undo表空间缺失。无法打开数据库。

    (注:闪回数据库之后须要resetlogs)

                UNDO表空间损坏导致数据库无法OPEN - AllenLi - Allen的博客
                UNDO表空间损坏导致数据库无法OPEN - AllenLi - Allen的博客
                从上面的错误就能够看出来。此时undotbs02不存在,无法打开数据库。

                解决思路非常easy:新建一个undo表空间。然后将undo_tablespace 指向新的undo表空间。
                可是....新建表空间仅仅能在数据库open状态下才干进行。

                所以:
                由于Oracle system 表空间还有回滚段。因此我们先能够让Oracle使用system表空间回滚段
                打开数据库,然后就能够新建表空间了。
                UNDO表空间损坏导致数据库无法OPEN - AllenLi - Allen的博客
                UNDO表空间损坏导致数据库无法OPEN - AllenLi - Allen的博客
                新建表空间:
                UNDO表空间损坏导致数据库无法OPEN - AllenLi - Allen的博客
               启动数据库。
               这时能够新建一个undo表空间。然后将undo_tablespace參数指向过去
               注:一定要把undo_management 參数改动为AUTO
               UNDO表空间损坏导致数据库无法OPEN - AllenLi - Allen的博客
               UNDO表空间损坏导致数据库无法OPEN - AllenLi - Allen的博客
              通过以上步骤就能够完毕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;
  • 相关阅读:
    November 13th 2016 Week 47th Sunday The 1st Day
    November 12th 2016 Week 46th Saturday
    November 11th 2016 Week 46th Friday
    November 10th 2016 Week 46th Thursday
    November 9th 2016 Week 46th Wednesday
    November 8th 2016 Week 46th Tuesday
    windows 7文件共享方法
    Win7无线网络共享设置方法
    常量指针和指针常量
    如何查找局域网的外网ip
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6773799.html
Copyright © 2020-2023  润新知