我的oracle 9i学习日志(2)--内存结构

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

oracle内存结构包括两个区域:SGA和PGA.

SGA(system global area):

1

SGA有叫共享全局区域(shared global area)。在instance启动时被分配,用来存储数据库进程共享信息,包括数据和控制信息。主要组成包括:

       – Shared Pool 
       – Database Buffer Cache 
       – Redo Log Buffer 
       – Other structures (for example, lock and latch management, statistical data)

还有两个可选项: Large Pool, Java Pool。

下面语句可以查看SGA的分配情况:

SQL> SHOW SGA; 
Total System Global Area 36437964 bytes 
Fixed Size 6543794 bytes 
Variable Size 19521536 bytes 
Database Buffers 16777216 bytes 
Redo Buffers 73728 bytes

从9i开始,可以在不关闭instance的情况下动态调整SGA的大小,这样Database Buffer Cache, Shared Pool, 和Large Pool可以动态的调整而不需要关闭instance。

SGA的大小主要由以下几个参数决定:

SGA_MAX_SIZE:规定了SGA的最大值。

DB_CACHE_SIZE:cache标准的块大小,默认Unix 48M,NT 52M。

LOGG_BUFFER:redo log buffer的大小,单位Byte。

SHARED_POOL_SIZE, LARGE_POOL_SIZE, JAVA_POOL_SIZE。

SGA有一个分配粒度称为granule,默认大小为 4 MB如果 SGA_MAX_SIZE< 128 MB,其他情况则为 16 MB 。

The minimum SGA configuration is three granules (one granule for fixed SGA 
[includes redo buffers]; one granule for Database Buffer Cache; one granule for Shared Pool).

 

各组件介绍:

shared pool

包括library cache和data dictionary cache,分别用于存储最近执行过的编译解释后的SQL语句和最近用到的数据信息(数据字典)。

可以通过这条命令ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;动态修改SHARED_POOL_SIZE的值。

Database Buffer Cache

最大的一块内存,用于缓存从数据文件里读出的数据和被更新的数据,能有效地增强数据库服务器的性能。

可以通过下面的命令动态改变它的大小:ALTER SYSTEM SET DB_CACHE_SIZE = 96M;

Buffer Cache Advisory功能,收集统计对于不同大小的Database Buffer Cache所表现出来的性能的信息,并在V$DB_CACHE_ADVICE这个视图中列出。

The Buffer Cache Advisory is enabled via the DB_CACHE_ADVICE initialization 
parameter. It is a dynamic parameter, and can be altered using ALTER SYSTEM. Three values (OFF, ON, READY) are available. 
DB_CACHE_ADVICE Parameter Values 
OFF: Advisory is turned off and the memory for the advisory is not allocated. 
ON: Advisory is turned on and both cpu and memory overhead is incurred. 
Attempting to set the parameter to the ON state when it is in the OFF state may lead to the following error: ORA-4031 Inability to allocate from the Shared Pool when the parameter is switched to ON. If the parameter is in a READY state it can be set to ON without error because the memory is already allocated. 
READY: Advisory is turned off but the memory for the advisory remains allocated. Allocating the memory before the advisory is actually turned on will avoid the risk of ORA-4031. If the parameter is switched to this state from OFF, it is possible that an ORA-4031 will be raised.

Redo Log Buffer

记录所有的数据库数据块的改变记录,主要目的用于恢复。

每条记录被称为重做条目,重做条目包含恢复信息或改变信息(information to econstruct or redo changes)。

Large Pool

可选项,缓解shared pool的负担,用于

– Session memory (UGA) for the Shared Server 
– I/O server processes 
– Backup and restore operations or RMAN(Recovery Manager) 
– Parallel execution(并行处理) message buffers 
               PARALLEL_AUTOMATIC_TUNING set to TRUE

Java Pool

对Java的支持,如解释执行Java编写的存储过程。

Program Global Area(PGA)

PGA是一块内存区域,包含了单个server process或单个background process信息的数据和控制信息。当进程开始运行时PGA被分配,当进程结束时PGA被回收。与共享方式的SGA相对比,PGA是一个进程一块内存。注意:oracle的server process和background process是严格区分的。










本文转自 d185740815 51CTO博客,原文链接:http://blog.51cto.com/luotaoyang/277173,如需转载请自行联系原作者
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
22天前
|
存储 人工智能 搜索推荐
一种专为AI代理设计的内存层,能够在交互过程中记忆、学习和进化
Mem0 是专为 AI 代理设计的内存层,支持记忆、学习与进化。提供多种记忆类型,可快速集成,适用于开源与托管场景,助力 AI 代理高效交互与成长。
243 123
一种专为AI代理设计的内存层,能够在交互过程中记忆、学习和进化
|
5月前
|
Arthas 存储 算法
深入理解JVM,包含字节码文件,内存结构,垃圾回收,类的声明周期,类加载器
JVM全称是Java Virtual Machine-Java虚拟机JVM作用:本质上是一个运行在计算机上的程序,职责是运行Java字节码文件,编译为机器码交由计算机运行类的生命周期概述:类的生命周期描述了一个类加载,使用,卸载的整个过类的生命周期阶段:类的声明周期主要分为五个阶段:加载->连接->初始化->使用->卸载,其中连接中分为三个小阶段验证->准备->解析类加载器的定义:JVM提供类加载器给Java程序去获取类和接口字节码数据类加载器的作用:类加载器接受字节码文件。
464 55
|
6月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
7月前
|
SQL 存储 缓存
【赵渝强老师】达梦数据库的内存结构
本文介绍了达梦数据库管理系统的内存结构,包括内存池、缓冲区、排序区和哈希区。内存池分为共享内存池和运行时内存池,能够提高内存申请与释放效率,并便于监控内存使用情况。缓冲区涵盖数据缓冲区、日志缓冲区、字典缓冲区和SQL缓冲区,用于优化数据读写和查询性能。排序区和哈希区分别提供排序和哈希连接所需的内存空间,通过合理配置参数可提升系统效率。文内附有具体配置示例及视频讲解,帮助用户深入理解达梦数据库的内存管理机制。
169 0
|
9月前
|
监控 Oracle 关系型数据库
Mysql、Oracle审计日志的开启
通过上述步骤,可以在 MySQL 和 Oracle 数据库中启用和配置审计日志。这些日志对于监控数据库操作、提高安全性和满足合规性要求非常重要。确保正确配置审计参数和策略,定期查看和分析审计日志,有助于及时发现并处理潜在的安全问题。
490 11
|
11月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
246 1
【赵渝强老师】Oracle的控制文件与归档日志文件
|
12月前
|
缓存 算法 Java
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
这篇文章详细介绍了Java虚拟机(JVM)中的垃圾回收机制,包括垃圾的定义、垃圾回收算法、堆内存的逻辑分区、对象的内存分配和回收过程,以及不同垃圾回收器的工作原理和参数设置。
533 4
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
|
11月前
|
Java
JVM运行时数据区(内存结构)
1)虚拟机栈:每次调用方法都会在虚拟机栈中产生一个栈帧,每个栈帧中都有方法的参数、局部变量、方法出口等信息,方法执行完毕后释放栈帧 (2)本地方法栈:为native修饰的本地方法提供的空间,在HotSpot中与虚拟机合二为一 (3)程序计数器:保存指令执行的地址,方便线程切回后能继续执行代码
147 3
|
11月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
237 1
|
12月前
|
存储 算法 Java
聊聊jvm的内存结构, 以及各种结构的作用
【10月更文挑战第27天】JVM(Java虚拟机)的内存结构主要包括程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区和运行时常量池。各部分协同工作,为Java程序提供高效稳定的内存管理和运行环境,确保程序的正常执行、数据存储和资源利用。
329 10

推荐镜像

更多