Oracle的基础知识介绍

1. oracle整体架构oracle整体架构包含oracle数据库正常运行的必需组件等。主要有实例(instance),数据库(database)
1.1 实例(instance)数据库实例是由服务器上的一组内存结构以及进程组成。用来支撑、完成数据库的正常运行以及操作。
实例是可以独立于数据库存在的。其中实例包含了以下组件:
1.1.1 内存即服务器os为当前instance分配的内存区域。主要用来完成数据库内存的移动和操作。内存主要分为sga(system global area) , pga(program or process global area).
sga是实例范围内共享的,包含共享池,数据缓冲,redo缓冲等。共享池包含库缓冲和字典缓冲等。
pga为各个会话私有。
1.1.2 后台进程(background process)实例创建和维护的一组后台进程,其作用是完成数据中的统一管理和监控任务。进程是共享的,不属于某个或某些会话
1.1.3 服务进程(server process)实例为数据库会话创建或分配,完成会话任务的serve端服务进程。其中在专用服务器模式和共享服务器模式下又有不同。
专用服务器模式: 该模式下,用户和数据库服务器建立会话,instance会为本次会话创建一个服务进程,用以完成此会话任务。共享服务器模式下,instance会维护一组服务进程,instance调度进程会将会话放入共享任务的队列中。该模式下所有的会话是共享一组服务进程的,也是一种池化思想。1.2 数据库(database)数据库是由服务器上的一组磁盘文件组成,存储着数据库相关的管理信息和用户数据,保证数据库的正常运转和用户数据的不丢失。数据库及其文件可以独立于instance存在。
数据库中包含了许多类型的文件,主要有参数文件(parameter file)、控制文件(control file)、数据文件(data file)、回滚文件(undo file)、临时文件(temp file)、重做日志文件(redo log file)、归档日志文件(archive log file)、警告日志文件(alert log file)、跟踪文件(trace file)等
下面是一个比较完整的oracle架构图
2. oracle内存架构内存架构主要是说oracle实例内存管理和使用相关的逻辑设计与实现等。这里我们概略地说一下sga和pga,让大家有一个粗略的概念。
2.1 sga(system global area)系统全局区数据库实例启动时创建的一个共享内存区域。主要由共享池、数据缓冲、重做日志缓冲等诸多区域组成。
共享池是数据库实例中最重要、最复杂的共享内存区域,里面存储着数据库最重要的结构和信息。
数据缓冲做为用户数据的缓存区,在系统共享内存中暂存数据库的数据块,其实这块的设计是为了提高数据库的读写性能。
重做日志缓冲作为日志数据的缓冲区,在系统共享内存中暂存数据库重做日志数据,可提高日志数据的读写性能。
2.2 pga (program global area) 程序全局区服务进程存储数据以及控制信息,以及完成相关任务的内存区域。相对于其他区域来说,该区域为私有区域。程序全局区域分为包含stack space、hasharea、uga等。
共享服务器模式下,多个客户端用户共享服务进程,uga被挪到了large pool,pga中只有stack space、hash area、bitmap merge area等。专用服务器模式下,pga包括 sql工作区,session memory,private sql area 等会话区(user global area uga),为会话分配的内存区域,用于存储各种会话变量,例如会话登录信息以及会话需要的其他各种信息等。
sql 工作区是为服务进程进行各种内存操作分配的pga私有内存。比如sort area(排序区)用于数据排序功能(order by , group by 等)
3. oracle存储架构oracle数据库最终还是使用磁盘作为存储媒介,针对oracle数据库的存储组织、分配、管理等,我们介绍一下(块)block、(区间)extent、(段)segment、(表空间)tablespace.
下图为个存储单元的关系示意图。
3.1 blockblock是oracle数据库读写的最小单元,block size是系统层面块大小整数倍。2kb、4kb.....
block 示意图
header中包含块的一些通用信息,block的地址,segment类型等table dictionary 记录了这个块里面含有那些rowsrow dictionary 包含了rows(数据行)的一些信息3.2 extent(区间)区间是关于存储空间的一个逻辑单位,由多个连续的块组成,也是oracle存储空间分配的最小单元,若某个数据库对象需要存储空间时,oracle至少要为其分配一个区间。
区间在段(segment)被创建或段空间扩展时被分配。当段被清除(drop)时,区间所占用的存储空间会被释放,会被系统中其他对象所使用3.3 segment(段)段是由一组区间组成,包含了表空间内特定逻辑存储结构的所有数据。针对每个表,oracle分配一个或者多个区间形成该表的数据段(data segment),对于每一个索引,oracle分配一个或者给多个区间组成索引段(index segment).
非分区表和非分区索引分别对应一个段,分区表和分区索引的每个分区或子分区对应一个段。段是存储数据库对象数据的实体,是存放数据的真正逻辑结构和单元。段可分为数据段(data segment)、索引段(index segment)、临时段(temporary segment)、回滚段(rollback segment)等。3.4 tablespace(表空间)oracle数据库中最大的存储空间相关的逻辑概念和容器,存储系统和用户数据的段都是在表空间中分配的。表空间是共享资源,不同用户或段可以存储在同一个表空间,也可以存储在不同的表空间中。
oracle将数据逻辑存储在表空间中,物理存储则在与表空间对应关联的数据文件中。oracle数据库有一个或者多个表空间的逻辑存储单元组成,这些表空间共同存储所有的数据。oracle中的每一个表空间有一个或者多个数据文件(data file)组成,这些数据文件与运行oracle的系统的屋里存储结构相匹配。表空间分为数据表空间(data tablespace)、临时表空间(temporary tablespace)、回滚表空间(undo tablespace)。

mipi协议里面csi和dsi是什么意思
Q2小米智能手机出货量3910万台,排名世界第三
华大北斗斩获2021年“中国芯”优秀技术创新产品奖
当channel关闭后再去读取数据会出现啥情况
便携式无人机反制枪的技术特点是什么
Oracle的基础知识介绍
IPv6耗费31年为什么还没替代IPv4?
temi机器人亮相高交会 备受观众和媒体的喜爱
派恩杰半导体650V-1700V碳化硅器件满足车规级要求
2014年锂电池新技术发展迅猛 市场产值望破千亿
针对ADAS的芯片厂商 理解各家的主要产品线和状态
MIPI转换芯片可达到每通道2.5Gbps
便携应用的电源管理面临的挑战有哪些
土壤水分测定仪指导科学灌溉,助力作物健康生长
高通1.77"彩屏对讲机UI显示方案 — 180多国外文点阵字库
TXGA掀锁式FPC/FFC连接器介绍
嵌入式开发中I2C协议详解
最全嵌入式C语言结构体知识点
有源滤波器和无源滤波器的区别在哪?
如何应对汽油机国六排放标准的系统