啓動時分紅三個步驟:數據庫
1.nomount階段,該階段是實例啓動,根據參數文件進行系統分配內存,啓動後臺進程。session
2.mount階段,根據控制文件來進行數據文件和日誌文件的名稱和位置檢查,把實例和數據庫鏈接起來。oracle
3.open階段,就是數據庫打開階段,打開是就須要檢查文件是否正常,有沒有發生文件丟失或者不一致的狀況,丟失則報錯,不一致則進行實例恢復。ide
中止數據庫:rest
sysdba & sysoper 才能夠啓停數據庫!日誌
查看數據庫的當前狀態:orm
select status from v$instance;blog
中止數據庫:進程
shutdown normal = shutdown事務
1.新的鏈接不容許創建
2.等待查詢結束
3.等待事務結束
4.產生檢查點(將buffer cache裏面的髒數據寫盤)
5.關閉數據文件
6.關閉控制文件
7.關閉實例(中止全部的後臺進程,釋放共享內存段)
shutdown transactional
1.新的鏈接不容許創建
*2.不等待查詢結束
3.等待事務結束
4.產生檢查點(將buffer cache裏面的髒數據寫盤)
5.關閉數據文件
6.關閉控制文件
7.關閉實例(中止全部的後臺進程,釋放共享內存段)
shutdown immediate (最經常使用的選項)
1.新的鏈接不容許創建
1.新的鏈接不容許創建
*2.不等待查詢結束
*3.事務被回退
4.產生檢查點(將buffer cache裏面的髒數據寫盤)
5.關閉數據文件
6.關閉控制文件
7.關閉實例(中止全部的後臺進程,釋放共享內存段)
前三種停庫參數,數據庫是乾淨的,從新啓動時不須要實例恢復!
shutdown abort (至關於拔電源)
從新啓動時須要實例恢復! --> smon
ps -ef | grep pmon
ipcs -sm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
啓動數據庫:
分三個階段
1.分配實例 nomount:
須要參數文件
須要保存trace文件的目錄(實例管理的目錄)
ps -ef | grep pmon
ipcs -sm
2.加載控制文件 mount
只須要控制文件
3.加載聯機日誌和數據文件 open
須要聯機日誌和數據文件
startup = startup open
三個臺階連續啓動
分階段啓動數據庫:
啓動數據庫到第一階段:nomount
startup nomount -->只啓動實例(共享內存段和後臺進程)
SQL> select status from v$instance;
STATUS
------------
STARTED
啓動數據庫到第二階段:mount
數據若是是shutdown狀態:
startup mount
數據若是是STARTED狀態:不能使用startup命令,只能使用修改數據庫的命令
alter database mount;
SQL> select status from v$instance;
STATUS
------------
MOUNTED
啓動數據庫到第三階段:open
數據若是是shutdown狀態:
startup
數據若是是STARTED狀態:
alter database mount;
alter database open;
alter database open read only;
數據若是是MOUNTED狀態:
alter database open;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
startup 命令:
startup nomount
startup mount
startup open = startup
startup pfile='/home/oracle/initdemo.ora'
startup restrict
*startup force = shut abort + startup --> 強制重啓(慎用)
conn / as sysdba
alter system enable restricted session;
alter system disable restricted session;
alter database mount;
alter database open;
alter database open read only; -->只能查詢不能dml,能夠寫本地管理的temp表空間
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~