oracle啓找不到控制文件

今天沒事看了下oracle的閃回特性,結果手賤把flash_recovery_area 中的文件rm -rf *(ps:在正式的庫上,千萬要慎重rm   * 這類的操作,看過很多案例,因爲這個操場出事故)

後果就是關閉數據庫的時候報錯

shutdown immediate 報找不到控制文件

於是乎做了如下處理:

1,shutdown abort   強制關掉數據庫

2,startup nomount    把數據庫打開到只讀取參數文件的狀態

3,create pfile=''/u01/app/oracle/admin/DRAGON/pfile/spfileDRAGON.txt‘  from spfile

4,alter system set  control_file='''/u01/app/oracle/oradata/DRAGON/control01.ctl'  scope=spfile

5,重啓數據庫


說明:

由於我這裏是誤刪了閃回區的所有文件,對於閃回去存的是什麼文件以後再討論,裏面存了控制文件,並且寫在spfile參數裏了

所以數據庫啓動時,讀取參數文件,讀取控制文件的位置,啓動控制文件時,因爲文件刪掉了,所以啓動失敗了。只要把參數文件改下就行了


oracle 參數文件

oracle的參數文件有兩種,一種是pfile的方式,一種是spfile的方式。

1,pifle的方式,pifle文件時靜態的文件,存放在本地磁盤上,可以用記事本打開,修改參數後,需要重啓數據庫,參數才能生效

2,spfile的方式 spfile文件時存放在服務端的,沒有存在本地磁盤上,不能用記事本打開,是二進制文件,修改參數可以當時生效,不需要重啓數據庫

3,oracle啓動方式是優先於pfile

延遲   

參數改變的方式 :

1. scope=spfile: 對參數的修改記錄在服務器初始化參數文件中,修改後的參數在下次啓動DB時生效。適用於動態和靜態初始化參數。
2. scope=memory: 對參數的修改記錄在內存中,對於動態初始化參數的修改立即生效。在重啓DB後會丟失,會復原爲修改前的參數值。
3. scope=both:   對參數的修改會同時記錄在服務器參數文件和內存中,對於動態參數立即生效,對靜態參數不能用這個選項。
   如果使用了服務器參數文件,則在執行alter system語句時,scope=both是default的選項。

   如果沒有使用服務器參數文件,而在執行alter system語句時指定scope=spfile|both都會出錯。

oracle的啓動關閉幾種方式

1,啓動方式
startup :使oracle 經歷3個階段,並且打開到用戶使用
startup restrict:   oracle 經歷3個階段,並且已限定模式打開數據,只有特定的權限的用戶的用戶才才能使用和訪問數據庫
startup nomout : 在成功打開數據庫實例之後,停止進程(打開oracle 啓動的參數文件) 分配內存,使用rman 必須startup  nomount成功
startup mount:  在成功打開數據庫實例,並加載數據庫後,停止進程(打開oracle 控制文件),如果需要恢復system tablesapce 非常有用
startup read only :使用數據庫已read only的方式打開數據庫,不支持dml,可以查詢數據庫,如果只在執行恢復操作,並且希望
確保在使用resetlogs命令來提交數據庫實例之前的將數據庫恢復到當前 的時間點,這個命令非常有用。



2,關閉數據庫命令:

shutdown (shutdown mormal) 等待所有的用戶會話,斷開後,關閉數據庫(如果一個sesssion 要使用很長時間,那就要等很久,這個不科學)不需要實例恢復
shutdown immediate    清楚當前所有的回話,回滾所有未提交事務(讀undo段(單塊讀)),不需要恢復實例
shutdown abort   實例崩潰(相當數據宕機,斷電),需要實例恢復
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章