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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM