啟動oracle資料庫的同時也就建立了一個資料庫執行個體,並且可以選擇資料庫啟動的狀態。通常,可以通過裝載和開啟資料庫來啟動執行個體,這樣任何一個有效使用者都可以連結到執行個體並執行典型的資料庫訪問操作,下面介紹這方面的內容。
一、啟動資料庫的方法
啟動資料庫執行個體的方法有很多種,分別介紹如下:
1、使用SQL*PLUS 使用SQL*PLUS串連到具有管理員權限的Oracle上,然後發布startup命令,從而啟動資料庫。
2、使用Recovery Manager 即使用RMAN來執行startup和shutdown命令來啟動和關閉資料庫執行個體。若是在RMAN環境中最好使用這種方法,而不是調用SQL*PLUS方法。
3、使用Oracle Enterprise Manager 可以使用Oracle Enterprise Manager來管理oracle資料庫,當然也包含啟動和關閉資料庫。Oracle Enterprise Manager是一個獨立的oracle資料庫產品,它與圖形控制台、代理程式、公用服務以及各種工具一起為管理oracle產品提供了一個整合的和複雜的系統管理平台。
啟動資料庫執行個體的步驟:以沒有串連資料庫的方法啟動SQL*PLUS:sqlplus /nolog,然後作為SYSDBA串連到oracle:connect username/password as sysdba,至此,就串連到了oralce資料庫,並準備好啟動資料庫執行個體。接著使用startup命令來啟動資料庫執行個體,oracle必須從伺服器參數檔案或者傳統的文本初始化參數檔案中讀取執行個體設定檔。當使用不帶pfile子句的startup命令時,oracle將從平台指定的預設位置上的伺服器參數檔案(spfile)中讀取初始化參數。也可以指定初始化參數所在的位置,如startup pfile=/u01/oracle/dbs/init.ora。
啟動資料庫執行個體可以採用不同的模式:
1、啟動但沒有裝載資料庫執行個體,這種模式不允許訪問資料庫,並且通常只適用於資料庫建立或者控制檔案的重新建立的情況。要啟用這種資料庫模式,可以使用命令startup nomount來啟動資料庫執行個體。
2、啟動執行個體並裝載資料庫,但保持資料庫關閉狀態。這種模式適用於某些dba的動作,比如重新命名資料檔案、添加取消或者重新命名重做記錄檔、執行完整的資料庫恢複操作,但不允許對資料庫的一般性訪問動作。要啟用這種資料庫模式,可以使用命令startup mount來啟動資料庫執行個體。
3、啟動執行個體,裝載並開啟資料庫。這種模式可以在不受限制的方式下使用,允許所有合法的使用者訪問。要啟用這種資料庫模式,可以使用命令startup來啟動資料庫執行個體。
4、迫使資料庫啟動,startup force。在一些特殊的情況下,可能會在啟動資料庫執行個體的時候遇到一些問題。一般不要迫使資料庫啟動,除非在以下的情況下:使用shutdown normal、shutdown immediate、shutdown transactional命令不能關閉當前的執行個體。如果正在運行某個執行個體,那麼在重新啟動執行個體前startup force可以使用abort模式關閉該執行個體。
二、改變資料庫的可用性
可以改變資料庫的可用性。這麼做的目的也許時因為維護的原因而限制訪問或者時資料庫唯讀。
當需要執行特定的資料庫管理操作時,必須啟動資料庫並將其裝載在執行個體上,但資料庫必須時關閉的,通過啟動執行個體和裝載資料庫可以獲得這種方案。要裝載一個先前開啟的資料庫,但又不開啟執行個體,可以使用命令:alter database mount
通過開啟一個資料庫,使得已經裝載但是還處於關閉狀態的資料庫用於一般用途,可以使用命令alter database open。在執行這條語句之後,任何一個擁有create session系統許可權的有效oracle使用者都能串連到該資料庫上。
以唯讀模式開啟資料庫。唯讀模式開啟資料庫可以保證資料檔案和重做記錄檔不被重寫,但這種模式不會限制資料庫的恢複火車或者不產生重做的有關改變資料庫狀態的操作,例如,可以使資料檔案離線或者聯機,因為這些操作不影響資料內容。使用命令alter database open read only使資料庫處於唯讀狀態。也可以使用讀寫入模式開啟資料庫,alter database open read write。
三、關閉資料庫
要初始化資料庫的關閉操作,可以使用sql*plus的shutdown命令,在關閉操作完成之前,控制權不會返回到初始化資料庫關閉操作的會話中。當進行中關閉操作時,若使用者試圖進行串連,那麼他會收到類似下面的資訊:
ORA-01090:shutdown in progress-connection is not permitted
要關閉資料庫執行個體,必須首先以sysdba或者sysoper進行串連。可以採用多種模式關閉資料庫,如,normal、immediate、transactional、abort等。至於他們的含義,請查閱有關資料。