Oracle架构实现原理、含五大进程解析(图文详解)

前言

Oracle架构,讲述了Oracle RDBMS的底层实现原理,是Oracle DBA**调优和排错的基础理论。深入理解Oracle架构,能够让我们在Oracle的路上走的更远。本文主要是在对RDBMS的底层组件功能和实现原理有一定的了解的情况下,结合自身的工作经验提出了对Oracle调优和排错的思路。**当然,对Oracle体系结构的理解是一个深远的过程,需要不断的更新修改,如有不对,还望指正。:)

Oracle RDBMS架构图

 

 

一般我们所说的Oracle指的是Oracle RDBMS(Relational databases Management system),一套Oracle数据库管理系统,也称之为Oracle Server。而Oracle Server主要有两大部分:

Oracle Server = 实例 + 数据库 (Instance和Database是相互独立的)

数据库 = 数据文件 + 控制文件 +日志文件 实例 = 内存池 + 后台进程

所以可以细分为: Oracle Server = 内存池 + 后台进程 + 数据文件 + 控制文件 + 日志文件

一台Oracle Server支持创建多个Database,而且每个Datacase是互相隔离而独立的。不同的Database拥有属于自己的全套相关文件,例如:有各自的密码文件,参数文件,数据文件,控制文件和日志文件。

Database由一些物理文件(如:存放在存储设备中的二维表文件)组成。二维表存储在Database中,但Database的内容不能被用户直接读取,用户必须通过Oracle instance才能够访问Database,一个Instance只能连接一个Database,但是一个Database可以被多个Instance连接。

将上面的Oracle RDBMS架构图进行抽象分类,可以将Oracle架构抽象为:Oracle体系 = 内存结构 + 进程结构 + 存储结构

 

 

内存结构

Oracle Instance是Oracle RDBMS的核心之一,负责RDBMS的管理功能。Oracle Instance主要由内存池SGA和后台进程组成。

 

 

系统全局区SGA

 

 

内存池SGA的默认Size,会在安装Oracle的时候会根据LinuxOS的sysctl.conf参数文件来决定:

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 1048576

net.core.rmem_max = 1048576

net.core.wmem_default = 262144

net.core.wmem_max = 262144

查看SGA的Size:

SQL> conn /as sysdba

Connected.

SQL> show user;

USER is “SYS”

SQL> select * from v$sga;

NAME VALUE

——————– ———-

Fixed Size 2022144

Variable Size 503317760

Database Buffers 1627389952

Redo Buffers 14753792

SQL> show sga

Total System Global Area 2147483648 bytes #对应kernel.shmmax = 2147483648

Fixed Size 2022144 bytes

Variable Size 503317760 bytes

Database Buffers 1627389952 bytes

Redo Buffers 14753792 bytes

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐