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