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