oracle參數(shù)文件
點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!
參數(shù)文件主要用來記錄數(shù)據(jù)庫的配置,是 Oracle 中非常重要的文件。Instance 在啟動階段讀取參數(shù)文件 ,并根據(jù)參數(shù)文件中的參數(shù)設(shè)置來配置數(shù)據(jù)庫。參數(shù)文件是用來約束oracle實(shí)例一種行為的參數(shù)。可以設(shè)置數(shù)據(jù)庫內(nèi)存,以及并發(fā)數(shù)目。參數(shù)文件就是控制實(shí)例行為的文件。參數(shù)文件中常用的參數(shù)文件:
SGA_TARGET;
PGA_AGGREGATE_TARGET;
DB_CACHE_SIZE;
DB_FILES;
LOG_ATCHIVE_DEST_n;
USER_DUMP_DEST。
3.1 pfile :(parameter file)靜態(tài)參數(shù)文件1)文本文件,可以使用vi,vim等編輯器修改參數(shù);2)修改參數(shù)下次重啟實(shí)例才生效;3)pfile 參數(shù)文件可以不在 database server 上;3.2 spfile :(system parameter file) 動態(tài)參數(shù)文件1)二進(jìn)制文件,不可以通過編輯器修改,可以使用 EM 或指令來修改(alter system|session set parameter_name = values <>);3)必須在 database server 端的指定路徑($ORACLE_HOME/dbs)下;
參數(shù)文件優(yōu)先級(如果3個文件都不存在,會報錯)。spfilesid.ora --> spfile.ora -->initsid.ora
內(nèi)存分配(SGA和PGA)SGA:是用于存儲數(shù)據(jù)庫信息的內(nèi)存區(qū),該信息為數(shù)據(jù)庫進(jìn)程所共享。它包含Oracle服務(wù)器的數(shù)據(jù)和控制信息,它是在Oracle服務(wù)器所駐留的計算機(jī)的實(shí)際內(nèi)存中得以分配,如果實(shí)際內(nèi)存不夠再往虛擬內(nèi)存中寫。
Oracle的系統(tǒng)全局區(qū)SGA由哪幾個部分組成?它們的作用是什么?5.1 數(shù)據(jù)高速緩沖區(qū):存放著Oracle系統(tǒng)最近使用過的數(shù)據(jù)庫數(shù)據(jù)塊(oracle數(shù)據(jù)庫的數(shù)據(jù)存儲于數(shù)據(jù)塊中,數(shù)據(jù)塊是數(shù)據(jù)庫中最小的數(shù)據(jù)組織單位oracle是以數(shù)據(jù)塊為單位管理數(shù)據(jù)文件的存儲空間,數(shù)據(jù)塊的取值范圍在2KB~64KB之間,連續(xù)的數(shù)據(jù)塊可組成Oracle中的另一個概念(區(qū)),區(qū)是電腦磁盤空間中分配的最小單位。oracle數(shù)據(jù)庫的邏輯組件關(guān)系如下:oracle數(shù)據(jù)庫-->表空間-->段-->區(qū)-->數(shù)據(jù)塊(在oracle11g中,數(shù)據(jù)塊分為頭部信息區(qū)和存儲區(qū),頭部信息區(qū)不存放數(shù)據(jù),但是存放有關(guān)存儲區(qū)中表數(shù)據(jù)、索引數(shù)據(jù)的的相關(guān)信息起到引導(dǎo)的作用則存儲區(qū)真正存放數(shù)據(jù)記錄。)相當(dāng)于程序高速緩沖區(qū),所有的用戶程序都存放在共享SQL池中。用于緩沖區(qū)在對數(shù)據(jù)進(jìn)行修改的操作過程中生成的重做記錄。SGA是oracle最重要的一個內(nèi)存區(qū)域。里面可以放數(shù)據(jù)塊,sql語句的解析以及redo日志。PGA代表一個會話分配的內(nèi)存,一個會話分配的內(nèi)存叫做一個PGA??偤途褪莖racle允許所有的會話使用內(nèi)存的總和,SGA加上PGA基本上就是使用內(nèi)存的一個總和了。db_cache_size 在sga里面,sga包括好幾部分,一部分是放數(shù)據(jù)塊的,一個放數(shù)據(jù)的地方。從磁盤里面將數(shù)據(jù)讀取到內(nèi)存里面。db_cache_size是給數(shù)據(jù)塊分配多大內(nèi)存。db_files 數(shù)據(jù)庫實(shí)例允許打開多少個數(shù)據(jù)文件。
6.1 這些參數(shù)也可以在數(shù)據(jù)庫里面看到show parameter要查看的參數(shù)名稱。但是這種方式不可以看到所有的初始化參數(shù)。要看所有的初始化參數(shù)有一張視圖v$parameter。6.2 這個視圖直接看name,value就行,所有的初始化參數(shù)和值都可以看到。Oracle啟動的時候使用什么初始化參數(shù),從oracle 10g開始就使用spfile了,再早之前使用pfile。Pfile是一個文本文件,oracle啟動的時候從文本文件里面讀取初始化參數(shù)。文本文件的好處就是容易修改。到了10g之后就不要這個文本文件了,默認(rèn)是spfile。spfile其實(shí)就是一個二進(jìn)制文件二進(jìn)制文件的優(yōu)勢可以在線修改,隨時都可以修改里面的內(nèi)容。
要查看當(dāng)前使用什么參數(shù)啟動可以使用:
可以看到是使用spfile啟動oracle,show parameter spfile值是空的就說明你是用pfile啟動的,反過來也是的了。create spfile from pfile;從pfile里面創(chuàng)建spfile;create pfile from spfile;從spfile里面創(chuàng)建pfile。spfile和pfile是放在統(tǒng)一路徑下面。7.4 Alter system set 配置參數(shù)=數(shù)值 scope=。1)Scope=memory 修改后立刻生效但是重啟之后不會生效;
2)Scope=spfile 有的參數(shù)是不允許修改當(dāng)前的狀態(tài)的,如sga,必須修改完之后數(shù)據(jù)庫重啟才生效,所以不能在memory,both模式下修改;
只能先將配置的值寫到spfile里面,再重啟才生效。3)不加scope選項(xiàng)默認(rèn)是Scope=both,即把參數(shù)在內(nèi)存里面改了即當(dāng)前生效了同時寫入到spfile里面去了。既改內(nèi)存又改spfile。
修改數(shù)據(jù)庫的參數(shù)有兩種方式:
8.1 將spfile轉(zhuǎn)為pfile。之后通過修改pfile里面的內(nèi)容,修改完之后啟動數(shù)據(jù)庫,之后啟動數(shù)據(jù)庫讓pfile生效。8.2 通過命令的方式進(jìn)行修改。通過命令方式改有些參數(shù)可以直接改,改完當(dāng)前生效。有些參數(shù)不能當(dāng)前生效只能先寫到spfile里面再重新啟動讓其生效。參數(shù)文件是控制實(shí)例行為的,因?yàn)閷?shí)例才會去讀取參數(shù)文件。數(shù)據(jù)庫啟動就是啟動實(shí)例的過程,啟動實(shí)例就是開辟oracle自己的內(nèi)存之后啟動后臺進(jìn)程。進(jìn)程和內(nèi)存就構(gòu)成的實(shí)例。后臺進(jìn)程是用來聯(lián)系內(nèi)存和數(shù)據(jù)文件的,內(nèi)存是用來存放數(shù)據(jù)的。進(jìn)程內(nèi)存都有了整個數(shù)據(jù)庫就開始工作了。
在linux里面spfileoradb.ora為二進(jìn)制文件,initoradb.ora 為文本文件。二進(jìn)制格式spfile+sid+.ora。文本格式為init+sid+.ora。
spfile和pfile之間是可以相互之間互相轉(zhuǎn)換的。spfileoradb.ora(之前刪除了,后面又重新創(chuàng)建了)。如果將pfile和spfile都刪除了,那么數(shù)據(jù)庫就無法啟動到nomount狀態(tài)。所以spfile和pfile必須存在一個才能將數(shù)據(jù)庫啟動到nomount狀態(tài)。(指定使用pfile啟動數(shù)據(jù)庫)默認(rèn)情況下由spfile和pfile,oracle是以spfile啟動的。本文來源:IT那活兒(上海新炬王翦團(tuán)隊(duì))
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129607.html