文章詳情頁(yè)
深刻理解 Oracle 數(shù)據(jù)庫(kù)的啟動(dòng)和關(guān)閉
瀏覽:19日期:2023-11-12 19:25:46
Oracle數(shù)據(jù)庫(kù)提供了幾種不同的數(shù)據(jù)庫(kù)啟動(dòng)和關(guān)閉方式,本文將具體介紹這些啟動(dòng)和關(guān)閉方式之間的區(qū)別以及它們各自不同的功能。 ;一、啟動(dòng)和關(guān)閉Oracle數(shù)據(jù)庫(kù);對(duì)于大多數(shù)Oracle DBA來(lái)說(shuō),啟動(dòng)和關(guān)閉Oracle數(shù)據(jù)庫(kù)最常用的方式就是在命令行方式下的Server Manager。從Oracle 8i以后,系統(tǒng)將Server Manager的所有功能都集中到了SQL*Plus中,也就是說(shuō)從8i以后對(duì)于數(shù)據(jù)庫(kù)的啟動(dòng)和關(guān)閉可以直接通過(guò)SQL*Plus來(lái)完成,而不再另外需要Server Manager,但系統(tǒng)為了保持向下兼容,依舊保留了Server Manager工具。另外也可通過(guò)圖形用戶工具(GUI)的Oracle Enterprise Manager來(lái)完成系統(tǒng)的啟動(dòng)和關(guān)閉,圖形用戶界面Instance Manager非常簡(jiǎn)單,這里不再詳述。;要啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù),必須要以具有Oracle 治理員權(quán)限的用戶登陸,通常也就是以具有SYSDBA權(quán)限的用戶登陸。一般我們常用INTERNAL用戶來(lái)啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù)(INTERNAL用戶實(shí)際上是SYS用戶以SYSDBA連接的同義詞)。Oracle數(shù)據(jù)庫(kù)的新版本將逐步淘汰INTERNAL這個(gè)內(nèi)部用戶,所以我們最好還是設(shè)置DBA用戶具有SYSDBA權(quán)限。;;; 二、數(shù)據(jù)庫(kù)的啟動(dòng)(STARTUP);啟動(dòng)一個(gè)數(shù)據(jù)庫(kù)需要三個(gè)步驟:;1、 創(chuàng)建一個(gè)Oracle實(shí)例(非安裝階段) 2、 由實(shí)例安裝數(shù)據(jù)庫(kù)(安裝階段) 3、 打開(kāi)數(shù)據(jù)庫(kù)(打開(kāi)階段);在Startup命令中,可以通過(guò)不同的選項(xiàng)來(lái)控制數(shù)據(jù)庫(kù)的不同啟動(dòng)步驟。;1、STARTUP NOMOUNT;NONOUNT選項(xiàng)僅僅創(chuàng)建一個(gè)Oracle實(shí)例。讀取init.ora初始化參數(shù)文件、啟動(dòng)后臺(tái)進(jìn)程、初始化系統(tǒng)全局區(qū)(SGA)。Init.ora文件定義了實(shí)例的配置,包括內(nèi)存結(jié)構(gòu)的大小和啟動(dòng)后臺(tái)進(jìn)程的數(shù)量和類型等。實(shí)例名根據(jù)Oracle_SID設(shè)置,不一定要與打開(kāi)的數(shù)據(jù)庫(kù)名稱相同。當(dāng)實(shí)例打開(kāi)后,系統(tǒng)將顯示一個(gè)SGA內(nèi)存結(jié)構(gòu)和大小的列表,如下所示:SQL> startup nomountORACLE 例程已經(jīng)啟動(dòng)。Total System Global Area 35431692 bytesFixed Size 70924 bytesVariable Size 18505728 bytesDatabase Buffers 16777216 bytesRedo Buffers 77824 bytes;2、STARTUP MOUNT;該命令創(chuàng)建實(shí)例并且安裝數(shù)據(jù)庫(kù),但沒(méi)有打開(kāi)數(shù)據(jù)庫(kù)。Oracle系統(tǒng)讀取控制文件中關(guān)于數(shù)據(jù)文件和重作日志文件的內(nèi)容,但并不打開(kāi)該文件。這種打開(kāi)方式常在數(shù)據(jù)庫(kù)維護(hù)操作中使用,如對(duì)數(shù)據(jù)文件的更名、改變重作日志以及打開(kāi)歸檔方式等。在這種打開(kāi)方式下,除了可以看到SGA系統(tǒng)列表以外,系統(tǒng)還會(huì)給出'數(shù)據(jù)庫(kù)裝載完畢'的提示。;3、STARTUP;該命令完成創(chuàng)建實(shí)例、安裝實(shí)例和打開(kāi)數(shù)據(jù)庫(kù)的所有三個(gè)步驟。此時(shí)數(shù)據(jù)庫(kù)使數(shù)據(jù)文件和重作日志文件在線,通常還會(huì)請(qǐng)求一個(gè)或者是多個(gè)回滾段。這時(shí)系統(tǒng)除了可以看到前面Startup Mount方式下的所有提示外,還會(huì)給出一個(gè)'數(shù)據(jù)庫(kù)已經(jīng)打開(kāi)'的提示。此時(shí),數(shù)據(jù)庫(kù)系統(tǒng)處于正常工作狀態(tài),可以接受用戶請(qǐng)求。 假如采用STARTUP NOMOUNT或者是STARTUP MOUNT的數(shù)據(jù)庫(kù)打開(kāi)命令方式,必須采用ALTER DATABASE命令來(lái)執(zhí)行打開(kāi)數(shù)據(jù)庫(kù)的操作。例如,假如你以STARTUP NOMOUNT方式打開(kāi)數(shù)據(jù)庫(kù),也就是說(shuō)實(shí)例已經(jīng)創(chuàng)建,但是數(shù)據(jù)庫(kù)沒(méi)有安裝和打開(kāi)。這是必須運(yùn)行下面的兩條命令,數(shù)據(jù)庫(kù)才能正確啟動(dòng)。ALTER DATABASE MOUNT;ALTER DATABASE OPEN; 而假如以STARTUP MOUNT方式啟動(dòng)數(shù)據(jù)庫(kù),只需要運(yùn)行下面一條命令即可以打開(kāi)數(shù)據(jù)庫(kù):ALTER DATABASE OPEN; 4、其他打開(kāi)方式 除了前面介紹的三種數(shù)據(jù)庫(kù)打開(kāi)方式選項(xiàng)外,還有另外其他的一些選項(xiàng)。 (1) STARTUP RESTRICT 這種方式下,數(shù)據(jù)庫(kù)將被成功打開(kāi),但僅僅答應(yīng)一些特權(quán)用戶(具有DBA角色的用戶)才可以使用數(shù)據(jù)庫(kù)。這種方式常用來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行維護(hù),如數(shù)據(jù)的導(dǎo)入/導(dǎo)出操作時(shí)不希望有其他用戶連接到數(shù)據(jù)庫(kù)操作數(shù)據(jù)。 (2) STARTUP FORCE 該命令其實(shí)是強(qiáng)行關(guān)閉數(shù)據(jù)庫(kù)(shutdown abort)和啟動(dòng)數(shù)據(jù)庫(kù)(startup)兩條命令的一個(gè)綜合。該命令僅在關(guān)閉數(shù)據(jù)庫(kù)碰到問(wèn)題不能關(guān)閉數(shù)據(jù)庫(kù)時(shí)采用。 (3) ALTER DATABASE OPEN READ ONLY 該命令在創(chuàng)建實(shí)例以及安裝數(shù)據(jù)庫(kù)后,以只讀方式打開(kāi)數(shù)據(jù)庫(kù)。對(duì)于那些僅僅提供查詢功能的產(chǎn)品數(shù)據(jù)庫(kù)可以采用這種方式打開(kāi)。 三、數(shù)據(jù)庫(kù)的關(guān)閉(SHUTDOWN) 對(duì)于數(shù)據(jù)庫(kù)的關(guān)閉,有四種不同的關(guān)閉選項(xiàng),下面對(duì)其進(jìn)行一一介紹。 1、SHUTDOWN NORMAL 這是數(shù)據(jù)庫(kù)關(guān)閉SHUTDOWN命令的確省選項(xiàng)。也就是說(shuō)假如你發(fā)出SHUTDOWN這樣的命令,也即是SHUTDOWN NORNAL的意思。 發(fā)出該命令后,任何新的連接都將再不答應(yīng)連接到數(shù)據(jù)庫(kù)。在數(shù)據(jù)庫(kù)關(guān)閉之前,Oracle將等待目前連接的所有用戶都從數(shù)據(jù)庫(kù)中退出后才開(kāi)始關(guān)閉數(shù)據(jù)庫(kù)。采用這種方式關(guān)閉數(shù)據(jù)庫(kù),在下一次啟動(dòng)時(shí)不需要進(jìn)行任何的實(shí)例恢復(fù)。但需要注重一點(diǎn)的是,采用這種方式,也許關(guān)閉一個(gè)數(shù)據(jù)庫(kù)需要幾天時(shí)間,也許更長(zhǎng)。 2、SHUTDOWN IMMEDIATE 這是我們常用的一種關(guān)閉數(shù)據(jù)庫(kù)的方式,想很快地關(guān)閉數(shù)據(jù)庫(kù),但又想讓數(shù)據(jù)庫(kù)干凈的關(guān)閉,常采用這種方式。 當(dāng)前正在被Oracle處理的SQL語(yǔ)句立即中斷,系統(tǒng)中任何沒(méi)有提交的事務(wù)全部回滾。假如系統(tǒng)中存在一個(gè)很長(zhǎng)的未提交的事務(wù),采用這種方式關(guān)閉數(shù)據(jù)庫(kù)也需要一段時(shí)間(該事務(wù)回滾時(shí)間)。系統(tǒng)不等待連接到數(shù)據(jù)庫(kù)的所有用戶退出系統(tǒng),強(qiáng)行回滾當(dāng)前所有的活動(dòng)事務(wù),然后斷開(kāi)所有的連接用戶。 3、SHUTDOWN TRANSACTIONAL 該選項(xiàng)僅在Oracle 8i后才可以使用。該命令常用來(lái)計(jì)劃關(guān)閉數(shù)據(jù)庫(kù),它使當(dāng)前連接到系統(tǒng)且正在活動(dòng)的事務(wù)執(zhí)行完畢,運(yùn)行該命令后,任何新的連接和事務(wù)都是不答應(yīng)的。在所有活動(dòng)的事務(wù)完成后,數(shù)據(jù)庫(kù)將和SHUTDOWN IMMEDIATE同樣的方式關(guān)閉數(shù)據(jù)庫(kù)。 4、SHUTDOWN ABORT 這是關(guān)閉數(shù)據(jù)庫(kù)的最后一招,也是在沒(méi)有任何辦法關(guān)閉數(shù)據(jù)庫(kù)的情況下才不得不采用的方式,一般不要采用。假如下列情況出現(xiàn)時(shí)可以考慮采用這種方式關(guān)閉數(shù)據(jù)庫(kù)。 1、數(shù)據(jù)庫(kù)處于一種非正常工作狀態(tài),不能用shutdown normal或者shutdown immediate這樣的命令關(guān)閉數(shù)據(jù)庫(kù); 2、需要立即關(guān)閉數(shù)據(jù)庫(kù); 3、在啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例時(shí)碰到問(wèn)題; 所有正在運(yùn)行的SQL語(yǔ)句都將立即中止。所有未提交的事務(wù)將不回滾。Oracle也不等待目前連接到數(shù)據(jù)庫(kù)的用戶退出系統(tǒng)。下一次啟動(dòng)數(shù)據(jù)庫(kù)時(shí)需要實(shí)例恢復(fù),因此,下一次啟動(dòng)可能比平時(shí)需要更多的時(shí)間。 表1可以清楚地看到上述四種不同關(guān)閉數(shù)據(jù)庫(kù)的區(qū)別和聯(lián)系。 表1 Shutdown數(shù)據(jù)庫(kù)不同方式對(duì)比表關(guān)閉方式A;I;T;N;答應(yīng)新的連接××××等待直到當(dāng)前會(huì)話中止×××√等待直到當(dāng)前事務(wù)中止××√√強(qiáng)制CheckPoint,關(guān)閉所有文件×√√√ 其中:A-Abort I-Immediate T-Transaction
標(biāo)簽:
Oracle
數(shù)據(jù)庫(kù)
排行榜
