搜尋
首頁資料庫mysql教程oracle三对内存参数间关系之5AMM启动和关闭两种情况下pga自动管

oracle三对内存参数间关系之4 AMM 启动和关闭两种情况下 pga_aggregate_target和workarea_size_policy参数间的关系 引言: 在AMM关闭时(即memory_target=0),如果设置workarea_size_policy='AUTO‘,才是启动了 pga自动管理机制(程序),此时 pga_aggrega

oracle三对内存参数间关系之4AMM启动和关闭两种情况下

pga_aggregate_target和workarea_size_policy参数间的关系




引言:

在AMM关闭时(即memory_target=0),如果设置workarea_size_policy='AUTO‘,才是启动了pga自动管理机制(程序),此时pga_aggregate_target为各个oracle进程的pga之和的最大值(确切地说,各个oracle进程的pga之和围绕着pga_aggregate_target上下浮动,如何证明这点?说法来源于PGA自动管理原理深入分析及性能调整),


pga自动管理机制启动与否不决定于pga_aggregate_target值


在AMM启动时(即memory_target=非0),即使设置workarea_size_policy='AUTO‘,也没有启动pga自动管理机制(程序)此时pga_aggregate_target为各个oracle进程的pga之和的最小值而已。

也就是说memory_target=0时即AMM启动时,无论workarea_size_policy为manual还是auto,pga自动管理机制皆启动不了





一、

在memory_target=非0即AMM启动的情况下

详见:

AMM启动下,pga_aggregate_target和workarea_size_policy各自无论如何修改,都不会影响对方的值

结论:

1、AMM启动下,

pga_aggregate_target和workarea_size_policy各自无论如何修改,都不会影响对方的值.

因为AMM启动时,pga自动管理机制处于关闭状态,故而pga_aggregate_target和workarea_size_policy参数间不存在任何关系,是相互独立的变量.



2、memory_target=0时即AMM启动时,pga_aggregate_target  可以设置为0。




二、

在memory_target=0即AMM关闭的情况下

2.1实例启动前的参数文件里

2.1.1pga_aggregate_target=非0时,无论workarea_size_policy为什么值,实例都可以启动成功。

2.1.2当pga_aggregate_target =0,且workarea_size_policy=auto时,实例启动不成功


下面是具体的实验:

(参数文件里workarea_size_policy=auto,memory_target=0memory_max_target=1400Mpga_aggregate_target 0还有,sga_max_size=0,sga_target=0

SQL> startup pfile=E:\app\hc\product\11.2.0\dbhome_1\database\INITmonkey.ORA

ORA-04032: pga_aggregate_targetmust be set before switching to auto mode

ORA-01078: 处理系统参数失败


2.1.3当pga_aggregate_target =0,且workarea_size_policy=MANUAL时,实例启动成功


下面是具体的实验:

(参数文件里memory_target=0memory_max_target=1400Mpga_aggregate_target 0workarea_size_policy=manual还有,sga_max_size=0,sga_target=0

可以启动实例

SQL> select name,value from  v$parameter where name like '%target%' orname like

 '%sga%';

 

NAME                                              VALUE

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

 sga_max_size                         150994944

 

pre_page_sga                           FALSE

 

lock_sga                                     FALSE

 

sga_target                                 0

 

memory_target                        0

 

memory_max_target             1468006400

 

archive_lag_target                   0

 

fast_start_io_target                  0

 

fast_start_mttr_target              0

 

db_flashback_retention_target           1440

 

pga_aggregate_target            0

 

parallel_servers_target            32

 

已选择12行。


注释:

参数文件里pga_aggregate_target  为0workarea_size_policy=manual

启动实例时,若是以网络连接方式(sqlplus @ip:服务名)连接到该实例的话,提示ora-12518错误,因为pga内存太小设置。


参见:解决ORA-12518的办法



2.2实例运行期间


2.2.1实例运行期间,pga_aggregate_target 不能允许设置为0

实验:

实例运行期间(参数文件里memory_target=0memory_max_target=1400Mpga_aggregate_target=100Mworkarea_size_policy=manual还有,sga_max_size=500M,sga_target=0


SQL>alter system set workarea_size_policy=manual;

 

系统已更改。

 

SQL>alter system set pga_aggregate_target=0;

altersystem set pga_aggregate_target=0

*

第 1 行出现错误:

ORA-02097:无法修改参数, 因为指定的值无效

ORA-00093:pga_aggregate_target 必须介于 10M 和 4096G-1 之间

SQL>alter system set workarea_size_policy=auto;

 

系统已更改。

 

SQL>alter system set pga_aggregate_target=0;

altersystem set pga_aggregate_target=0

*

第 1 行出现错误:

ORA-02097:无法修改参数, 因为指定的值无效

ORA-00093:pga_aggregate_target 必须介于 10M 和 4096G-1 之间

 

 上述实验说明,memory_target=0时即AMM关闭时,实例运行期间无论workarea_size_policy为manual还是auto,pga_aggregate_target 不能允许设置为0。

 

workarea_size_policy为 MANUAL时

pga_aggregate_target  可以为0也可以为非0,因为此时pga_aggregate_target (对应的pga自动管理机制) 不起作用。


结合2.2.1和2.1.32.1.3,可以得出如下结论:

memory_target=0时即AMM关闭时,无论workarea_size_policy为manual还是auto,pga_aggregate_target  都不能允许设置为0。除了实例以workarea_size_policy=manual启动实例时可以在参数文件里pga_aggregate_target 可以设置为0,实例启动后显示的pga_aggregate_target的值为0


而由一大点里的结论2可知,memory_target=0时即AMM启动时,pga_aggregate_target  可以设置为0。

简单地说,就是

memory_target=0即手动管理时,在实例运行期间,pga_aggregate_target不能改为0,而memory_target=非0即自动管理时,在实例运行期间,pga_aggregate_target可以改为0。


2.2.2实例运行期间,当pga_aggregate_target=0时将workarea_size_policy从manual修改为auto是修改不了的


参数A不变时,参数B改变值可否  的例子】

 

参数文件:

*.memory_max_target=700M

*.memory_target=0

*.pga_aggregate_target=0

*.sga_max_size=500M

*.sga_target=500M

*.workarea_size_policy='MANUAL'

 

Microsoft Windows [版本 6.1.7600]

 

C:\Windows\System32>set oracle_sid=monkey

 

C:\Windows\System32>sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期五 12月 5 09:26:532014

 

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

 

已连接到空闲例程。

 

SQL> startuppfile=E:\app\hc\product\11.2.0\dbhome_1\database\INITmonkey.ORA

ORACLE 例程已经启动。

 

Total System Global Area  523108352 bytes

Fixed Size                  1375704 bytes

Variable Size             159384104 bytes

Database Buffers          356515840 bytes

Redo Buffers                5832704 bytes

数据库装载完毕。

数据库已经打开。

SQL> show parameters pga

 

NAME                                 TYPE        VALUE

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

pga_aggregate_target                big integer 0

SQL> show parameters policy

 

NAME                                 TYPE        VALUE

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

parallel_degree_policy               string      MANUAL

workarea_size_policy                 string      MANUAL

SQL> alter system set workarea_size_policy=auto;

alter system set workarea_size_policy=auto

*

第 1 行出现错误:

ORA-02097: 无法修改参数, 因为指定的值无效

ORA-04032: pga_aggregate_target必须在切换到自动模式之前进行设置

 

之所以出现ORA-04032提示,是因为workarea_size_policy=auto即自动模式时,参数workarea_size_policy是不允许pga_aggregate_target为0,所以当pga_aggregate_target为0,workarea_size_policy=MANUAL 时想要将workarea_size_policy修改为 auto,则必须先将pga_aggregate_target修改为非0。



 结合2.2.2和2.1.2,可以得出结论:

workarea_size_policy=auto即自动模式时,参数workarea_size_policy是不允许(workarea_size_policy=auto的同时,pga_aggregate_target为0。


2.2.3 pga_aggregate_target0改到非0, workarea_size_policy会从MANUAL变为auto.

(Setting PGA_AGGREGATE_TARGET to a nonzero value has the effect of automatically setting theWORKAREA_SIZE_POLICY parameter toAUTO.)

参数A改变值,参数B是否会跟着变  的例子】

参数文件:

*.memory_max_target=700M

*.memory_target=0

*.pga_aggregate_target=0

*.workarea_size_policy='MANUAL'

*.sga_max_size=500M

*.sga_target=500M

 

SQL> startup pfile=E:\app\hc\product\11.2.0\dbhome_1\database\INITmonkey.ORA

ORACLE 例程已经启动。

 

Total SystemGlobal Area  523108352 bytes

Fixed Size                  1375704 bytes

Variable Size             159384104 bytes

Database Buffers          356515840 bytes

Redo Buffers                5832704 bytes

数据库装载完毕。

数据库已经打开。

SQL> show parameters policy

 

NAME                                 TYPE        VALUE

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

parallel_degree_policy               string      MANUAL

workarea_size_policy                string      MANUAL

SQL> show parameters pga

 

NAME                                 TYPE        VALUE

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

pga_aggregate_target                big integer 0

SQL> show parameters mem

 

NAME                                 TYPE        VALUE

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

hi_shared_memory_address             integer     0

memory_max_target                    big integer 700M

memory_target                        big integer 0

shared_memory_address                integer     0

SQL> alter system set pga_aggregate_target=100m;

 

系统已更改。

 

SQL> showparameters policy

 

NAME                                 TYPE        VALUE

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

parallel_degree_policy               string      MANUAL

workarea_size_policy                string      AUTO

SQL>


注释:

由于memory_target=0时即AMM关闭时,实例运行期间,无论workarea_size_policy为manual还是auto,pga_aggregate_target  都不能允许设置为0,所以说oracle官方文档里说的关于“Setting PGA_AGGREGATE_TARGET to 0 automatically sets theWORKAREA_SIZE_POLICY parameter toMANUAL这种情况就是错误的,不可实现的。

参见:http://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams193.htm#CHDBJCDE


附加:

PGA_AGGREGATE_TARGET

Property Description
Parameter type Big integer
Syntax PGA_AGGREGATE_TARGET = <span>integer</span> [K | M | G]
Default value 10 MB or 20% of the size of the SGA, whichever is greater
Modifiable ALTER SYSTEM
Range of values Minimum: 10 MB

Maximum: 4096 GB - 1

Basic Yes

PGA_AGGREGATE_TARGET specifies the target aggregate PGA memory available to all server processes attached to the instance.

Setting PGA_AGGREGATE_TARGET to a nonzero value has the effect of automatically setting the WORKAREA_SIZE_POLICY parameter to AUTO. This means that SQL working areas used by memory-intensive SQL operators (such as sort, group-by, hash-join, bitmap merge, and bitmap create) will be automatically sized. A nonzero value for this parameter is the default since, unless you specify otherwise, Oracle sets it to 20% of the SGA or 10 MB, whichever is greater.

Setting PGA_AGGREGATE_TARGET to 0 automatically sets the WORKAREA_SIZE_POLICY parameter to MANUAL. This means that SQL workareas are sized using the *_AREA_SIZE parameters.

Oracle attempts to keep the amount of private memory below the target specified by this parameter by adapting the size of the work areas to private memory. When increasing the value of this parameter, you indirectly increase the memory allotted to work areas. Consequently, more memory-intensive operations are able to run fully in memory and less will work their way over to disk.

If Automatic Memory Management is enabled (MEMORY_TARGET is set to a positive value) and PGA_AGGREGATE_TARGET is also set to a positive value, the PGA_AGGREGATE_TARGET value acts as the minimum value for the size of the instance PGA.

WORKAREA_SIZE_POLICY

Property Description
Parameter type String
Syntax WORKAREA_SIZE_POLICY = { AUTO | MANUAL }
Default value AUTO
Modifiable ALTER SESSION, ALTER SYSTEM

WORKAREA_SIZE_POLICY specifies the policy for sizing work areas. This parameter controls the mode in which working areas are tuned.

Values:

  • AUTO

    Work areas used by memory-intensive operators are sized automatically, based on the PGA memory used by the system, the target PGA memory set in PGA_AGGREGATE_TARGET, and the requirement of each individual operator.

  • MANUAL

    The sizing of work areas is manual and based on the values of the *_AREA_SIZE parameter corresponding to the operation (for example, a sort uses SORT_AREA_SIZE). Specifying MANUAL may result in sub-optimal performance and poor PGA memory utilization.



===========================================================


实例运行时参数间关系的两种模式:

参数A不变时,参数B改变值可否

参数A改变值,参数B是否会跟着变。


pga_aggregate_target 为0

实例运行期间当pga_aggregate_target=0时将workarea_size_policy从manual修改为auto是修改不了的(在memory_target=0即AMM关闭的情况下)


pga_aggregate_target0改到非0, workarea_size_policy会从MANUAL变为auto.


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
什么是oracle asm什么是oracle asmApr 18, 2022 pm 04:16 PM

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

oracle怎么查询所有索引oracle怎么查询所有索引May 13, 2022 pm 05:23 PM

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

Oracle怎么查询端口号Oracle怎么查询端口号May 13, 2022 am 10:10 AM

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

oracle全角怎么转半角oracle全角怎么转半角May 13, 2022 pm 03:21 PM

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

oracle怎么删除sequenceoracle怎么删除sequenceMay 13, 2022 pm 03:35 PM

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

oracle怎么查询数据类型oracle怎么查询数据类型May 13, 2022 pm 04:19 PM

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

oracle查询怎么不区分大小写oracle查询怎么不区分大小写May 10, 2022 pm 05:45 PM

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

Oracle怎么修改sessionOracle怎么修改sessionMay 13, 2022 pm 05:06 PM

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),