您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關exclusive、startup nomount和mountopen的區別是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
看oracle入門書,其中一句話說,使用startup nomount 命令啟動例程,不可以和mount open 和exclusive一起使用,這個命令適用于建立數據庫或是維護數據庫時使用。
于是查了一下,為什么不能同時使用,以及他們之間的區別。
以下為轉載:
nomount:讀初始化參數文件,啟動實例。
mount:打開控制文件
open: 打開數據文件,日志文件
簡單來說,nomount是用來創建數據庫的狀態,在此情況下可以執行create database....
mount是用來維護數據庫的,比如數據庫出現了問題,數據文件被誤刪除,就無法open,這時可在mount狀態下將數據文件從數據庫中去除。
open是數據庫可以對全體用戶提供服務了。
詳細介紹:
1、startup nomount
非安裝啟動,這種方式啟動下可執行:重建控制文件、重建數據庫
讀取init.ora文件,啟動instance,即啟動SGA和后臺進程,這種啟動只需要init.ora文件。
2、startup mount dbname
安裝啟動,這種方式啟動下可執行:
數據庫日志歸檔、
數據庫介質恢復、
使數據文件聯機或脫機,
重新定位數據文件、重做日志文件。
執行“nomount”,然后打開控制文件,確認數據文件和聯機日志文件的位置,
但此時不對數據文件和日志文件進行校驗檢查。
3、startup open dbname
先執行“nomount”,然后執行“mount”,再打開包括Redo log文件在內的所有數據庫文件,
這種方式下可訪問數據庫中的數據。
4、startup,等于以下三個命令
startup nomount
alter database mount
alter database open
數據庫啟動的三個臺階nomount,mount,open 目的是明白細化啟動數據庫的三個步驟
啟動數據庫到nomount狀態的條件如下。如果你是非windows OS就沒有注冊表,而有環境變量服務中的OracleService必須啟動
服務的名稱和注冊表中的oracle_sid相匹配
存在正確的密碼文件和參數文件
有足夠的內存
參數文件中描述的路徑必須存在
數據庫產品安裝正確
conn sys/oracle as sysdba
shtudown abort;
startup nomount;
select instance_name,status from v$instance;
啟動數據庫到第一個臺階nomount狀態做了如下的工作
1.讀參數文件
2.分配內存
3.啟動后臺進程
4.初始化部分v$視圖
將數據庫帶到mount狀態
select value from v$spparameter where name='control_files';
alter database mount;
mount數據庫的過程是讀參數文件中描述的控制文件,校驗控制文件的正確性,將控制文件的內容讀入到內存中,mounu是掛接的意思,是操作系統中的概念。一旦mount之后,就是將一個沒有意義的實例和一個數據庫發生了聯系。因為實例是空殼。沒有任何數據庫和該實例發生關系,我們可以理解為實例是水泵,放到哪個水塘里就會抽取哪里的數據,實例是通用的。mount的意思是將一個通用的水泵放入到一個指定的水塘。mount是讀控制文件,控制文件中有數據文件和日志文件的信息。
select instance_name,status from v$instance;
打開數據庫
alter database open;
讀控制文件中描述的數據文件
驗證文件的一致性,如果不一致,使用日志文件將數據庫文件恢復到一致的狀態。
數據庫open后,普通用戶才可以訪問數據庫
用戶的表才為可見
只讀方式open數據庫
startup mount;
alter database open read only;
select open_mode from v$database;
默認的open方式為read write
想改read only為read write必須重新啟動數據庫
我們現在回想一下數據庫啟動的三個臺階,我們先讀的是參數文件,參數文件可以由我們來編寫。讀完參數文件后又讀了控制文件,控制文件中描述了數據文件和日志文件的信息,如果控制文件丟失了我們可以重新建立,最后是讀數據文件。數據文件里才存放了我們的數據。數據庫將啟動分為三個臺階,目的是我們可以準確的知道哪里有問題,迅速排除。有點象老拖木釬,大頭的在后面。由最開始的一個1K的參數文件,最后到幾個 T的大型數據庫。當我們只打startup而不加任何參數的時候,默認是到open,等于startup open;
我們從屏幕顯示的結果可以清楚的看出,有三個臺階。
還有一個命令是startup force強制啟動數據庫,等于強制停止數據庫再啟動數據庫。
看完上述內容,你們對exclusive、startup nomount和mountopen的區別是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。