当前位置: 首页 > article >正文

Oracle 19c修改pga报ORA-00093、ORA-01078错进行分析处理

在同事修改Oracle数据库的pga时,出现了如下错误:
计划修改值:
alter system set pga_aggregate_limit=40G scope=spfile sid='*';
alter system set pga_aggregate_target=20G scope=spfile sid='*';

SQL> shu immediate 

Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> SQL> 
SQL> startup
ORA-00093: pga_aggregate_limit must be between 64000M and 100000G
ORA-01078: failure in processing system parameters

根据报错提示,pga_aggregate_limt至少要64000M,而实际设置大小为40G,所以导致实例启动失败。
在RAC的另一个节点,重新设置pga_aggregate_limt大小为80G:
alter system set pga_aggregate_limit=80G scope=spfile sid='*';

设置完成后可以正常启动实例。
SQL> startup
ORACLE instance started.

Total System Global Area 1.9327E+11 bytes
Fixed Size                 37484576 bytes
Variable Size            3.0065E+10 bytes
Database Buffers         1.6267E+11 bytes
Redo Buffers              499384320 bytes
Database mounted.
Database opened.


PGA参数设置关系:
        PGA_AGGREGATE_LIMIT与PGA_AGGREGATE_TARGET是Oracle数据库中与进程全局区(PGA)内存管理相关的两个重要参数。
以下是对这两个参数及其设置关系的详细解释:
1、PGA_AGGREGATE_TARGET
        PGA_AGGREGATE_TARGET是一个初始化参数,用于指定Oracle数据库在自动PGA内存管理模式下,尝试分配给SQL工作区的PGA内存的目标值。该参数起到的是一个目标值的作用,而非硬性限制。Oracle数据库会根据实际工作负载和内存使用情况,动态地调整分配给SQL工作区的PGA内存量,以尝试达到这个目标值。

        如果PGA_AGGREGATE_TARGET未设置,则自动PGA管理不会启动。其默认值通常是10MB与SGA的20%中的较大者。DBA可以通过ALTER SYSTEM命令来设置或修改这个参数。
2、PGA_AGGREGATE_LIMIT
        PGA_AGGREGATE_LIMIT是Oracle 12c引入的一个新参数,用于限制数据库实例可以使用的PGA内存总量的硬性上限,当PGA内存使用量超过这个限制时,Oracle数据库会按照一定顺序中断或终止使用了最多不可优化PGA内存的会话或进程,以确保系统的稳定性和响应性。

        PGA_AGGREGATE_LIMIT的默认值会根据Oracle数据库的版本和内存配置的不同而有所差异。例如,在Oracle 12.1版本中,其默认值为2GB或PGA_AGGREGATE_TARGET的200%(以较大者为准),并且不会超过物理内存大小减去总SGA大小的120%。

        在Oracle 12.2及更高版本中,如果设置了MEMORY_TARGET,则PGA_AGGREGATE_LIMIT默认值为 MEMORY_MAX_TARGET;如果未设置MEMORY_TARGET,则默认为PGA_AGGREGATE_TARGET的200%或90%的物理内存减去SGA的大小(以较大者为准)。DBA同样可以通过ALTER SYSTEM命令来设置或修改这个参数。
3、设置关系
        PGA_AGGREGATE_TARGET应小于PGA_AGGREGATE_LIMIT。为了确保Oracle数据库在自动PGA内存管理模式下能够稳定运行,并避免内存使用过量导致系统不稳定或无法响应的情况,DBA在设置这两个参数时,应确保PGA_AGGREGATE_TARGET的值小于PGA_AGGREGATE_LIMIT的值。
        PGA_AGGREGATE_LIMIT和PGA_AGGREGATE_TARGET都是可以动态设置的参数,无需数据库重新启动即可生效。这允许DBA根据数据库的实际工作负载和内存使用情况,灵活地调整这两个参数的值。
        综上所述,PGA_AGGREGATE_LIMIT和PGA_AGGREGATE_TARGET是Oracle数据库中与PGA内存管理紧密相关的两个参数。它们共同决定了数据库实例可以使用的PGA内存量的上限和目标值。DBA在设置这两个参数时,应根据数据库的实际需求和内存配置进行合理配置和调整。


http://www.kler.cn/a/401101.html

相关文章:

  • ### 哋它亢在5G基站中的应用:新兴技术与未来通信的融合
  • 京东 2025届秋招 自然语言处理
  • React Native 全栈开发实战班 - 数据管理与状态之Zustand应用
  • MySQL的编程语言
  • HuggingFace:基于YOLOv8的人脸检测模型
  • ReactPress与WordPress:一场内容管理系统的较量
  • 美国人工智能国家安全备忘录核心解读(上)
  • DimensionX:单图生成任意的3d/4d视图
  • 3. 用Ruby on Rails创建一个在线商城
  • Ruby编程语言全景解析:从基础到进阶
  • linux中如何退出python
  • excel打开csv文件乱码的问题
  • 毛选阅读第一卷
  • 1Panel 推送 SSL 证书到阿里云、腾讯云
  • Spring Boot汽车资讯:科技与速度的新境界
  • 【LeetCode 题】只出现一次的数字--其余数字都出现3次
  • 打通 Dify 和 ComfyUI 的绘画尝试
  • 未来汽车新变革,智能表面浮出水面
  • 确保PyTorch在系统中正确使用CUDA的全面指南
  • Redis知识点整理 - 脑图
  • linux安装好用的第三方中文输入法
  • Xss挑战(跨脚本攻击)
  • jdk下载及配置(java环境)
  • 爱诗科技PixVerse文生视频、图生视频技术服务全球开放
  • 【企业级分布式系统】ZooKeeper集群
  • CSS Modules在框架中的使用