oracle 内存体系结构

1. 版本相关概念

11g “g” :stands for Grid 命名概念

Oracle 8i 9i (Internet)
Oracle 10g 11g (grid)
Oracle 12c 13c 18c (cloud)
  • i - 就是Internet了
  • grid - 格⼦,⽽放在计算机专业词汇⾥⾯就是⽹格计算
    ⽹格计算就是统⼀的把⽹络上各计算机的各种资源整合起来,虚拟成⼀个⼤的资源池,跟据各种的请求动态的分配计算机资源,消除资源的冗余以及资源利⽤程度不够的现象,达到申请与分配的均衡点。
  • c - 就是cloud的云计算;

2. 什么是Oracle数据库

  1. Oracle DataBase是⼀款关系型数据库管理系统,同类的产品还有MySQL,SQLServer等。

  2. 我们会把那个承载我们核⼼数据的系统笼统地成为数据库服务器。
    严格意义上来讲Oracle DataBase是由两个部分组成;
    实例+数据库=数据库服务(oracle server)
    实例:Oracle instance:⼀组后台进程和内存结构
    数据库:Oracle database:存放在操作系统上的物理文件

在这里插入图片描述

3. Data File 数据文件

  1. Oracle数据库中的表空间由⼀个或多个物理数据⽂件组成。数据⽂件只能与⼀个表空间和⼀个数据库相关联。
  2. Oracle数据库通过分配指定数量的磁盘空间和⽂件头所需的开销,为表空间创建⼀个数据⽂件。如果⽂件很⼤,这个过程可能会花费⼤量的时间。任何数据库中的第⼀个表空间总是SYSTEM表空间,因此Oracle数据库在创建数据库时⾃动为SYSTEM表空间分配,数据库的第⼀个数据文件。

4. Control File 控制文件

  1. 数据库控制⽂件是数据库启动和成功操作所必需的⼀个⼩型⼆进制⽂件。在数据库使⽤过程中,Oracle数据库会不断更新控制⽂件,因此⽆论何时打开数据库,它都必须能够⽤于编写。如果由于某种原因控制⽂件不可访问,那么数据库就不能正常运⾏。
  2. 每个控制⽂件只与⼀个Oracle数据库相关联。
  3. 控制⽂件包含有关实例访问所需的关联数据库的信息,这些信息在启动时和正常操作时都需要。控制⽂件信息只能通过Oracle数据库修改
alter database backup controlfile to trace as/u01/ctl01.bak‘;

5. Redo Log File 重做日志文件

  1. REDO条⽬(redo entries) 记录SQL语句本身,
  2. 以及执⾏后对数据库中某个⽂件某个块做的修改。包括DML、DD操作。

查看数据⽂件、控制⽂件、⽇志⽂件

col name for a50
SELECT name FROM v$datafile
union all
SELECT name FROM v$controlfile
union all
SELECT member FROM v$lofile;

6. Memory Structures 内存结构

  • oracle memory= SGA + PGA
  • SGA:system global area 系统全局区
  • 共享的:所有 server process 和 background process 共享。
  • PGA:program global area 程序全局区,
  • 私有的:每⼀个 server process 和 background process 拥有⾃⼰的 pga.
    在这里插入图片描述

查看分配给数据库的内存大小

SQL> show parameter memory 

查看数据库中分配给SGA的大小

SQL> show parameter sga      

查看当前系统物理内存大小

SQL> !free -m 

6.1 设置具体值

10g

sga_target 设置具体值,开启共享内存⾃动管理 ASMM(SGA)
sga_target SGA 可动态调整的尺⼨
sga_max_size SGA 最⼤值
pga_aggregate_target PGA 累计的最⼤值

11g

memory_target 设置具体值,开启内存⾃动管理 AMM(SGA 和 PGA ⾃动管理)。
memory_target 内存可动态调整的尺⼨ sga_target + pga_aggregate_target
memory_max_target oracle 服务器可使⽤最⼤内存⼤⼩(SGA+PGA)

6.2 SGA Global Area 系统全局区

SGA是⼀组共享内存结构,称为SGA组件,它包含⼀个Oracle数据库实例的数据和控制信息。SGA由所有服务器和后台进程共享。存储在SGA中的数据示例包括缓存的数据块和共享的SQL区域。

SGA 6 个基本组件:

  1. shared pool
  2. database buffer cache
  3. redo log buffer
  4. large pool
  5. java pool
  6. streams pool

6.3 Database Buffer Cache 系统高速缓存区

1.缓存数据
⽤于缓存从磁盘数据⽂件中读⼊的数据块,为所有⽤户共享。

服务器进程(server process)负责将数据⽂件的数据从磁盘读⼊到数据缓冲区中,当后续的请求需要这些数据时,如果在内存中找到,则不需要再从磁盘读取。

2.延迟写数据⽂件
对数据的修改在内存缓冲区中进⾏,减少写磁盘的次数,提⾼ I/O 能⼒。 数据缓冲区中被修改的数据块(脏块 dirty block)由后台进程 DBWR 将其写⼊磁盘。

数据缓冲区的⼤⼩对数据库的读取速度有直接的影响。
L

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值