Oracle實(shí)例Introduction
當(dāng)有人談到Oracle數(shù)據(jù)庫時(shí),很可能指的是整個(gè)Oracle數(shù)據(jù)庫管理系統(tǒng)(DBMS);但是作為一個(gè)Oracle數(shù)據(jù)庫人員,你必須認(rèn)識到數(shù)據(jù)庫和實(shí)例二者之間的重大區(qū)別—一個(gè)經(jīng)常使非Oracle的系統(tǒng)管理人員混淆的區(qū)別。
為提供Oracle客戶所期望的不同程度的服務(wù)、靈活性與性能,數(shù)據(jù)庫的許多工作由實(shí)例完成,實(shí)例是一系列復(fù)雜的內(nèi)存結(jié)構(gòu)和操作系統(tǒng)進(jìn)程。
除非使用并行Oracle服務(wù)器選項(xiàng),否則每個(gè)Oracle數(shù)據(jù)庫都有一個(gè)實(shí)例與之相關(guān),一個(gè)數(shù)據(jù)庫被唯一的一個(gè)實(shí)例裝載。Oracle實(shí)例結(jié)構(gòu)允許RDBMS同時(shí)對來自多個(gè)用戶的不同種類事務(wù)的請求提供服務(wù),與此同時(shí)提供***的性能、容錯(cuò)性、數(shù)據(jù)的一致性和安全性。
注意本章定義的術(shù)語“進(jìn)程”是指在沒有用戶干預(yù)的情況下正在運(yùn)行的任務(wù)。你的操作系統(tǒng)可能將之稱作“進(jìn)程”,或者使用其他術(shù)語,例如任務(wù)、作業(yè)、線程和其他類似的術(shù)語。
在UNIX實(shí)現(xiàn)多任務(wù)操作系統(tǒng)后,Oracle實(shí)例是松散的結(jié)構(gòu)方式。在一起工作的離散的進(jìn)程在實(shí)現(xiàn)實(shí)例的目標(biāo)的RDBMS中完成指定的任務(wù)。每一個(gè)進(jìn)程都有各自的一個(gè)內(nèi)存塊,該內(nèi)存塊用于保存私有變量、地址堆棧和其他運(yùn)行時(shí)的信息。進(jìn)程間使用公共共享區(qū)并在公共共享區(qū)內(nèi)完成它們的工作。公共共享區(qū)是能夠在同一時(shí)間內(nèi)被不同程序和不同進(jìn)程讀寫的一塊內(nèi)存區(qū)。
該內(nèi)存塊稱為系統(tǒng)全局區(qū)(SGA)。
注意:因?yàn)镾GA駐留在一個(gè)共享內(nèi)存段中,所以它經(jīng)常被稱作共享全局區(qū)。
你可以認(rèn)為后臺進(jìn)程就像數(shù)據(jù)庫的手,直接處理數(shù)據(jù)庫的組件;你也可以認(rèn)為SGA就像大腦,在必要時(shí)間接地調(diào)度手處理它們的信息與存儲檢索。SGA參與發(fā)生在數(shù)據(jù)庫中全部的信息和服務(wù)器的處理。
注意:單用戶的Oracle配置(例如PersonalOracleLite),不使用多進(jìn)程執(zhí)行數(shù)據(jù)庫的功能。相反,所有的數(shù)據(jù)庫功能由一個(gè)Oracle進(jìn)程完成。由于這個(gè)原因,單用戶也稱為單進(jìn)程Oracle。
下面我們來了解下實(shí)例的組成:
許多參數(shù)和現(xiàn)成的技術(shù)能夠幫你配置Oracle實(shí)例,以***地支持你的應(yīng)用和要求。配置實(shí)例對象以獲得***性能在多數(shù)情況下是一個(gè)試驗(yàn)和錯(cuò)誤過程。你可以使用可能的參數(shù)值啟動(dòng),但是只有經(jīng)過一時(shí)間的監(jiān)控才會得出所有設(shè)置和變量的***的可能組合。
配置Oracle實(shí)例參數(shù)包括改變必要的init.ora參數(shù)和在數(shù)據(jù)庫狀態(tài)之間切換(打開、關(guān)閉數(shù)據(jù)庫)。在init.ora文件中有大量的參數(shù),這些參數(shù)有些是無文檔說明的。雖然你不應(yīng)該改變或者增加你不熟悉的參數(shù),但是可以查詢內(nèi)部表x$ksppi以查看數(shù)據(jù)庫所有可能的初始化參數(shù)。ksppinm和ksppdesc列分別給出參數(shù)名和對參數(shù)的簡要描述。
注意:改變初始化參數(shù)而沒有清楚地理解這種改變可能的后果,是非常危險(xiǎn)的。有許多參數(shù)純粹是出于單純的診斷原因而存在的,改變它能導(dǎo)致你的數(shù)據(jù)庫處于非同步狀態(tài)或者崩潰狀態(tài)。無文檔說明的參數(shù)以下劃線開頭命名。除非你有足夠的把握,否則不要輕易增加或改變init.ora文件的關(guān)鍵字或值。
對于大多數(shù)部分,實(shí)例的配置主要關(guān)心在SGA中的對象,你會發(fā)現(xiàn)你的數(shù)據(jù)庫配置與調(diào)整時(shí)間主要花在這些結(jié)構(gòu)上。但是,與后臺進(jìn)程相關(guān)的問題和配置選項(xiàng)也需要進(jìn)行解釋。
【編輯推薦】