天天看點

Oracle學習筆記:啟停資料庫執行個體、初始化參數

sqlplus    /nolog

!echo    $oracle_sid

connect   /   as  sysdba

startup

shutdown  immediate

  2、靜态參數檔案

  在參數檔案中,可以為相同的參數設定多個條目,對于這樣的重複參數,oracle會選最後一個。

  在啟動時,也可以直接指定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

  報錯: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'

  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   

最新内容請見作者的github頁:http://qaseven.github.io/