oracle 實例管理

   1.  spool命令用法

         SPOOL是SQLPLUS的命令,不是SQL語法裏面的東西。

     spool常用的設置

 
set    colsep  ' ||';       //設置域輸出分隔符爲||,可換爲自己喜歡的分隔符
set    echo     off;    //顯示start啓動的腳本中的每個sql命令,缺省爲on
set    feedback    off;   //回顯本次sql命令處理的記錄條數,缺省爲on
set    heading    off;      //輸出域標題,缺省爲on
set    pagesize    0;   //輸出每頁行數,缺省爲24,爲了避免分頁,可設定爲0。
set    termout     off;      //顯示腳本中的命令的執行結果,缺省爲on
set    trimout      on;   //去除標準輸出每行的拖尾空格,缺省爲off
set    trimspool    on;   //去除重定向(spool)輸出每行的拖尾空格,缺省爲off

set  linesize    n;                 //設置數據行長度爲n

 

例如:sql> conn system/sys  as sysdba;

            sql> spool  c:\param;

            sql> show   parameter;

             sql> spool  off

執行完將在c盤新建param.lst的文件,裏面內容就是數據庫參數設置

 

2. 啓動數據庫:  startup命令啓動數據庫有4種模式:

   startup [force]    [restrict]     [pfile=文件名]

                [open    [RECOVER]   [database]

                 |unmount

                |mount]

A.NoMount 模式(啓動實例不加載數據庫)

命令:startup nomount

講解:這種啓動模式只會創建實例,並不加載數據庫,Oracle僅爲實例創建各種內存結構和服務進程,打開報警文件和追蹤文件,不會打開任何數據文件。在NoMount模式下,只能訪問那些與SGA區相關的數據字典視圖,包括V$PARAMETER、V$SGA、V$PROCESS 和 V$SESSION等,這些視圖中的信息都是從SGA區中獲取的,與數據庫無關。

模式用途:

(1)創建新數據庫;

(2)重建控制文件。


B.Mount模式(加載數據庫但不打開數據庫)

命令:startup mount

講解:這種啓動模式將爲實例加載數據庫,但保持數據庫爲關閉狀態。因爲加載數據庫時需要打開數據庫控制文件,但數據文件和重做日誌文件都都無法進行讀寫,所以用戶還無法對數據庫進行操作。 在Mount模式下,只能訪問那些與控制文件相關的數據字典視圖,包括V$THREAD、V$CONTROLFILE、V$DATABASE、V$DATAFILE 和 V$LOGFILE等,這些視圖都是從控制文件中獲取的。

模式用途:

(1)重命名數據文件;

(2)添加、刪除或重命名重做日誌文件;

(3)執行數據庫完全恢復操作;

(4)改變數據庫的歸檔模式。


C.Open模式(正常打開數據庫)

命令:startup [open]

講解:正常按啓動實例-->加載數據庫-->打開數據庫3個步驟啓動數據庫。

模式用途:平時不對數據庫做什麼維護,像只做應用開發,用這個模式就好了。


D.強制啓動模式

命令:startup force

用途&講解:在某些情況下,使用前面的各種模式都無法成功啓動數據庫時,可以嘗試強制啓動模式。

 

E.限制模式

命令:startup   restrict   


使用Alter Database語句,還可以在各啓動模式間切換。並且,還可以對數據庫設置不同的狀態用於不同的操作,如受/非受限抽狀態、只讀。只讀狀態主要爲待機(standby)數據庫設計。

從NoMount模式切換到Mount模式(沒有從mount切換到nomount的):       ALTER DATABASE MOUNT;

從Mount模式切換到Open模式:     ALTER DATABASE   OPEN;

當數據庫狀態爲關閉時,切換到Open模式:   ALTER DATABASE OPEN;

在OPEN模式下將數據庫狀態置爲只讀:   ALTER DATABASE  OPEN  READ   ONLY;

從只讀狀態恢復讀寫狀態:    ALTER DATABASE  READ   WRITE;

將運行數據庫置爲限制模式:ALTER SYSTEM  ENABLE  RESTRICTED  SESSSION;


關閉數據庫與實例

與數據庫啓動一下,關閉數據庫與實例也分爲3步:關閉數據庫-->實例卸載數據庫--->終止實例

a .Nomal(正常關閉方式)

命令:shutdown nomal

講解:正常方式關閉數據時,Oracle執行如下操作:

(1)阻止任何用戶建立新的連接。

(2)等待當前所有正在連接的用戶主動斷開連接(此方式下Oracle不會立即斷掉當前用戶的連接,這些用戶仍然操作相關的操作)

(3)一旦所有的用戶都斷開連接,則立即關閉、卸載數據庫,並終止實例。(所以,一般以正常方式關閉數據庫時,應該通知所有在線的用戶儘快斷開連接)


b.Immediate(立即關閉方式)

命令:shutdown immediate

講解:

(1)阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。

(2)Oracle不等待在線用戶主動斷開連接,強制終止用戶的當前事務,將任何未提交的事務回退。(如果存在太多未提交的事務,此方式將會耗費很長時間終止和回退事務)

(3)直接關閉、卸載數據庫,並終止實例。


c.Transactional(事務關閉方式)

命令:shutdown transactional

講解:這種方式介於正常關閉方式跟立即關閉方式之間,響應時間會比較快,處理也將比較得當。執行過程如下:

(1)阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。

(2)等待所有未提交的活動事務提交完畢,然後立即斷開用戶的連接。

(3)直接關閉、卸載數據庫,並終止實例。


d.Abort(終止關閉方式)

命令:shutdown abort

講解:這是比較粗暴的一種關閉方式,當前面3種方式都無法關閉時,可以嘗試使用終止方式來關閉數據庫。但是以這種方式關閉數據庫將會丟失一部份數據信息,當重新啓動實例並打開數據庫時,後臺進程SMON會執行實例恢復操作。一般情況下,應當儘量避免使用這種方式來關閉數據庫。執行過程如下:

(1)阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。

(2)立即終止當前正在執行的SQL語句。

(3)任何未提交的事務均不被退名。

(4)直接斷開所有用戶的連接,關閉、卸載數據庫,並終止實例。

 

  

 




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章