真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle11g自動(dòng)內(nèi)存管理概述

本篇內(nèi)容介紹了“oracle 11g自動(dòng)內(nèi)存管理概述”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)專注于化德網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供化德?tīng)I(yíng)銷型網(wǎng)站建設(shè),化德網(wǎng)站制作、化德網(wǎng)頁(yè)設(shè)計(jì)、化德網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開(kāi)發(fā)服務(wù),打造化德網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供化德網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

一:Oracle 11g自動(dòng)內(nèi)存管理概述

oracle11g中的新的內(nèi)存管理特性自動(dòng)化內(nèi)存管理(automatic memory management)。在該新特性之下SGA與PGA將會(huì)根據(jù)需要自動(dòng)的擴(kuò)展與收縮。你只需要設(shè)置兩個(gè)內(nèi)存管理相關(guān)的參數(shù)memory_target與memory_max_target.

1)memory_target:該參數(shù)設(shè)置整個(gè)oracle數(shù)據(jù)庫(kù)實(shí)例可以使用的內(nèi)存量,oralce數(shù)據(jù)庫(kù)實(shí)例在運(yùn)行過(guò)程中會(huì)根據(jù)需求自動(dòng)的調(diào)節(jié)SGA與PGA的大小??梢允褂孟鄳?yīng)的alter system命令動(dòng)態(tài)的修改memory_target的值。該參數(shù)是動(dòng)態(tài)初始化參數(shù)。

2)memory_max_target:該參數(shù)設(shè)置oracle實(shí)例可以使用的最大內(nèi)存量。在調(diào)整memory_target的值時(shí)必須保持以下的約束關(guān)系memory_target<=memory_max_target.該參數(shù)是靜態(tài)初始化參數(shù),修改需要重啟才能生效。

在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候,你可以通過(guò)設(shè)置memory_target,memory_max_target初始化參數(shù)來(lái)開(kāi)啟自動(dòng)化內(nèi)存管理特性。在數(shù)據(jù)庫(kù)創(chuàng)建以后也可以通過(guò)設(shè)置memory_target,memory_max_target初始化參數(shù)來(lái)開(kāi)啟自動(dòng)化內(nèi)存管理,但是不會(huì)立即生效,需要重啟實(shí)例。

使用動(dòng)態(tài)內(nèi)存管理時(shí),SGA_TARGET和PGA_AGGREGATE_TARGET代表它們各自內(nèi)存區(qū)域的最小設(shè)置,要讓Oracle完全控制內(nèi)存管理,這兩個(gè)參數(shù)應(yīng)該設(shè)置為0。

關(guān)于設(shè)置memory_target的值的原則:如果服務(wù)器只有數(shù)據(jù)庫(kù),可以分配全部?jī)?nèi)存的2/3 到 3/4 給oracle的memory_target ;

查看memory_target 以及SGA_TARGET和PGA_AGGREGATE_TARGET的設(shè)置的值,需要注意設(shè)置的值不會(huì)變化的,如下:

SQL> show parameter target

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

archive_lag_target                   integer     0

db_flashback_retention_target        integer     1440

fast_start_io_target                 integer     0

fast_start_mttr_target               integer     0

memory_max_target                    big integer 62848M

memory_target                        big integer 62848M

parallel_servers_target              integer     512

pga_aggregate_target                 big integer 4G

sga_target                           big integer 8G

二:如何Oracle運(yùn)行的某個(gè)時(shí)刻的各個(gè)內(nèi)存的分配大小呢?

可以通過(guò)create pfile from spfile,查看:

[oracle@JoinSpider dbs]$ cat initora11g.ora

ora11g.__db_cache_size=2281701376

ora11g.__java_pool_size=939524096

ora11g.__large_pool_size=805306368

ora11g.__oracle_base='/files/oracle'#ORACLE_BASE set from environment

ora11g.__pga_aggregate_target=57310969856     ##這是當(dāng)前實(shí)際的分配pga的值,

ora11g.__sga_target=5637144576                           ##這是當(dāng)前實(shí)際的分配sga的值

ora11g.__shared_io_pool_size=0

ora11g.__shared_pool_size=3758096384

ora11g.__streams_pool_size=0

*.audit_file_dest='/files/oracle/admin/ora11g/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/files/oracle/oradata/ora11g/control01.ctl','/files/oracle/fast_recovery_area/ora11g/control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_name='ora11g'

*.db_recovery_file_dest='/files/oracle/fast_recovery_area'

*.db_recovery_file_dest_size=4385144832

*.diagnostic_dest='/files/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=ora11gXDB)'

*.memory_max_target=65899345920

*.memory_target=65899345920

*.open_cursors=300

*.pga_aggregate_target=4294967296        ###這是最小值

*.processes=1500

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=8589934592                           ###這是最小值

*.undo_retention=3600

*.undo_tablespace='UNDOTBS1'

三:Oracle11g內(nèi)存管理如何開(kāi)啟:

1:在數(shù)據(jù)庫(kù)創(chuàng)建期間設(shè)置自動(dòng)內(nèi)存管理:如果是手工建庫(kù),那么你只需要設(shè)置好如下類似初始化參數(shù)即可:

memory_target = 1000m

memory_max_target = 1500m

如果是采用DBCA創(chuàng)建數(shù)據(jù)庫(kù),如果是創(chuàng)建新庫(kù)并且是高級(jí)安裝,你能選擇自動(dòng)內(nèi)存管理選項(xiàng)。如果是選擇基本安裝,那么默認(rèn)就是自動(dòng)內(nèi)存管理。

2:在數(shù)據(jù)庫(kù)創(chuàng)建后:你可以在數(shù)據(jù)庫(kù)創(chuàng)建后添加memory_max_target和memory_target.雖然memory_target是一個(gè)動(dòng)態(tài)參數(shù),但是當(dāng)數(shù)據(jù)庫(kù)運(yùn)行時(shí),你不能交換到自動(dòng)內(nèi)存管理。必須重啟數(shù)據(jù)庫(kù)將參數(shù)應(yīng)用到實(shí)例啟動(dòng)過(guò)程才行。

四:Oracle11g內(nèi)存管理的相關(guān)參數(shù)設(shè)置的含義和原則:

MEMORY_TARGET 設(shè)置為非零值時(shí):

1:如果設(shè)置了SGA_TARGET 和 PGA_AGGREGATE_TARGET,則會(huì)分別將它們當(dāng)作 SGA大小和 PGA 大小的最小 值。

2:如果設(shè)置了 SGA_TARGET 但未設(shè)置PGA_AGGREGATE_TARGET,則仍會(huì)自動(dòng)優(yōu)化這兩個(gè)參數(shù)。PGA_AGGREGATE_TARGET 將初始化為以下值:(MEMORY_TARGET -SGA_TARGET)。

3: 如果設(shè)置了 PGA_AGGREGATE_TARGET 但未設(shè)置 SGA_TARGET,則仍會(huì)自動(dòng)優(yōu)化這兩個(gè)參數(shù)。SGA_TARGET 將初始化為值 min(MEMORY_TARGET -PGA_AGGREGATE_TARGET, SGA_MAX_SIZE(如果用戶已設(shè)置)),系統(tǒng)將自動(dòng)優(yōu)化子組件。

4:如果未設(shè)置任何參數(shù),則無(wú)需最小值或默認(rèn)值即可自動(dòng)優(yōu)化這兩個(gè)參數(shù)。 有這樣一個(gè)策略:在初始化過(guò)程中,將MEMORY_TARGET的按固定比率分配給SGA 和 PGA。具體如下:

sga_target =memory_target *60%

pga_aggregate_target=memory_target *40%

如果未設(shè)置 MEMORY_TARGET,或者將其顯式設(shè)置為 0(11g 中的默認(rèn)值為 0)則取消了memory_target的作用,完全和10g在內(nèi)存管理上一致。:

1.如果設(shè)置了 SGA_TARGET,則系統(tǒng)僅自動(dòng)優(yōu)化 SGA 的子組件大小。PGA 的自動(dòng)優(yōu)化與 是否顯式設(shè)置 PGA 無(wú)關(guān)。但是,不會(huì)自動(dòng)優(yōu)化整個(gè)SGA (SGA_TARGET) 和 PGA (PGA_AGGREGATE_TARGET),即 SGA 和PGA 不會(huì)自動(dòng)增長(zhǎng)或收縮。

2.如果既未設(shè)置SGA_TARGET,又未設(shè)置 PGA_AGGREGATE_TARGET,則SGA中的各組件大小都要明確設(shè)定,不能自動(dòng)調(diào)整各組件大小。PGA不能自動(dòng)增長(zhǎng)和收縮。

3. 如果僅設(shè)置了 MEMORY_MAX_TARGET,則使用文本初始化文件進(jìn)行手動(dòng)設(shè)置時(shí),MEMORY_TARGET 默認(rèn)為 0。SGA 和 PGA 的自動(dòng)優(yōu)化行為默認(rèn)情況下與 10g R2 中的相同。

4.如果 SGA_MAX_SIZE 不是用戶設(shè)置的,則在用戶設(shè)置了 MEMORY_MAX_TARGET 的情況下,系統(tǒng)會(huì)在內(nèi)部將其設(shè)置為 MEMORY_MAX_TARGET(與用戶是否設(shè)置SGA_TARGET 無(wú)關(guān))

五:若將一個(gè)非自動(dòng)化內(nèi)存管理的11g庫(kù)系統(tǒng)改成自動(dòng)化內(nèi)存管理,該如何確認(rèn)MEMORY_TARGET的值?

1.在一個(gè)系統(tǒng)上啟用自動(dòng)內(nèi)存管理其實(shí)很簡(jiǎn)單,不需要事先做太多的事情,可以使用下面的計(jì)算公式來(lái)計(jì)算MEMORY_TARGET:           MEMORY_TARGET=SGA_TARGET+GREATEST(PGA_AGGREGATE_TARGET,"maximum      PGA      allocated ");

下面的查詢語(yǔ)句向你展示有關(guān)的信息,以及如何計(jì)算出需要的memory_target值:

1.方法一:使用sql查出SGA_TARGET、PGA_AGGREGATE_TARGET以及maximum      PGA      allocated的值,之后根據(jù)公式MEMORY_TARGET=SGA_TARGET+GREATEST(PGA_AGGREGATE_TARGET,"maximum      PGA  allocated ");算出結(jié)果,,注意函數(shù)GREATEST是求兩個(gè)數(shù)值中的最大值:

SELECT name, value/1024/1024

FROM   v$parameter

WHERE  name IN ('pga_aggregate_target', 'sga_target')

UNION

SELECT 'maximum PGA allocated' AS name, TO_CHAR(value)/1024/1024  AS value

FROM   v$pgastat

WHERE  name = 'maximum PGA allocated';

方法二:直接一個(gè)sql查出memory_target的值,單位為mb;

SELECT  ( sga.value + GREATEST(pga.value, max_pga.value))/1024/1024   AS memory_target

FROM

(SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = 'sga_target') sga,

(SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = 'pga_aggregate_target') pga,

(SELECT value FROM v$pgastat WHERE name = 'maximum PGA allocated') max_pga;

我認(rèn)為MEMORY_TARGET應(yīng)該等于 實(shí)際的sga的值加上PGA 最大分配的值,這是最真實(shí)的,但是一般就認(rèn)為MEMORY_TARGET=SGA_TARGET+GREATEST(PGA_AGGREGATE_TARGET,"maximum      PGA  allocated ")即可

如果想更真實(shí)的確定MEMORY_TARGET的大小,那就要確定實(shí)例的sga_target的實(shí)際使用的大小,當(dāng)前設(shè)置值減去剩余值。然后再利用前邊的計(jì)算公式

SQL> select (

(select sum(value) from v$sga) -

(select current_size from v$sga_dynamic_free_memory)

)/1024/1024/1024 "sga_target"

from dual;

2.如果此時(shí)實(shí)例沒(méi)有設(shè)置memory_target或者說(shuō)memory_target=0,并且把SGA_TARGET設(shè)置為0,即表示禁用10g的新特性——自動(dòng)共享內(nèi)存(sga)分配,這樣我們需要對(duì)各個(gè)sga內(nèi)存組件的值進(jìn)行單獨(dú)設(shè)置,那么這種情況下該怎么確定memory_target的值來(lái)開(kāi)啟Oracle11g的自動(dòng)內(nèi)存管理呢?

SQL>  select value/1024/1024 as value from v$pgastat  where name='maximum PGA allocated';

VALUE

----------

45.7822266

可見(jiàn)pga_aggregate_target=46M,確定oracle實(shí)例啟動(dòng)以來(lái)PGA的最大容量,可以理解為最大的使用量。

SQL> SELECT ((SELECT SUM(value) FROM V$SGA) -

(SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY) ) "SGA_TARGET"

FROM DUAL;

SGA_TARGET

----------

313626624

可見(jiàn)SGA_target的大小為300M,

1)如果馬上就修改memory_target=352M會(huì)報(bào)

值的范圍不合法的提示,

SQL> alter system set memory_target=352M;

alter system set memory_target=352M

ERROR at line 1:

ORA-02097: parameter cannot be modified because specified value is invalid

ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least

400M

因?yàn)橐獫M足memory_target>=pga_aggregate_target+sga_target.

但是pga_aggregate_target 的值是100M,而SGA_target的值為300M。

352M<300M+100M所有出錯(cuò)了。

2)修改PGA或者sga的值為0M也會(huì)報(bào)錯(cuò)的。因?yàn)檫€沒(méi)有設(shè)置memory_target的值,

SQL>  alter system set pga_aggregate_target=0;

alter system set pga_aggregate_target=0

ERROR at line 1:

ORA-02097: parameter cannot be modified because specified value is invalid

ORA-00093: pga_aggregate_target must be between 10M and 4096G-1

如果直接修改pga_aggregate_target的值會(huì)報(bào)上面的錯(cuò)誤。因?yàn)槲覀冞€沒(méi)有設(shè)置momory_target的值,如果直接是設(shè)置PGA的大小為0M的話,那就等于不給PGA分配內(nèi)存了,所有我們通過(guò)上面的一個(gè)查詢,確定自實(shí)例啟動(dòng)以來(lái)分配給PGA的最大內(nèi)存大小46M,先把PGA的值調(diào)下來(lái)。使

memory_target>=pga_aggregate_target+sga_target.即352M>=50M+300M

SQL> alter system set pga_aggregate_target=50M;

System altered.

SQL> alter system set memory_target=352M;

System altered.

SQL> alter system set pga_aggregate_target=0M;

System altered.

這是我們已經(jīng)啟用oracle的內(nèi)存自動(dòng)化管理,并且設(shè)置SGA_target與pga_aggregate_target參數(shù)的值為0。oracle這時(shí)就不會(huì)為SGA與PGA分配最小內(nèi)存大小了。oracle會(huì)根據(jù)工作負(fù)載自動(dòng)的調(diào)整SGA與PGA的大小。

六:Oracle 11g設(shè)置內(nèi)存相關(guān)參數(shù)原則:

1.如果Oracle11g要開(kāi)啟自動(dòng)內(nèi)存管理,需要設(shè)置MEMORY_TARGET的值,如果該服務(wù)器只跑Oracle,那么可以按著下面的原則設(shè)置:

MEMORY_TARGET=物理內(nèi)存 x 80%

MEMORY_MAX_SIZE=物理內(nèi)存 x 80%

2.如果不打算開(kāi)啟自動(dòng)內(nèi)存管理,也就是MEMORY_TARGET=0:

對(duì)于OLTP系統(tǒng):

SGA_TARGET=(物理內(nèi)存 x 80%) x 80%

SGA_MAX_SIZE=(物理內(nèi)存 x 80%) x 80%

PGA_AGGREGATE_TARGET=(物理內(nèi)存 x 80%) x 20%

對(duì)于DSS系統(tǒng):

SGA_TARGET=(物理內(nèi)存 x 80%) x 50%

SGA_MAX_SIZE=(物理內(nèi)存 x 80%) x 50%

PGA_AGGREGATE_TARGET=(物理內(nèi)存 x 80%) x 50%

“oracle 11g自動(dòng)內(nèi)存管理概述”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


本文題目:oracle11g自動(dòng)內(nèi)存管理概述
標(biāo)題鏈接:http://weahome.cn/article/pjdshh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部