Oracle數據庫技術實用詳解學習筆記:啓停數據庫實例、初始化參數

 

1、啓動和關閉數據庫實例

 

sqlplus    /nolog

 

!echo    $ORACLE_SID

 

connect   /   as  sysdba

 

startup

 

shutdown  immediate

 

2、靜態參數文件

在Oracle 9i 之前,通過靜態文本存放初始化參數,可通過文本編輯器編輯。

在參數文件中,可以爲相同的參數設置多個條目,對於這樣的重複參數,Oracle會選最後一個。

 

在Oracle 9i之前,如果在啓動實例時沒有指定參數文件,那麼Oracle會首先在默認的目錄下查找initSID.ora文件,Linux的默認目錄是$ORACLE_HOME/dbs,Windows的默認目錄是$ORACLE\database;如果沒找到,會查找init.ora是否存在;如果沒找到,就會報錯:在處理系統參數時失敗,不能打開參數文件。

 

在啓動時,也可以直接指定pfile,命令爲:  

       startup   pfile = ’你的路徑/你的pfile文件名.ora‘

 

3、動態參數文件

從Oracle 9i開始,提供了動態參數,也就是修改了內存中的參數值後,不用重啓,就能使參數生效的機制,同時提供了動態參數文件spfile,這是一個二進制文件,不能用notepa或者vi編輯器編輯,如果希望對參數的修改持久化,那麼也必須修改spfile中的參數值。

另外,rman支持對spfile的自動備份,但不支持pfile的自動備份。

在參數文件中,每個參數都有一個前綴,* 表示對所有實例有效,“實例名稱”表示只對這個實例有效。

 

由於加了動態參數文件,系統在啓動時,查找參數文件的順序也有所變化:默認路徑下的spfileSID.ora   -->  spfile.ora   - ->  initSID.ora  -->   init.ora,startup pfile ='...'這樣的命令還是有用的,注意不支持這樣的語法:startup spfile = ’...'  。

 

通過pfile來創建spfile,如果下面的命令不指定路徑,那麼用的都是默認路徑:

create   spfile =’/u01/app/oracle‘ from pfile   = '/u01/app/oracle/initora10g.ora'

 

--禁用自動內存管理

alter   system   set  sga_target = 0

 

--顯示參數的值

show   parameter   spfile

show  parameter   shared_pool_size

 

--另一種方法顯示參數的值

select    value   from  v$parameter  where name = 'spfile'

 

select    value   from  v$spparameter where name = 'shared_pool_size'

 

--只在內存中修改參數的值,重啓後,還是spfile的值,而不是這裏的100M

alter   system   set   shared_pool_size = 100M   scope = memory  

 

--只在spfile文件中修改參數的值,重啓後纔會生效

alter   system   set   shared_pool_size = 100M   scope = spfile

 

--同時修改spfile和內存中的值

alter   system   set  shared_pool_size = 100M scope = both

 

 

下面顯示了,如果把spfile中的一個參數設置爲一個無效的值後,如何解決系統再次啓動時,無法啓動的問題:

 

alter   system   set   sga_target = 1000000M    scope = spfile

 

shutdown  immediate

startup

報錯:out   of   memory

alter   system  set  sga_target = 1000M

報錯:oracle 不可用

 

create  pfile = '/u01/init.ora'   from   spfile

可以打開pfile文件,手動編輯,也可以直接在文件最後加一行:

!echo  '*.sga_target = 1000M'   >>    /u01/init.ora

 

create   spfile   from   pfile = '/u01/init.ora'

 

startup

 

 

4、實例的啓動和關閉的具體步驟

nomount階段:找到參數文件,並根據其中的值啓動實例,打開告警日誌 alterSID.log,路徑爲backgroud_dump_dest參數所指定的目錄。

mount階段:根據參數文件中的control_files參數的值,打開所有的控制文件,只要有一個打開失敗,就不能成功進入mount階段。打開文件後,取得所有的數據文件、聯機日誌文件的路徑,但不會驗證這些文件是否存在。

open階段:打開所有的數據文件、聯機日誌文件。

具體的啓動步驟可以是下面的一種:

 

startup   nomount

alter  database   mount

alter  database   open

 

startup mount

alter  database open

 

startup open

 

 

實例關閉時,有多個選項:

abort:相當於模擬服務器突然斷電的情況。

immediate:強制回滾當前正在運行的所有事務,把內存中的髒數據寫入數據文件,清空實例的所有內存。一般採用這個選項。

transactional:等待當前正在運行的事務主動提交或回滾,之後中斷所有連接,寫回數據文件,清空實例內存。

normal:等待當前正在運行的事務主動提交或回滾,同時還會等待所有用戶主動中斷連接。

 

需要注意的是startup  force相當於 shutdown   abort ,然後再 startup

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