oracle体系结构基础.docx
- 文档编号:17321209
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:14
- 大小:505.54KB
oracle体系结构基础.docx
《oracle体系结构基础.docx》由会员分享,可在线阅读,更多相关《oracle体系结构基础.docx(14页珍藏版)》请在冰点文库上搜索。
oracle体系结构基础
1.Oracle数据库体系结构2
1.1Oracle数据库结构2
1.1.Oracle实例3
1.2.Oracle内存结构3
1.2.1.系统全局区(SGA)4
1.2.2.程序全局区(PGA)5
1.3.Oracle进程结构5
1.4.Oracle实例管理6
1.5.服务器进程和数据库缓冲区高速缓存7
1.6.物理存储结构8
1.7.表空间和数据文件9
1.7.1.System和Sysaux表空间10
1.8.段、区、块11
1.9.逻辑和物理数据库结构12
1.9.1表空间12
1.9.2数据库、表空间和数据文件12
1.9.3方案13
1.9.4数据块13
1.9.5区13
1.9.6段13
1.Oracle数据库体系结构
Oracle服务器:
是一个数据库管理系统,它提供开放、全面、集成的方法进行信息管理。
由oracle实例和Oracle数据库组成。
Oracle服务器是进行信息管理的关键。
通常,Oracle服务器必须可靠地管理多用户环境中的大量数据,大多数用户才能并发访问同一数据。
这一点必须实现才能提供高性能。
另外,Oracle服务器必须阻止未授权的访问,并且在进行故障恢复时提供有效的解决方案。
1.0Oracle数据库结构
每一个运行的Oracle数据库都与一个Oracle实例关联。
在数据库服务器上启动数据库后,Oracle软件会分配一个称为系统全局区(SGA)的共享内存区,还会启动若干个Oracle后台进程。
这种由SGA和Oracle进程组成的组合就称为一个Oracle实例。
启动实例后,Oracle软件会将实例与特定的数据库关联。
这个过程称为装载数据库。
然后可打开数据库,使得授权用户可访问数据库。
在同一台计算机上可以并发执行多个实例,每一个实例只访问它自己的物理数据库。
您可以将Oracle数据库体系结构看作各种不同的、相互关联的结构化组件。
Oracle数据库使用内存结构和进程来管理、访问数据库。
所有内存结构都存在于构成数据库服务器的计算机的主存中。
进程指的是在这些计算机内存中运行的作业。
进程被定义为“控制线程”或操作系统中可以运行一系列步骤的一种机制。
Oracle数据库结构图:
1.1.Oracle实例
Oracle实例:
启动实例后,Oracle软件会将实例与特定的数据库关联。
这个过程称为装载数据库。
然后可打开数据库,使得授权用户可访问数据库。
在同一台计算机上可以并发执行多个实例,每一个实例只访问它自己的物理数据库。
每一个运行的Oracle数据库都与一个Oracle实例关联。
在数据库服务器上启动数据库后,Oracle软件会分配一个称为系统全局区(SGA)的共享内存区,还会启动若干个Oracle后台进程。
这种由SGA和Oracle进程组成的组合就称为一个Oracle实例。
1.2.Oracle内存结构
与Oracle实例关联的基本内存结构包括:
系统全局区(SGA):
由所有服务器进程和后台进程共享
程序全局区(PGA):
专用于每一个服务器进程或后台进程。
每一个进程使用一个PGA
1.2.1.系统全局区(SGA)
SGA是包含实例的数据和控制信息的内存区。
SGA包含以下数据结构:
数据库缓冲区高速缓存:
缓存从数据库检索的数据块
重做日志缓冲区:
高速缓存重做信息(用于实例恢复),直到可以将其写入磁盘中存储的物理重做日志文件
共享池:
缓存可在用户间共享的各个结构
大型池:
是一个可选区域,可为某些大型进程(如Oracle备份和恢复操作、I/O服务器进程)提供大量内存分配
Java池:
用于Java虚拟机(JVM)中所有特定会话的Java代码和数据
Streams池:
由OracleStreams使用
通过使用EnterpriseManager或SQL*Plus启动实例,可以显示为SGA分配的内存量。
1.2.2.程序全局区(PGA)
程序全局区(PGA)是包含每一个服务器进程的数据及控制信息的内存区。
Oracle服务器进程为客户机的请求提供服务。
每一个服务器进程都有自己专用的PGA,这个PGA是在服务器进程启动时创建的。
由该服务器进程独占对PGA的访问,PGA只由对它自身执行操作的Oracle代码读写。
使用动态SGA基础结构时,可以在不关闭实例的情况下更改数据库缓冲区高速缓存、共享池、大型池和Java池和Streams池的大小。
Oracle数据库使用初始化参数创建并配置内存结构。
例如,SGA_TARGET参数用于指定SGA可用的总空间量。
如果SGA_TARGET设置为0,则会禁用“自动共享内存管理”。
1.3.Oracle进程结构
1.用户进程:
在数据用户请求连接到Oracle服务器时启动。
2.服务器进程:
可以连接到Oracle实例,它在用户建立会话是启动。
3.后台进程:
在启动Oracle实例时启动。
调用应用程序或Oracle工具时,如调用EnterpriseManager时,Oracle服务器会通过创建服务器进程来执行应用程序发出的命令。
Oracle服务器还会针对一个实例创建一组后台进程。
这些进程不仅彼此进行交互操作,还与操作系统进行交互操作,这样可以管理内存结构,通过异步执行I/O操作将数据写入磁盘,而且还可以执行其它所需的任务。
存在哪些后台进程取决于数据库中当前使用的功能。
1.4.Oracle实例管理
Oracle实例管理
Oracle数据库服务器由Oracle数据库和Oracle实例组成。
Oracle实例由称为系统全局区(SGA)的内存结构和后台进程构成,这些后台进程可以处理实例运行中涉及的大量后台任务。
以下是最常见的后台进程:
系统监视器(SMON):
出现故障后启动实例时执行崩溃恢复任务
进程监视器(PMON):
用户进程失败时执行进程清理任务
数据库写进程(DBWn):
将修改后的块从数据库缓冲区高速缓存写入磁盘中的数据文件
检查点(CKPT):
通过更新数据库的所有数据文件和控制文件指出最新的检查点
日志写进程(LGWR):
将重做日志条目写入磁盘
归档进程(ARCn):
发生日志切换时将重做日志文件复制到归档存储器
1.5.服务器进程和数据库缓冲区高速缓存
处理某个查询时,Oracle服务器进程会在数据库缓冲区高速缓存中查找它所需的所有数据块。
如果未在数据库缓冲区高速缓存中找到数据块,服务器进程会从数据文件中读取数据块,并在数据库缓冲区高速缓存中添加一个副本。
因为关于同一数据块的后续请求可能会在内存中找到该数据块,因此,这些请求可能不需要进行物理读操作。
Oracle服务器使用最近用过的算法腾出最近未访问的缓冲区,以便在数据库缓冲区高速缓存中为新数据块提供空间。
缓冲区高速缓存中的缓冲区可能处于以下四种状态之一:
已连接:
可防止多个会话同时对同一数据块进行写操作。
此时,其它会话正等待访问该块。
干净:
缓冲区现已解除连接,如果没有再次引用当前内容(数据块),该缓冲区是可以立即腾出的候选项。
此时,不是缓冲区的内容已与磁盘中存储的数据块内容同步,就是缓冲区中包含块的一致读取(CR)快照。
空闲或未使用:
实例刚刚启动,缓冲区为空。
此状态与“干净”状态非常相似,不同之处在于缓冲区尚未使用。
灰数据:
缓冲区不再处于已连接状态,但是内容(数据块)已更改,DBWn必须先将内容刷新到磁盘,才能腾出缓冲区。
1.6.物理存储结构
构成Oracle数据库的文件可分为以下几类:
控制文件:
包含关于数据库本身的数据(即物理数据库结构信息)。
这些文件对数据库而言至关重要。
没有这些文件,就无法打开用于访问数据库数据的数据文件。
数据文件:
包含数据库中的用户数据或应用程序数据。
联机重做日志文件:
用于进行数据库实例恢复。
如果数据库已崩溃但未丢失任何数据文件,那么使用这些文件中的信息可以通过实例恢复数据库。
要成功运行数据库,以下附加文件非常重要:
参数文件:
用于定义启动实例时如何配置实例。
口令文件:
用于将用户远程连接到数据库后执行管理任务。
备份文件:
用于数据库恢复。
当由于出现介质故障或由于用户错误而损坏或删除了原始文件时,通常需要还原备份文件。
归档日志文件:
包含实例生成的数据更改(重做操作)的实时历史记录。
使用这些文件和数据库备份可以恢复丢失的数据文件。
也就是说,使用归档日志可以恢复还原的数据文件。
跟踪文件:
每一个服务器和后台进程都可以对关联的跟踪文件进行写操作。
如果在进程中检测到内部错误,进程就会将关于错误的信息转储到进程的跟踪文件。
写入跟踪文件的某些信息专门供数据库管理员使用,另一些信息则供Oracle支持服务部门使用。
预警日志文件:
这些是特殊的跟踪文件,又称为预警日志。
数据库预警日志是按时间顺序列出的消息日志和错误日志。
Oracle建议您查看这些文件。
1.7.表空间和数据文件
一个数据库可划分为多个逻辑存储单元,这些单元称为表空间,表空间可用于对相关逻辑结构进行分组。
每一个数据库都按逻辑方式划分为一个或多个表空间。
可以为每一个表空间显式创建一个或多个数据文件,这样可在表空间中按物理方式存储所有逻辑结构的数据。
注:
还可以创建大文件表空间,这种表空间只有一个数据文件,但这个数据文件非常大(最多可包含40亿个数据块)。
传统的小文件表空间(默认值)可以包含多个数据文件,但这些文件不可能这么大。
有关大文件表空间的详细信息,请参阅《数据库管理员指南》
1.7.1.System和Sysaux表空间
每一个Oracle数据库都包含SYSTEM表空间和SYSAUX表空间。
这两个表空间是在创建数据库时创建的。
系统默认值是创建小文件表空间。
也可以创建大文件表空间,这样可通过Oracle数据库管理超大文件(最大为8EB)。
表空间的状态可以是联机(可访问)或脱机(不可访问)。
打开数据库时SYSTEM表空间始终处于联机状态。
这个表空间可存储支持数据库核心功能的表,如数据字典表。
SYSAUX表空间是SYSTEM表空间的辅助表空间。
SYSAUX表空间可存储许多的数据库组件,要使所有数据库组件正常运行,该表空间必须处于联机状态。
1.8.段、区、块
数据库对象(如表和索引)以段形式存储在表空间中。
每个段包含一个或多个区。
区由相邻的数据块组成,这意味着每一个区只可以存在于一个数据文件中。
数据块是数据库中最小的I/O单元。
数据库从操作系统(OS)请求数据块集时,OS会将数据块集映射到存储设备上的实际文件系统或磁盘块。
因此,您不必了解数据库中任何数据的物理地址。
这还意味着一个数据文件可以条带化或镜像在多个磁盘上。
可以在创建数据库时设置数据块的大小。
对大多数数据库而言,默认的8KB块大小是足够的。
当数据库支持拥有大型表和索引的数据仓库应用程序时,最好设置更大的块大小。
当数据库支持执行随机读写的事务处理应用程序时,最好指定更小的块大小。
块大小的最大值取决于OS。
最小的Oracle块大小为2KB,这个值很少使用(在任何时候)。
表空间可以有不同的块大小。
但是,这只适用于可移动表空间。
有关详细信息,请参阅《数据库管理员指南》。
1.9.逻辑和物理数据库结构
Oracle数据库是按单元处理的数据的集合。
数据库的一般用途是存储和检索相关信息。
数据库具有逻辑结构和物理结构。
1.9.1表空间
数据库被分为多个逻辑存储单元,这些单元称为表空间,表空间可以将相关的逻辑结构分组在一起。
例如,为了简化某些管理操作,表空间通常用于将应用程序的所有对象分组。
此时,对应用程序数据可以使用一个表空间,对应用程序索引可以使用另一个表空间。
1.9.2数据库、表空间和数据文件
在幻灯片中会演示数据库、表空间和数据文件之间的关系。
每一个数据库按逻辑方式划分为一个或多个表空间。
可以为每个表空间显式创建一个或多个数据文件,这样可在表空间中按物理方式存储所有逻辑结构的数据。
如果它是TEMPORARY表空间而不是数据文件,则这个表空间拥有一个临时文件。
1.9.3方案
方案是数据库用户拥有的数据库对象的集合。
方案对象是直接引用数据库数据的逻辑结构。
方案对象包括诸如表、视图、序列、存储过程、同义词、索引、集群和数据库链接这样的结构。
一般而言,方案对象包括应用程序在数据库中创建的任何内容。
1.9.4数据块
Oracle数据库的数据以最细的粒度级存储在数据块中。
一个数据块对应于磁盘上特定字节数的物理数据库空间。
每个表空间的数据块大小是在创建表空间时指定的。
数据库可以使用和分配Oracle数据块中的空闲数据库空间。
1.9.5区
块的上一级逻辑数据库空间称为区。
区是特定数目的相邻数据块(在一次分配中获取的),用于存储特定类型的信息。
1.9.6段
区之上的逻辑数据库存储级别称为段。
段代表为特定逻辑结构分配的区集。
例如,各种类型的段包括:
数据段:
每一个非集群、非索引的组织表都有一个数据段。
该表的所有数据都存储在表数据段的区中。
对于分区表,每一个分区都有一个数据段。
每一个集群都有一个数据段。
集群中每个表的数据都存储在集群的数据段中。
索引段:
每一个索引都有一个索引段,用于存储索引的所有数据。
对于已分区索引,每一个分区都有一个索引段。
还原段:
数据库管理员会创建一个UNDO表空间,用于临时存储还原信息。
还原段中的信息用于生成一致读取信息,在数据库恢复过程中,还可用于回退用户的未提交事务。
临时段:
当SQL语句需要一个临时工作区来完成执行时,Oracle数据库会创建临时段。
语句结束执行后,临时段的区会返回到实例,以便供将来使用。
请为每个用户指定一个默认临时表空间,或指定一个在数据库级别使用的默认临时表空间。
Oracle数据库可动态分配空间。
如果段的现有区已满,则会添加更多的区。
由于区是按需分配的,因此,段的区在磁盘上不一定是相邻的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 体系结构 基础