Oracle 11G R2的内存管理

基本知识点

基本的内存结构:SGA+PGA+UGA+Software code area(软件代码区)

了解SGA内存的组件与一些常用的功能

了解oracle 11G地自动内存管理功能

具体介绍

oracle数据库实例是由一些列的系统全局区域与后台进程组成。

一个客户端访问数据库的方式是客户端进程---->Program global are----->Database buffer cache,同时在Redo log buffer重写一份

oracle 内存管理的方式:自动内存管理与手动内存管理,本文主要讲解自动内存管理(Automatic memory management AMM)

1. Oracle 11G启动自动内存管理功能

对于oracle 11G,启用内存自动管理功能,就是保证memory_target参数不为0。对于通过DBCA创建数据库,使用默认方式安装,默认已经启动自动内存管理功能,设置memory_target参数大小是总内存大小的40%

2. 了解SGA 重要组件

比较重要的SGA组件

2 数据库缓存

2 重做日志缓存

2 共享池

2 大池

2 JAVA池

2 流池

2 固定的SGA

数据库缓存池(Database buffer cache)也叫缓冲池,是内存区域存放从数据文件读取的一份备份。缓冲池是主内存地址通过缓冲管理器存放了临时缓存的当前的或最近使用的数据块。所有当前连接到数据库实例的用户共享这个缓冲池。

使用数据库缓冲池的目的是:

? 优化物理的I/O

? 保持频繁的访问缓冲区的数据库,减少到磁盘的块操作,从而增大访问速度

数据库缓存池中一些术语:

Buffer 状态(Buffer state

Unused:没有使用过的空间

Clean:以前使用过的空间,标记为clean后,可以再次使用,允许重写

Dirty:需要写入磁盘的数据

Buffer mode

Current mode

Consistent Mode

Logical I/O 也叫buffer I/O,就是直接从缓存中读取I/O

Physical I/O, 从物理磁盘读取的I/O

Buffer Write:DBWn进程周期的将胀数据写入磁盘,发生写入磁盘的条件就是

服务器进程为了读入一个新块到缓存中而找不到空闲缓存

Buffer Reads

Buffer cache hit ration(缓存命中率):在缓存中读取到数据块与读到总的数据块(包括从缓存与磁盘中读取数据块)的比值

Buffers and full table scan

重做日志缓存:重做日志缓存就是SGA区域的一个存放改变数据库的重做实体(比如sql语句)的循环缓存。重建实体包括重建,重做的DML/DDL操作

共享池(Shared Pool:共享池缓存各种类型的程序数据,比如说pl/sql语句,系统参数与数据字典信息

大池:它是一个可选的内存分配区域,它是一个辅助的缓存区域。

Java池: 他是一个内存区域存放所有关于jave代码的会话,也就是管理java连接的一个内存区域

Stream :关于流连接分配的一个内存区域

Fixed SGA: 内部保留的区域,它描述了数据库与实例状态的信息等等。

应用举例

1. 查看是否启用oracle内存自动管理功能

memory_target为非0,启用此内存自动管理功能

SQL> show parameter memory

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

hi_shared_memory_address integer 0

memory_max_target big integer 1232M

memory_target big integer 1232M

shared_memory_address integer 0

2. 修改memory_target大小

比如说我们增加了内存,oracle数据库并不会自动增加memory_target大小,所以需要手动修改。理解memory_target是一个会自动更新的参数,它可以不需要重启就能生效,而memory_max_target参数需要重启而生效。memory_max_target跟随memory_target 参数。

******************************************************************************

SQL> alter system set memory_target=1230M #默认scope=both,所以没有写

2 ;

System altered.

SQL> show parameter memory

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

hi_shared_memory_address integer 0

memory_max_target big integer 1248M

memory_target big integer 1232M

shared_memory_address integer 0

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 1286066176 bytes

Fixed Size 2254864 bytes

Variable Size 754976752 bytes

Database Buffers 520093696 bytes

Redo Buffers 8740864 bytes

Database mounted.

Database opened.

SQL> show parameter memory;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

hi_shared_memory_address integer 0

memory_max_target big integer 1232M

memory_target big integer 1232M

shared_memory_address integer 0

SQL>

*******************************************************************************

3. 查看SGA大小分配

在启动数据库与查看V$SGA视图,都可以查看数据库缓存区与重做日志缓存区分配的内存大小。

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 1286066176 bytes

Fixed Size 2254864 bytes

Variable Size 805308400 bytes

Database Buffers 469762048 bytes

Redo Buffers 8740864 bytes

Database mounted.

Database opened.

SQL> select * from v$sga;

NAME VALUE

-------------------- ----------

Fixed Size 2254864

Variable Size 805308400

Database Buffers 469762048

Redo Buffers 8740864

SQL>

4. 查看V$SGASTAT与V$PGASTAT信息

***************************************************************************

SQL> select pool, sum(Bytes) as Pool_Size from v$sgastat group by pool;

POOL POOL_SIZE

------------ ----------

531089424

java pool 16777216

shared pool 201326592

large pool 16777216

SQL> select * from v$pgastat;

NAME VALUE UNIT

------------------------------ ---------- ------------

aggregate PGA target parameter 520093696 bytes

aggregate PGA auto target 436313088 bytes

global memory bound 104017920 bytes

total PGA inuse 35298304 bytes

total PGA allocated 53518336 bytes

maximum PGA allocated 54173696 bytes

total freeable PGA memory 12845056 bytes

process count 28

max processes count 28

PGA memory freed back to OS 9043968 bytes

total PGA used for auto workar 0 bytes

NAME VALUE UNIT

------------------------------ ---------- ------------

eas

maximum PGA used for auto work 0 bytes

areas

total PGA used for manual work 0 bytes

areas

maximum PGA used for manual wo 0 bytes

rkareas

NAME VALUE UNIT

------------------------------ ---------- ------------

over allocation count 0

bytes processed 12819456 bytes

extra bytes read/written 0 bytes

cache hit percentage 100 percent

recompute count (total) 309

19 rows selected.

SQL>

*******************************************************************************

时间: 2024-10-25 15:15:40

Oracle 11G R2的内存管理的相关文章

Oracle 11g R2 配置管理

Oracle 11g R2网络侦听器实验   单实例环境(不是RAC),侦听器和实例必须要在同一台机器上.两台机器通信必须使用一个网络协议才能进行通信,假如浏览网页需要使用http协议,远程连接需要使用RDP/ssh/telnet等等. 有一台oracle服务器,有个客户端要连接到oracle服务器上,两台机器通信就要使用oracleNET协议,和以上的协议是一样的.有协议就要有相应的端口,所以oracleNET有个默认的侦听端口1521. 其实配置oracle网络就是配置oracle侦听器,侦

vCenter Server 5.5配置独立Oracle 11g R2数据库

1.  环境清单 服务器 操作系统 应用软件 vCenter  Server服务器 Windows  Server 2008R2-64bit vSphere  5.5 DB服务器 CentOS  7.1-64bit Oracle  11g r2 2.  安装Oracle 11g R2 在Centos7.1中安装Oracle 11g R2的过程不是本文档主讲内容,顾忽略. 3.  为vCenter Server创建数据库 登入DB服务器(确保centos 7已启用图形界面) 鼠标右键选择打开命令行

Redhat Enterprise 5.4下安装配置Oracle 11g R2详细过程

1.Linux环境配置准备 环境:Linux:Redhat Enterprise 5.4,DB:Oracle 11g R2 X64,Oracle安装到/home/oralce_11目录下. 配置过程如下:(大部分是网上的内容,个人也是按照网上步骤来的) 1) 检查基本需求(对于牛逼的服务器来说,这个肯定是满足要求的,可以跳过)内存大小grep MemTotal /proc/meminfo交换分区大小grep SwapTotal /proc/meminfo增加交换分区创建/home/swap这么一

RedHat 6.4 Enterprise x64环境下使用RHCS部署Oracle 11g R2双机HA

环境 软硬件环境 硬件环境: 浪潮英信服务器NF570M3两台,华为OceanStor 18500存储一台,以太网交换机两台,光纤交换机两台. 软件环境: 操作系统:Redhat Enterprise Linux 6.7 x64 集群环境:RHCS 数据库:Oracle 11g R2 多路径软件:UltraPath for Linux 存储划分 类型 卷 大小 挂载点 用途 备注 内置硬盘 标准 500MB /boot 启动分区 两块内置硬盘作RAID1 LVM 20GB /home 用户分区

Oracle 11g R2 体系结构

 Oracle 11g R2体系结构 安装oracle软件----创建数据库----在数据库中创建表----表里存储信息---这些表文件需要存储在物理硬盘上面. 假如有一个用户(这个用户可以是远程用户,也可以是本地的,也可以是一个应用程序)连接到oracle数据库上面,用户是不能直接连接在硬盘上存储的数据文件,所以在oracle中要运行一个实例,实例并不是保存在硬盘上面的,实例是内存的一部分,而库和表文件是存放在硬盘上面的,用户不能直接访问库里面的数据,只能访问实例,实例是一个特殊的内存块,只有

Oracle 11g R2 备份与恢复

Oracle 11g R2 Rman备份 1. 备份与恢复的定义及分类 备份的定义及分类: 备份就是把数据库复制到转储设备的过程.其中,转储设备是指用于放置数据库副本的磁带或磁盘.通常也将存放于转储设备中的数据库的副本称为原数据库的备份或转储.备份是一份数据副本,从不同的角度分类如下: 从物理与逻辑的角度来分类: 从物理与逻辑的,备份可以分为物理备份和逻辑备份. 物理备份:对数据库操作系统的物理文件(数据文件,控制文件和日志文件)的备份.物理备份又可以分为脱机备份(冷备份)和联机备份(热备份),

Oracle 11g R2 for Win7旗舰版(64位)的安装步骤

数据库有好多版本,我应该学习哪个? 万物一理,数据库的版本虽然多,本质是一样的,变化的只是表象,你是oracle7的专家,一定也是oracle11g的专家.Oracle数据库越来越受欢迎,下面介绍一下Oracle 11g R2 for Win7旗舰版(64位)的安装步骤: 1. 下载Oracle 11g R2 for Windows的版本 下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/in

CentOS6安装 Oracle 11g R2

选型:32位的内存是个瓶颈,已经是64位的时代了.使用64位的CentOS6 和 64位的Oracle 11g R2在虚拟机器安装,采用hostonly方式设置网络注意:能上网的网卡要设置一下ICS(Internet连接共享)给VMware Network Adapter VMnet1这样对于虚拟机,网关是192.168.137.1,IP地址请也要设置在192.168.137.0/24段硬盘40G,内存2G 1.下载软件1.1.CentOS 6(x86_64)http://mirrors.163

Oracle 11g R2安装手册(图文教程)For Windows

1.Oracle 11g R2安装手册(图文教程)For Windows 1.下载Oracle 11g R2 for Windows版本,下载地址如下 官方网站: http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_1of2.zip http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_2of2.zip 2.解压两个