Oracle體系架構:實例(instance)的管理
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!
我要咨詢oracle實例(instance)的管理是oracleDBA最重要的日常工作之一,它包含了初始化參數文件的管理和維護,以各種不同的方式啟動或關閉oracle instance,以及對oracle instance所出現的問題進行診斷和維護。
1、初始化參數文件的管理(initialization parameter files)
初始化參數文件是每一個oracle數據庫最重要的文件之一,實例啟動時oracle將讀入該文件的每個參數項,并使用這些參數來配置oracle instance。在oracle數據庫中有兩種類型的參數:顯式和隱式。顯式是在初始化參數文件中有一個參數項,隱式是在初始化參數文件中沒有該選項,但是oracle會給出默認值。在oracle中可以存在多個初始化參數文件,初始化參數文件的類型分為靜態初始化參數文件和動態服務器初始化參數文件,靜態初始化參數文件是一個文本文件,可以進行編輯;而動態服務器初始化參數文件是一個二進制文件,不能進行手工修改,隨意修改可能會導致文件損壞,從而導致數據庫起不來;靜態初始化參數文件的文件名一般為:initSID.ora動態服務器初始化參數文件的文件名一般為spfileSID.ora。
初始化參數文件中包含以下類容:
實例名和與該實例名相關的數據庫名稱;控制文件的名字和控制文件的位置;系統全局區的配置;還原段(回滾段)的配置;該實例所能同時啟動的進程數;標準數據塊的大小;是否允許DBA遠程登錄。。。。
2、靜態初始化參數文件(pfile)
靜態參數文件是一個正文文件,可以使用操作系統提供的正文編輯器進行編輯。oracle只在實例啟動時讀這一文件,因此為了使對這一文件中的參數的修改起作用必須重啟實例。
oracle在安裝完成后創建了一個樣本的初始化參數文件,其名稱為init.ora
3、動態服務器參數文件(spfile)
動態服務器參數文件是一個二進制文件,他總是保存在服務器上而且是由oracle服務器自動維護的。不可以手工修改,手工修改可能會改變該文件,導致成為無效文件。引入這一文件的主要目的是為了能在不需要關閉和啟動數據庫的情況下可以修改實例或者數據庫配置。引入動態服務器參數文件的另一個好處是他提供了自我調優的能力,由于存在于服務器端,因此可以踐行恢復管理器(rman)可以備份這一參數文件。
動態服務器參數文件是利用pfile 通過create spfile 命令建立的,只有具有sysdba權限的用戶才能發起這一命令。
create spfile [=‘spfile名'] from pfile [=‘pfile名'] create spfile from pfile
手工修改spfile的參數會使得該文件變得無效,因此在不少oracle書中建議利用spfile文件生成pfile文件,之后再利用編輯器修改pfile;
如果想修改spfile文件中的參數,最好的方式是使用 alter system set這一個命令語句。
4、啟動數據庫
要使用oracle的startup 命令來啟動數據庫。當oracle收到startup命令之后,其執行順序如下:
--首先使用服務器上的spfileSID文件來啟動實例
--如果沒有找到,就會使用服務器上默認的spfile文件來啟動實例,
--如果依舊沒有找到,就會使用服務器上的initSID文件啟動實例
--如果還沒有找到,就是用服務器默認的pfile文件啟動實例;
可以再啟動的時候添加參數改變優先級,startup pfile=c:\ssa\...\initSID.ora
startup的啟動命令如下
startup [force] [restrict] [pfile=文件名]
[open [recover] [database]] | [mount] | [nomount]
非加載方式啟動數據庫[nomount],這是一種特殊狀態,該狀態只有在創建數據庫或者重建控制文件期間使用。其命令為 startup nomount
當以nomount方式打開數據庫時,oracle只是打開實例,并不打開數據庫中的任何文件,及連控制文件都不打開。該狀態一般是在創建數據庫時使用,此時oracle將進行如下的工作:分配SGA,即配置所有的內存緩沖區和相關的結構;啟動所需的全部后臺進程;打開報警文件和追蹤文件。
加載方式啟動數據庫[mount],也是一種特殊狀態,該狀態只有在對數據庫進行某些特殊的維護期間使用,如對表空間進行恢復,或修改數據文件名,或移動數據文件。其命令是startup mount
當以mount方式啟動數據庫時,oracle實例打開并打開控制文件,此時oracle將進行如下工作:將以數據庫與已經能夠啟動的實例關聯起來;利用初始化參數文件中的說明打開控制文件,讀控制文件以獲取數據文件和重做日志的名字和狀態的信息,但并不檢查這些文件此時是否存在。
開啟方式啟動數據庫[open],這是數據庫的正常啟動狀態,當以open方式啟動數據庫時候,oracle啟動實例,并打開控制文件,此時還將打開所有的聯機數據文件和打開所有的聯機重做日志文件。如果當打開數據庫時任何數據文件或聯機重做日志文件不存在,oracle服務器將返回出錯信息,最后oracle服務器還將檢查所有的聯機數據文件和所有的聯機重做日志文件能否打開并檢查數據庫的一致性。如果需要smon后臺進程則進行實例恢復。
alter database 命令可將nomount修改為mount ,將mount修改為open;為了防止用戶進程修改數據庫中的數據,可以將數據庫的狀態置為只讀,其命令如下 alter database read only;在只讀狀態的數據庫可以用來執行查詢、將數據文件脫機和聯機,但是不能對表空間這樣做、執行數據文件和表空間的脫機恢復、使用本地管理表空間來執行磁盤排序。
5、將數據庫置為限制模式restrict
數據庫運行在限制模式時是很有用的,如要維護數據庫的結構,或對數據庫進行導入和導出等。這樣只有具有restricted session系統權限的用戶才可以登錄數據庫。
startup restrict 或者 alter system enable restricted session;
利用以上語句轉換數據庫后,oracle服務器只保證將來登錄數據庫的用戶必須具有restricted session 系統權限,在此之前已經在數據庫上的用戶可以繼續工作。
6、關閉數據庫
shutdown normal |transactional |immediate |abort