当前位置:网站首页>oracle11g体系结构

oracle11g体系结构

2022-08-10 17:22:00 赟文武

oracle数据库实例、oracle数据库、oracle服务器

服务器由数据库、数据库实例管理和数据库的各种软件工具(比如sqlplus 、OEM 等)

  • 数据库实例可以看作“有某些行为的中转站”
  • 数据库可以看作“仓库”
  • 数据库的各种软件工具可以看作用户需求的一种解释器(“翻译官”)

(1)数据库实例——内存结构与后台进程的集合

  • 内存结构
    在这里插入图片描述
    众所周知,从内存上读取数据要比从硬盘上读取数据快好几倍,数据库实例的内存区简单的理解就是为了读取数据可以更快

SGA与PGA可以理解为不同权限的文件夹,SGA理解为共享文件夹,在同一局域网下用户均可访问修改;PGA可以理解为私有文件夹,为某个用户所私有而不能被其他用户所使用

  • 共享池——存储最近执行的SQL语句与最近使用的数据字典的数据

  • 数据缓冲区——用来存储最近从数据文件中读写过的数据

  • 日志缓冲区——记录服务或后台对数据库的操作

  • java池——用来存储java代码(非普通java代码而是可以转换为sql语句的JAVA代码)

  • stream池——流技术

  • large池——用来存储不与SQL直接相关的大型内存结构。备份、恢复使用

  • 进程结构

在这里插入图片描述

  • 用户进程可以简单理解为用户在本地计算机相关数据库软件上编写一条sql语句
  • 服务器进程即响应用户进程的相关进程
  • 后台进程可以理解为让自己变得更好的进程
  • PMON——该进程在用户进程出现故障时执行进程恢复,负责清理内存储区和释放该进程所使用的资源。
  • SMON——系统监控,功能类似于计算机用户手动清理temp文件夹和用户手动打开任务管理器关闭打开进程
  • LGWR——日志缓冲区中数据写入重做日志
  • CKPT——该进程负责向DBWR进程发送信号,执行一次检查点,并更新数据库所有数据和控制文件
    查看启动了几个DBWR进程:
--登录sys用户或 / 
select * from v$process where program like '%DBW%';
  • DBWR——将脏数据从数据缓存写回磁盘

(2)数据库——存储数据的集合(“有什么东西[数据文件]、干了什么事等[日志文件等]、其他两个文件信息以及状态等[控制文件]”)

在这里插入图片描述

  • 逻辑结构(逻辑组件)

(1)表空间——最大逻辑单位

  • SYSTEM——系统表空间,存放系统最基本的信息
  • SYSAUX——SYSTEM表空间的辅助表空间,减少SYSTEM空间的负荷
  • TEMP——临时表空间
  • UNDOTBS1——撤销表空间,保存用户进行DML操作中,修改前的数据。
  • USERS——数据库默认的永久表空间

(2)段——构成表空间的逻辑存储结构,段由一组区组成
(3)区——段分配空间,由连续数据块组成
(4)数据块——Oracle服务器所能分配、读取或写入的最小存储空间
(5)模式——用户所创建的数据库对象的总称呼,可简单将一个用户理解为一个模式

  • 物理结构(物理组件)

(1)数据文件——存储数据库数据
(2)控制文件——记录数据库物理结构的二进制文件
(3)在线日志文件——对数据库的所有修改信息,用于故障恢复

上述3条为主要物理文件,丢失后不能继续运行,需要介质恢复即运行必须文件

(4)参数文件
(5)密码文件
(6)告警和跟踪文件
(7)归档日志文件
(8)备份文件

上述5条为非主要物理文件,丢失后仍可以运行即非必须运行文件

oracle主要组件

在这里插入图片描述

启动 Oracle 数据库服务器实际上是在服务器的内存中创建一个 Oracle 实例,然后用这个实例来访问和控制磁盘中的数据文件。当用户连接到数据库时,实际上连接的是数据库的实例,然后由实例负责与数据库进行通信,最后将处理结果返回给用户。

举个例子吧:
编写sql命令(select * from emp;),服务器进程进行响应,在内存区域中进行是否存在该语句,语法分析,执行等,拿出查询到的数据,将查询信息写入日志文件,将执行sql结果返回客户端;
当第二次运行该命令时,共享池中存在该条sql语句相关命令,其会直接从内存取数据而不会从硬盘拿数据,提高性能

11g中自动内存管理

oracle11g中的新的内存管理特性自动化内存管理(automatic memory management即AMM)。在该新特性之下SGA与PGA将会根据需要自动的扩展与收缩。

首先确保初始化参数statistics_level为typical或all,才能使用该功能

  • memory_target——整个内存的大小(SGA+PGA),可以动态设置,不能超过memory_max_target的值
  • memory_max_target——memory_target最大可以达到的值,修改该参数必须重启数据库
--确保sga_target和pga_aggregate_target的值应该设置成0。(管理员账户登录)
SHOW PARAMETERS target

在这里插入图片描述
修改命令如下图所示(具体大小设置不再详细解释):
在这里插入图片描述

原网站

版权声明
本文为[赟文武]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_51371629/article/details/126234732