打開和關(guān)閉數(shù)據(jù)庫的過程
2024-07-21 02:33:38
供稿:網(wǎng)友
1、 打開數(shù)據(jù)庫
Ø 啟動(dòng)例程
讀取參數(shù)文件initsid.ora
分配SGA
啟動(dòng)后臺(tái)進(jìn)程
打開ALERT 文件及跟蹤文件
Ø 裝載數(shù)據(jù)庫
例如在以下任務(wù)中必須裝載數(shù)據(jù)庫但不要打開數(shù)據(jù)庫
命名數(shù)據(jù)文件
啟用和禁用重做日志歸檔選項(xiàng)
執(zhí)行完全數(shù)據(jù)庫恢復(fù)
裝載數(shù)據(jù)庫包括以下任務(wù)
使數(shù)據(jù)庫與以前啟動(dòng)的例程關(guān)聯(lián)
定位并打開參數(shù)文件中指定的控制文件
讀取控制文件以獲取數(shù)據(jù)文件和重做日志文件的名稱和狀態(tài),但是在此時(shí)不進(jìn)行數(shù)據(jù)文件和聯(lián)機(jī)重做日志文件是否存在的檢查
Ø 打開數(shù)據(jù)庫
打開聯(lián)機(jī)數(shù)據(jù)文件
打開聯(lián)機(jī)重做日志文件
Ø 在此最后階段中,Oracle 服務(wù)器驗(yàn)證所有數(shù)據(jù)文件和聯(lián)機(jī)重做日志文件是否可以打開,并檢查數(shù)據(jù)庫的一致性。假如需要,系統(tǒng)監(jiān)視器后臺(tái)進(jìn)程(SMON) 啟動(dòng)例程恢復(fù)
前滾以恢復(fù)尚未記錄在數(shù)據(jù)文件中但已記錄在聯(lián)機(jī)重做日志中的數(shù)據(jù)
打開數(shù)據(jù)庫而不是等待回退全部事務(wù)后才使數(shù)據(jù)庫可用未被未恢復(fù)事務(wù)鎖定的數(shù)據(jù)立即可用
在SMON 和各個(gè)服務(wù)器進(jìn)程訪問鎖定的數(shù)據(jù)時(shí)回退它們未提交的事務(wù)
Ø 命令:Startup
STARTUP [FORCE] [RESTRICT] [PFILE=filename]
[OPEN [RECOVER][database]MOUNTNOMOUNT]
注這不是完整的語法
OPEN :使用戶得以訪問數(shù)據(jù)庫
MOUNT:為某些DBA 活動(dòng)裝載數(shù)據(jù)庫但不答應(yīng)用戶訪問數(shù)據(jù)庫
NOMOUNT: 創(chuàng)建SGA 并啟動(dòng)后臺(tái)進(jìn)程但不答應(yīng)訪問數(shù)據(jù)庫
PFILE=parfile: 答應(yīng)使用非缺省參數(shù)文件配置例程
FORCE: 在執(zhí)行正常啟動(dòng)之前終止運(yùn)行的例程
RESTRICT: 只答應(yīng)具有RESTRICTED session 權(quán)限的用戶訪問數(shù)據(jù)庫
RECOVER: 在啟動(dòng)數(shù)據(jù)庫時(shí)開始介質(zhì)恢復(fù)
2、 關(guān)閉數(shù)據(jù)庫
Ø 關(guān)閉數(shù)據(jù)庫
Oracle 服務(wù)器將緩沖區(qū)高速緩存中的更改及重做日志緩沖區(qū)高速緩存中的條目寫入數(shù)據(jù)文件和聯(lián)機(jī)重做日志文件
Oracle 服務(wù)器關(guān)閉所有聯(lián)機(jī)數(shù)據(jù)文件和聯(lián)機(jī)重做日志文件
Ø 卸裝數(shù)據(jù)庫
Oracle 服務(wù)器關(guān)閉其控制文件
Ø 關(guān)閉例程
ALERT 文件和跟蹤文件將關(guān)閉,SGA 被回收并且后臺(tái)進(jìn)程被終止
Ø 命令:shutdown
SHUTDOWN [NORMAL TRANSACTIONAL IMMEDIATE ABORT ]
關(guān)閉模式 A I T N
答應(yīng)新連接 x x x x
等到當(dāng)前會(huì)話結(jié)束 x x x 0
等到當(dāng)前事務(wù)結(jié)束 x x 0 0
執(zhí)行檢查點(diǎn)并關(guān)閉文件 x 0 0 0
normal(缺省方式):
不答應(yīng)新的連接
Oracle 服務(wù)器等待所有用戶斷開后才完成關(guān)閉
Oracle 在關(guān)閉例程前將關(guān)閉并卸裝數(shù)據(jù)庫
下一次啟動(dòng)時(shí)將不要求例程恢復(fù)
TRANSACTIONAL---防止客戶丟失工作
沒有客戶可以在此特定例程上啟動(dòng)新事務(wù)
當(dāng)客戶結(jié)束正在進(jìn)行的事務(wù)時(shí)斷開客戶
當(dāng)所有事務(wù)都已完成時(shí)會(huì)立即關(guān)閉
下一次啟動(dòng)將不要求例程恢復(fù)
IMMEDIATE
由Oracle 處理的當(dāng)前SQL 語句未完成
Oracle 服務(wù)器不等待當(dāng)前連接數(shù)據(jù)庫的用戶斷開
Oracle 回退活動(dòng)的事務(wù)并斷開所有連接的用戶
Oracle 在關(guān)閉例程前將關(guān)閉并卸裝數(shù)據(jù)庫
下一次啟動(dòng)將不要求例程恢復(fù)
ABORT
Oracle 服務(wù)器所處理的當(dāng)前SQL 語句被立即終止
Oracle 不等待當(dāng)前連接數(shù)據(jù)庫的用戶斷開
未提交的事務(wù)不回退
在不關(guān)閉文件的情況下例程被終止
下一次啟動(dòng)將要求例程恢復(fù)
Ø NT上通過注冊表關(guān)數(shù)據(jù)庫
停止OracleServiceSID 服務(wù)也終止OracleStartSID 并執(zhí)行orashut.bat 腳本 or
通過停止OracleServiceSID 服務(wù)并將注冊表中的ORA_SID_SHUTDOWN 參數(shù)設(shè)置為True ,可以關(guān)閉數(shù)據(jù)庫