我的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实时生图绘板
目录
相关文章
|
2月前
|
存储 人工智能 搜索推荐
一种专为AI代理设计的内存层,能够在交互过程中记忆、学习和进化
Mem0 是专为 AI 代理设计的内存层,支持记忆、学习与进化。提供多种记忆类型,可快速集成,适用于开源与托管场景,助力 AI 代理高效交互与成长。
399 123
一种专为AI代理设计的内存层,能够在交互过程中记忆、学习和进化
|
7月前
|
调度
FreeRTOS学习日志 - 第一天
这就是我的FreeRTOS学习日志 - 第一天的内容,明天继续探索这片实时操作系统的广阔海洋。+
149 12
|
缓存 算法 Java
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
这篇文章详细介绍了Java虚拟机(JVM)中的垃圾回收机制,包括垃圾的定义、垃圾回收算法、堆内存的逻辑分区、对象的内存分配和回收过程,以及不同垃圾回收器的工作原理和参数设置。
718 4
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
1315 3
|
Oracle 关系型数据库 网络安全
Oracle 19c 安装教程学习
Oracle 19c 安装教程学习
1757 2
|
存储 Java
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
这篇文章详细地介绍了Java对象的创建过程、内存布局、对象头的MarkWord、对象的定位方式以及对象的分配策略,并深入探讨了happens-before原则以确保多线程环境下的正确同步。
219 0
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle的物理存储结构
Oracle的物理存储结构包括数据文件、联机重做日志文件、控制文件、归档日志文件、参数文件、告警日志文件、跟踪文件和备份文件。这些文件在硬盘上存储数据库的各种数据和日志信息,确保数据库的正常运行和故障恢复。视频讲解和详细说明见原文。
194 0
|
Python
log日志学习
【10月更文挑战第9天】 python处理log打印模块log的使用和介绍
306 0
|
4月前
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
1582 0
|
4月前
|
存储 缓存 NoSQL
内存管理基础:数据结构的存储方式
数据结构在内存中的存储方式主要包括连续存储、链式存储、索引存储和散列存储。连续存储如数组,数据元素按顺序连续存放,访问速度快但扩展性差;链式存储如链表,通过指针连接分散的节点,便于插入删除但访问效率低;索引存储通过索引表提高查找效率,常用于数据库系统;散列存储如哈希表,通过哈希函数实现快速存取,但需处理冲突。不同场景下应根据访问模式、数据规模和操作频率选择合适的存储结构,甚至结合多种方式以达到最优性能。掌握这些存储机制是构建高效程序和理解高级数据结构的基础。
466 1

热门文章

最新文章

推荐镜像

更多
下一篇
oss云网关配置