oracle控制檔案的一點研究

來源:互聯網
上載者:User

      控制檔案是非常重要的檔案,執行個體讀取控制檔案才能到mount狀態。DBA的一個原則就是多路控制檔案,今天我就做了個實驗,學習了一下這個。

      代碼如下:

alter system set control_files='D:\app\wings\oradata\testdb\CONTROL03.CTL','D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile;  

      查看一下 :

      

select value from v$spparameter where name = 'control_files';   

       這個時候就會看到兩條資料了。

       然後正常的關掉資料庫:

shutdown immediate; 

       之後複製一份控制檔案,改成上面的名字。啟動資料庫,再查看控制檔案:

sho parameter control_files;  

       這時看到的就是兩個控制檔案了。

       剛才犯了一個很白癡的錯誤,不妨寫出來,讓大家也笑一個。

       step1 

alter system set control_files='D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile;  

       這樣就更改了系統,啟動的話會以04這個檔案啟動。

       之後我關掉了資料庫,複製了03這個檔案,命名為04,啟動資料庫一切正常。之後我很2的做了下一步:

       step 2

alter system set control_files='D:\app\wings\oradata\testdb\CONTROL03.CTL','D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile; 

       之後重啟資料庫,很不幸的報錯了:ora-01219。也沒有任何說明,後來百度了一下,這個錯誤說的是我只能查特定的視圖和表。在EM上看了一下,我的資料庫處於nomount,也就是說我的控制檔案在載入的時候出了問題。處理方案也很簡單:

alter system set control_files='D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile;  

       

       然後重啟一下就可以了。

       當時我百思不得其解,為什麼呢?後來,我做了這麼一步,我又執行了一下step1,不過是把控制檔案換成了03。重啟,之後報錯,提示我控制檔案舊。這個時候我就頓悟了。我忽略了很重要的一點,那就是控制檔案在資料庫啟動之後在不停的被更新著,03這個檔案在幾分鐘沒有被載入的時間裡已經舊了。希望大家不要犯我這個低級錯誤。




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.