热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

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

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

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 = integer [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 inpidual 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.

推荐阅读
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • Windows2003 IIS上设置301定向,实现不带www域名跳转带www域名的方法
    打开IIS,建一个网站,主机头用不带www的域名,随便指向一个目录。然后在这个网站上点右键,属性--主目录--重定向到URL如图ÿ ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • macOS10.12安装win10系统教程,实现双系统安装
    本文介绍了如何在macOS10.12系统上安装win10系统,实现双系统的安装。通过使用Boot Camp助理,选取win10系统镜像并分配系统容量,然后进行安装。安装完win10系统后,安装驱动并重启系统即可完成双系统的安装。 ... [详细]
author-avatar
yixianliu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有