我的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,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
存储 算法 Java
聊聊jvm的内存结构, 以及各种结构的作用
【10月更文挑战第27天】JVM(Java虚拟机)的内存结构主要包括程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区和运行时常量池。各部分协同工作,为Java程序提供高效稳定的内存管理和运行环境,确保程序的正常执行、数据存储和资源利用。
50 10
|
1月前
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
47 3
|
1月前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
25 3
|
1月前
|
数据采集 监控 Java
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
本文是关于SpringBoot日志的详细教程,涵盖日志的定义、用途、SLF4J框架的使用、日志级别、持久化、文件分割及格式配置等内容。
158 0
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
|
2月前
|
Kubernetes API Docker
跟着iLogtail学习容器运行时与K8s下日志采集方案
iLogtail 作为开源可观测数据采集器,对 Kubernetes 环境下日志采集有着非常好的支持,本文跟随 iLogtail 的脚步,了解容器运行时与 K8s 下日志数据采集原理。
|
1月前
|
Python
log日志学习
【10月更文挑战第9天】 python处理log打印模块log的使用和介绍
35 0
|
19天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
156 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
1月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
245 3
|
3月前
|
Kubernetes Ubuntu Windows
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
136 3
|
1月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1645 14

推荐镜像

更多
下一篇
无影云桌面