【Oracle筆記】3.Oracle的啟動(dòng)與關(guān)閉 |
發(fā)布時(shí)間: 2012/7/28 17:23:08 |
一、啟動(dòng)與關(guān)閉過(guò)程 啟動(dòng)(startup):shutdown→nomount(例程啟動(dòng))→mount→open
關(guān)閉(shutdown):open→mount→nomount→shutdown 二、啟動(dòng)例程(nomount) 啟動(dòng)例程讓數(shù)據(jù)庫(kù)處于nomount狀態(tài)一般用于創(chuàng)建數(shù)據(jù)庫(kù)或重新創(chuàng)建控制文件過(guò)程中 啟動(dòng)例程包括下列任務(wù) 按下列順序從$Oracle_HOME/dbs讀取初始化文件: 首先讀取spfileSID.ora 如果找不到,則讀取spfile.ora 如果仍然找不到,則讀取initSID.ora 可以使用startup制定pfile參數(shù)以覆蓋缺省行為 分配SGA 啟動(dòng)后臺(tái)進(jìn)程 打開(kāi)alertSID.log 三、加載數(shù)據(jù)庫(kù)(mount) 啟動(dòng)例程并加載數(shù)據(jù)庫(kù),但不要打開(kāi)數(shù)據(jù)庫(kù)讓數(shù)據(jù)庫(kù)處于mount狀態(tài)一般用于執(zhí)行特定的維護(hù)操作:例如重命名數(shù)據(jù)庫(kù)文件,啟用和禁用重做日志歸檔選項(xiàng),執(zhí)行完全數(shù)據(jù)庫(kù)恢復(fù)。 加載數(shù)據(jù)庫(kù)包括以下任務(wù) 使數(shù)據(jù)庫(kù)與以前啟動(dòng)的例程關(guān)聯(lián) 定位并打開(kāi)參數(shù)文件中指定的控制文件 讀取控制文件以獲取數(shù)據(jù)文件和重做日志文件的名稱和狀態(tài)。但是在此時(shí)不進(jìn)行數(shù)據(jù)文件和重做日志文件是否存在的檢查。 四、打開(kāi)數(shù)據(jù)庫(kù)(open) 打開(kāi)數(shù)據(jù)庫(kù)讓數(shù)據(jù)庫(kù)處于open狀態(tài)任何有效的用戶都可以連接到數(shù)據(jù)庫(kù)并執(zhí)行一般的數(shù)據(jù)訪問(wèn) 打開(kāi)數(shù)據(jù)庫(kù)包括一下任務(wù) 打開(kāi)聯(lián)機(jī)數(shù)據(jù)文件 打開(kāi)聯(lián)機(jī)重做日志文件 Oracle服務(wù)器驗(yàn)證所有數(shù)據(jù)文件和重做日志文件是否可以打開(kāi)并檢查數(shù)據(jù)的一致性,如果需要,系統(tǒng)監(jiān)視(SMON)后臺(tái)進(jìn)程將啟動(dòng)例程恢復(fù)操作。 五、startup命令 若要啟動(dòng)例程,可使用以下命令 startup 【force】 【restrict】 【pfile=filename】 【open 【recover】 【database】 | mount | nomount 】 其中: open:使用戶能夠訪問(wèn)數(shù)據(jù)庫(kù) mount:為某些DBA活動(dòng)加載數(shù)據(jù)庫(kù),但不允許用戶訪問(wèn)數(shù)據(jù)庫(kù) nomount:創(chuàng)建SGA并啟動(dòng)后臺(tái)進(jìn)程,但不允許訪問(wèn)數(shù)據(jù)庫(kù) pfile=filename:允許使用非缺省參數(shù)文件配置例程 force:執(zhí)行正常啟動(dòng)前終止運(yùn)行的例程(一般情況不建議使用,有可能造成數(shù)據(jù)庫(kù)損壞,并無(wú)法啟動(dòng)) restrict:只允許覺(jué)有restrict session權(quán)限的用戶訪問(wèn)數(shù)據(jù)庫(kù) recover:在數(shù)據(jù)庫(kù)啟動(dòng)時(shí)開(kāi)始進(jìn)行介質(zhì)恢復(fù)(一般情況下不建議使用,容易丟數(shù)據(jù)) 六、alter databasa命令 要將數(shù)據(jù)庫(kù)從nomount更改為mount階段或者從mount更改為open階段,請(qǐng)使用alter database命令 alter database {mount | open} 若要紡織數(shù)據(jù)被用戶事務(wù)修改,可以以只讀模式打開(kāi)數(shù)據(jù)庫(kù) alter database open 【read write | read only】 read write:以讀寫(xiě)模式打開(kāi)數(shù)據(jù)庫(kù),以便用戶生成重做日志 read only:將用戶限制為只能執(zhí)行只讀事務(wù),紡織用戶生成重做日志 此模式可用于 執(zhí)行查詢 使用本地管理的表空間執(zhí)行磁盤(pán)排序 使數(shù)據(jù)文件(而不是表空間)脫機(jī)和聯(lián)機(jī) 執(zhí)行脫機(jī)數(shù)據(jù)文件和表空間的恢復(fù) 七、以受限模式打開(kāi)數(shù)據(jù)庫(kù) 當(dāng)執(zhí)行結(jié)構(gòu)維護(hù)或數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出時(shí),以受限模式啟動(dòng)數(shù)據(jù)庫(kù),這樣,只有具有restrict session權(quán)限的用戶才可以使用數(shù)據(jù)庫(kù)。使用alter system SQL命令也可以將數(shù)據(jù)庫(kù)設(shè)為受限模式: alter system 【{enable | disable} restricted session】 enable:僅允許具有restricted session權(quán)限的用戶在以后登陸 disable:禁用restrict session以允許沒(méi)有該權(quán)限的用戶可以登陸 將例程置于受限模式后,可以使用一下命令來(lái)終止所有當(dāng)前會(huì)話 alter system kill session ‘integer1,integer2’ integer1:V$session視圖中的SID列的值 integer2:V$session視圖中的serial#列的值 執(zhí)行該命令后,PMON會(huì)執(zhí)行一下操作 回退用戶當(dāng)前事務(wù) 釋放所有當(dāng)前持有的表或行鎖定 釋放用戶當(dāng)前保留的所有資源 八、關(guān)閉數(shù)據(jù)庫(kù) 關(guān)閉數(shù)據(jù)庫(kù)這一操作將導(dǎo)致對(duì)所有物理結(jié)構(gòu)進(jìn)行操作系統(tǒng)脫機(jī)備份,并使修改過(guò)的靜態(tài)初始化參數(shù)在重新啟動(dòng)后生效,有四種模式:abort、immediate、transactional、normal 關(guān)閉數(shù)據(jù)庫(kù)必須以sysoper或sysdba身份使用一下命令操作 shutdown 【normal | transactional | immediate | abort】 九、干凈的關(guān)閉數(shù)據(jù)庫(kù) 使用正常關(guān)閉(normal)、事務(wù)處理關(guān)閉(transactional)、立即關(guān)閉(immediate)等操作能干凈的關(guān)閉數(shù)據(jù)庫(kù),干凈的關(guān)閉數(shù)據(jù)庫(kù)的流程 在關(guān)閉過(guò)程中將數(shù)據(jù)庫(kù)緩沖區(qū)告訴緩存的內(nèi)容寫(xiě)入數(shù)據(jù)文件 回退未提交的更改 釋放資源 在啟動(dòng)過(guò)程中沒(méi)有發(fā)生例程恢復(fù) 正常關(guān)閉 正常關(guān)閉(normal)是缺省的關(guān)閉模式。正常的護(hù)具看關(guān)閉在下列情況下進(jìn)行 未建立新連接 Oracle服務(wù)器等待所有用戶斷開(kāi)后才完成關(guān)閉 數(shù)據(jù)庫(kù)和重做緩存區(qū)(redo log buffer)中的內(nèi)容已寫(xiě)入磁盤(pán) 后臺(tái)進(jìn)程終止,SGA已從內(nèi)存中刪除 Oracle在關(guān)閉例程前將關(guān)閉并卸載數(shù)據(jù)庫(kù) 下次啟動(dòng)將不要求例程恢復(fù) 事務(wù)處理關(guān)閉(transactional)防止客戶機(jī)丟失工作,在下列情況下進(jìn)行 沒(méi)有客戶機(jī)可以在此特定例程上啟動(dòng)新事物 當(dāng)客戶機(jī)結(jié)束正在進(jìn)行的事務(wù)時(shí),斷開(kāi)客戶機(jī) 當(dāng)所有事務(wù)都已完成后立即關(guān)閉 下次啟動(dòng)將不要求例程恢復(fù) 立即關(guān)閉(immediate)在下列情況下進(jìn)行 由Oracle處理的當(dāng)前SQL語(yǔ)句未完成 Oracle服務(wù)器不等待當(dāng)前連接到數(shù)據(jù)庫(kù)的用戶斷開(kāi) Oracle回退活動(dòng)的事務(wù)并斷開(kāi)所有連接的用戶 Oracle在關(guān)閉例程前將關(guān)閉并卸載數(shù)據(jù)庫(kù) 下次啟動(dòng)將不要求例程恢復(fù) 十、不正常關(guān)閉數(shù)據(jù)庫(kù) 使用關(guān)閉終止(abort)操作關(guān)閉數(shù)據(jù)庫(kù)一般用在正常和立即關(guān)閉數(shù)據(jù)庫(kù)不起作用時(shí),操作所經(jīng)歷的步驟為: 在關(guān)閉過(guò)程中發(fā)生修改的緩存區(qū)內(nèi)容不寫(xiě)入數(shù)據(jù)文件 不回退未提交的更改 使用關(guān)閉終止強(qiáng)制關(guān)閉數(shù)據(jù)會(huì)造成數(shù)據(jù)庫(kù)不一致 在啟動(dòng)過(guò)程中會(huì)使用重做日志重新應(yīng)用更改 使用撤銷段回退未提交的更改 釋放資源 這種操作容易造成數(shù)據(jù)庫(kù)故障,導(dǎo)致再無(wú)法開(kāi)啟,不建議使用 使用該操作一般用于以下幾種情況 Oracle服務(wù)器所處理的當(dāng)前SQL語(yǔ)句被立即終止。 Oracle不等待當(dāng)前連接數(shù)據(jù)庫(kù)的用戶斷開(kāi) 數(shù)據(jù)庫(kù)和重做緩沖區(qū)中的內(nèi)容不寫(xiě)入磁盤(pán) 未提交的事務(wù)不回退 在不關(guān)閉文件的情況下例程被終止 數(shù)據(jù)庫(kù)不關(guān)閉或被卸載 下次啟動(dòng)要求恢復(fù)例程,該操作將自動(dòng)進(jìn)行 建議不要備份處于不一致?tīng)顟B(tài)的數(shù)據(jù)庫(kù) 本文出自:億恩科技【www.riomediacenter.com】
關(guān)閉(shutdown):open→mount→nomount→shutdown 二、啟動(dòng)例程(nomount) 啟動(dòng)例程讓數(shù)據(jù)庫(kù)處于nomount狀態(tài)一般用于創(chuàng)建數(shù)據(jù)庫(kù)或重新創(chuàng)建控制文件過(guò)程中 啟動(dòng)例程包括下列任務(wù) 按下列順序從$Oracle_HOME/dbs讀取初始化文件: 首先讀取spfileSID.ora 如果找不到,則讀取spfile.ora 如果仍然找不到,則讀取initSID.ora 可以使用startup制定pfile參數(shù)以覆蓋缺省行為 分配SGA 啟動(dòng)后臺(tái)進(jìn)程 打開(kāi)alertSID.log 三、加載數(shù)據(jù)庫(kù)(mount) 啟動(dòng)例程并加載數(shù)據(jù)庫(kù),但不要打開(kāi)數(shù)據(jù)庫(kù)讓數(shù)據(jù)庫(kù)處于mount狀態(tài)一般用于執(zhí)行特定的維護(hù)操作:例如重命名數(shù)據(jù)庫(kù)文件,啟用和禁用重做日志歸檔選項(xiàng),執(zhí)行完全數(shù)據(jù)庫(kù)恢復(fù)。 加載數(shù)據(jù)庫(kù)包括以下任務(wù) 使數(shù)據(jù)庫(kù)與以前啟動(dòng)的例程關(guān)聯(lián) 定位并打開(kāi)參數(shù)文件中指定的控制文件 讀取控制文件以獲取數(shù)據(jù)文件和重做日志文件的名稱和狀態(tài)。但是在此時(shí)不進(jìn)行數(shù)據(jù)文件和重做日志文件是否存在的檢查。 四、打開(kāi)數(shù)據(jù)庫(kù)(open) 打開(kāi)數(shù)據(jù)庫(kù)讓數(shù)據(jù)庫(kù)處于open狀態(tài)任何有效的用戶都可以連接到數(shù)據(jù)庫(kù)并執(zhí)行一般的數(shù)據(jù)訪問(wèn) 打開(kāi)數(shù)據(jù)庫(kù)包括一下任務(wù) 打開(kāi)聯(lián)機(jī)數(shù)據(jù)文件 打開(kāi)聯(lián)機(jī)重做日志文件 Oracle服務(wù)器驗(yàn)證所有數(shù)據(jù)文件和重做日志文件是否可以打開(kāi)并檢查數(shù)據(jù)的一致性,如果需要,系統(tǒng)監(jiān)視(SMON)后臺(tái)進(jìn)程將啟動(dòng)例程恢復(fù)操作。 五、startup命令 若要啟動(dòng)例程,可使用以下命令 startup 【force】 【restrict】 【pfile=filename】 【open 【recover】 【database】 | mount | nomount 】 其中: open:使用戶能夠訪問(wèn)數(shù)據(jù)庫(kù) mount:為某些DBA活動(dòng)加載數(shù)據(jù)庫(kù),但不允許用戶訪問(wèn)數(shù)據(jù)庫(kù) nomount:創(chuàng)建SGA并啟動(dòng)后臺(tái)進(jìn)程,但不允許訪問(wèn)數(shù)據(jù)庫(kù) pfile=filename:允許使用非缺省參數(shù)文件配置例程 force:執(zhí)行正常啟動(dòng)前終止運(yùn)行的例程(一般情況不建議使用,有可能造成數(shù)據(jù)庫(kù)損壞,并無(wú)法啟動(dòng)) restrict:只允許覺(jué)有restrict session權(quán)限的用戶訪問(wèn)數(shù)據(jù)庫(kù) recover:在數(shù)據(jù)庫(kù)啟動(dòng)時(shí)開(kāi)始進(jìn)行介質(zhì)恢復(fù)(一般情況下不建議使用,容易丟數(shù)據(jù)) 六、alter databasa命令 要將數(shù)據(jù)庫(kù)從nomount更改為mount階段或者從mount更改為open階段,請(qǐng)使用alter database命令 alter database {mount | open} 若要紡織數(shù)據(jù)被用戶事務(wù)修改,可以以只讀模式打開(kāi)數(shù)據(jù)庫(kù) alter database open 【read write | read only】 read write:以讀寫(xiě)模式打開(kāi)數(shù)據(jù)庫(kù),以便用戶生成重做日志 read only:將用戶限制為只能執(zhí)行只讀事務(wù),紡織用戶生成重做日志 此模式可用于 執(zhí)行查詢 使用本地管理的表空間執(zhí)行磁盤(pán)排序 使數(shù)據(jù)文件(而不是表空間)脫機(jī)和聯(lián)機(jī) 執(zhí)行脫機(jī)數(shù)據(jù)文件和表空間的恢復(fù) 七、以受限模式打開(kāi)數(shù)據(jù)庫(kù) 當(dāng)執(zhí)行結(jié)構(gòu)維護(hù)或數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出時(shí),以受限模式啟動(dòng)數(shù)據(jù)庫(kù),這樣,只有具有restrict session權(quán)限的用戶才可以使用數(shù)據(jù)庫(kù)。使用alter system SQL命令也可以將數(shù)據(jù)庫(kù)設(shè)為受限模式: alter system 【{enable | disable} restricted session】 enable:僅允許具有restricted session權(quán)限的用戶在以后登陸 disable:禁用restrict session以允許沒(méi)有該權(quán)限的用戶可以登陸 將例程置于受限模式后,可以使用一下命令來(lái)終止所有當(dāng)前會(huì)話 alter system kill session ‘integer1,integer2’ integer1:V$session視圖中的SID列的值 integer2:V$session視圖中的serial#列的值 執(zhí)行該命令后,PMON會(huì)執(zhí)行一下操作 回退用戶當(dāng)前事務(wù) 釋放所有當(dāng)前持有的表或行鎖定 釋放用戶當(dāng)前保留的所有資源 八、關(guān)閉數(shù)據(jù)庫(kù) 關(guān)閉數(shù)據(jù)庫(kù)這一操作將導(dǎo)致對(duì)所有物理結(jié)構(gòu)進(jìn)行操作系統(tǒng)脫機(jī)備份,并使修改過(guò)的靜態(tài)初始化參數(shù)在重新啟動(dòng)后生效,有四種模式:abort、immediate、transactional、normal 關(guān)閉數(shù)據(jù)庫(kù)必須以sysoper或sysdba身份使用一下命令操作 shutdown 【normal | transactional | immediate | abort】 九、干凈的關(guān)閉數(shù)據(jù)庫(kù) 使用正常關(guān)閉(normal)、事務(wù)處理關(guān)閉(transactional)、立即關(guān)閉(immediate)等操作能干凈的關(guān)閉數(shù)據(jù)庫(kù),干凈的關(guān)閉數(shù)據(jù)庫(kù)的流程 在關(guān)閉過(guò)程中將數(shù)據(jù)庫(kù)緩沖區(qū)告訴緩存的內(nèi)容寫(xiě)入數(shù)據(jù)文件 回退未提交的更改 釋放資源 在啟動(dòng)過(guò)程中沒(méi)有發(fā)生例程恢復(fù) 正常關(guān)閉 正常關(guān)閉(normal)是缺省的關(guān)閉模式。正常的護(hù)具看關(guān)閉在下列情況下進(jìn)行 未建立新連接 Oracle服務(wù)器等待所有用戶斷開(kāi)后才完成關(guān)閉 數(shù)據(jù)庫(kù)和重做緩存區(qū)(redo log buffer)中的內(nèi)容已寫(xiě)入磁盤(pán) 后臺(tái)進(jìn)程終止,SGA已從內(nèi)存中刪除 Oracle在關(guān)閉例程前將關(guān)閉并卸載數(shù)據(jù)庫(kù) 下次啟動(dòng)將不要求例程恢復(fù) 事務(wù)處理關(guān)閉(transactional)防止客戶機(jī)丟失工作,在下列情況下進(jìn)行 沒(méi)有客戶機(jī)可以在此特定例程上啟動(dòng)新事物 當(dāng)客戶機(jī)結(jié)束正在進(jìn)行的事務(wù)時(shí),斷開(kāi)客戶機(jī) 當(dāng)所有事務(wù)都已完成后立即關(guān)閉 下次啟動(dòng)將不要求例程恢復(fù) 立即關(guān)閉(immediate)在下列情況下進(jìn)行 由Oracle處理的當(dāng)前SQL語(yǔ)句未完成 Oracle服務(wù)器不等待當(dāng)前連接到數(shù)據(jù)庫(kù)的用戶斷開(kāi) Oracle回退活動(dòng)的事務(wù)并斷開(kāi)所有連接的用戶 Oracle在關(guān)閉例程前將關(guān)閉并卸載數(shù)據(jù)庫(kù) 下次啟動(dòng)將不要求例程恢復(fù) 十、不正常關(guān)閉數(shù)據(jù)庫(kù) 使用關(guān)閉終止(abort)操作關(guān)閉數(shù)據(jù)庫(kù)一般用在正常和立即關(guān)閉數(shù)據(jù)庫(kù)不起作用時(shí),操作所經(jīng)歷的步驟為: 在關(guān)閉過(guò)程中發(fā)生修改的緩存區(qū)內(nèi)容不寫(xiě)入數(shù)據(jù)文件 不回退未提交的更改 使用關(guān)閉終止強(qiáng)制關(guān)閉數(shù)據(jù)會(huì)造成數(shù)據(jù)庫(kù)不一致 在啟動(dòng)過(guò)程中會(huì)使用重做日志重新應(yīng)用更改 使用撤銷段回退未提交的更改 釋放資源 這種操作容易造成數(shù)據(jù)庫(kù)故障,導(dǎo)致再無(wú)法開(kāi)啟,不建議使用 使用該操作一般用于以下幾種情況 Oracle服務(wù)器所處理的當(dāng)前SQL語(yǔ)句被立即終止。 Oracle不等待當(dāng)前連接數(shù)據(jù)庫(kù)的用戶斷開(kāi) 數(shù)據(jù)庫(kù)和重做緩沖區(qū)中的內(nèi)容不寫(xiě)入磁盤(pán) 未提交的事務(wù)不回退 在不關(guān)閉文件的情況下例程被終止 數(shù)據(jù)庫(kù)不關(guān)閉或被卸載 下次啟動(dòng)要求恢復(fù)例程,該操作將自動(dòng)進(jìn)行 建議不要備份處于不一致?tīng)顟B(tài)的數(shù)據(jù)庫(kù) 本文出自:億恩科技【www.enidc.com】 --> 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |