Oracle数据库架构入门概述
本文分为四个部分简单概述一、入门概述二、数据库实例简述三、数据库物理存储和逻辑存储结构简述四、网络体系结构概述入门概述Oracle 数据库服务器包括一个数据库和至少一个数据库实例 通常是指只有一个实例。 因为实例和数据库关联紧密通常我们说Oracle 数据库这个术语一般既指实例也指数据库。数据库数据库是一组文件位于磁盘用于存储数据。 这些文件可以独立于数据库实例存在。数据库实例实例是管理数据库文件的一组内存结构。 该实例包含一个叫做系统全局区 SGA 的共享内存区和一组后台进程。 实例可以独立于数据库文件而存在。数据库与实例的关系1oracle 11g版本及之前单库环境下一个实例对应一个数据库可以理解一个实例管理和维护一个数据库RAC集群环境下多台Oracle 数据库服务器的实例对应一个数据库可以理解为多个实例每个集群服务器上一个实例管理和共同维护一个数据库同一份物理数据文件212c版本及之后非容器数据库非CDB类型数据库与实例的概念与以前版本完全一致容器数据库CDB类型一个CDB数据库可以创建很多PDB数据库因此这种情况下一个实例管理和维护多个PDB数据库N:1的关系RAC集群环境下多台Oracle 数据库服务器的实例管理和维护多个PDB数据库N:N的关系备注Oracle 21c版本以后只能创建容器类型的数据库了。物理和逻辑角度观察数据库物理角度是在操作系统级别可查看的数据。 例如使用操作系统实用程序如 Linux ls 和 ps可以列出数据库文件和进程。逻辑角度表、视图、索引等这样的逻辑数据只在数据库层面有意义。 SQL 语句可以列出 Oracle 数据库中的表但操作系统实用程序却不能。Oracle数据库和实例架构图数据库实例简述Oracle 数据库使用内存结构和进程来管理和访问数据库。可以将Oracle实例简单理解为一块内存区域和一组进程。当应用程序连接到 Oracle 数据库时会有一个服务端进程为其一对一服务专用模式下服务端进程连接到一个数据库实例。 实例为其分配除 SGA 之外的其他内存区。Oracle内存结构Oracle 数据库创建和使用内存结构有几个目的例如用于在多个用户之间共享程序代码和数据的内存以及用于每个已连接用户的私有数据区域系统全局区(SGA)SGA 是数据库实例的一组共享的内存结构包含一个数据库实例的数据和控制信息。 例如SGA 组件包括数据块缓存和共享 SQL 区域。程序全局区(PGA)PGA 是数据库实例的一个非共享内存区域包含专供服务器进程或后台进程使用的数据和控制信息。每个服务器进程和后台进程都有其自己的 PGA。Oracle数据库进程客户端进程运行在客户端操作系统这些进程被创建和维护主要用来运行应用程序代码或 Oracle 工具。 多数环境中都由单独的计算机来运行客户端进程。服务端进程运行在oracle服务器操作系统这些进程与客户端进程通信并与 Oracle 数据库进行交互以完成客户端请求。后台进程运行在oracle服务器操作系统后台进程是数据库实例的一部分它们执行维护任务、操作数据库、最大化并发环境下的性能等等。每个后台进程执行一个独特的任务例如将内存数据块写入磁盘文件的数据库写进程将日志缓存写入磁盘日志文件的日志写进程等等进程之间互相协同完成整体工作。备注Oracle 进程包括服务器进程和后台进程。 在大多数的环境中 Oracle 进程和客户端进程在不同的计算机上运行。数据库物理存储和逻辑存储结构简述物理存储结构物理数据库结构即存储数据的文件。数据文件每个 Oracle 数据库都有一个或多个物理数据文件其中包含数据库的所有数据。数据库的逻辑数据结构如表和索引物理上就是存储在这些数据文件中。现实数据库的使用环境中我们所有的业务表数据全都存放在数据文件中。控制文件每个 Oracle 数据库都有一个控制文件。 控制文件包含指定数据库物理结构的元数据包括数据库名称数据文件的位置和名称、日志文件的位置和名称等。在线重做日志文件每个数据库都有一个联机重做日志它包含两个或更多联机重做日志文件。 一个联机重做日志由许多重做项组成也称为重做记录以记录对数据所做的所有更改你可以理解为一个不断记录的视频、该视频记录对数据库的所有操作。其它文件还有很多其他文件对 Oracle 数据库服务器的正常运行也是很重要的。 例如参数文件、密码文件、诊断文件、 备份文件和归档重做日志文件等等。逻辑存储结构表空间tablespace)数据库由称为表空间的逻辑存储单位组成。 表空间是段表、索引等的逻辑容器。 每个表空间至少包含一个数据文件。表空间是数据文件的容器每一个数据文件必须归属于一个表空间一个表空间可以包含多个数据文件段(segment)段是为用户对象 例如一个表或索引、回滚数据、或临时数据等分配的一组扩展区。段可以简单理解为表数据的逻辑存放结构刚开始学习时简单理解一个表的数据存储在一个段中。区extent区是一定数量的逻辑上连续的数据块段的每次分配以区位单位。数据块blockOracle数据库中最细的存储粒度级别。Oracle数据库每次读写数据最小单位为数据块。Oracle 数据库将数据存储在数据块中。一个数据块对应于磁盘上的特定大小的字节一般为8k大小。说明Oracle数据库具有物理结构和逻辑结构。 因为物理结构和逻辑结构是分开的因此对物理数据存储的管理不会影响对逻辑存储结构的访问。 例如重命名物理数据库文件并不会重命名表尽管它的数据存储在这个文件中。逻辑存储结构和物理存储结构的映射关系图备注表和段的关系为多对多后续我会深入讲解初学时可以将一个段和一个表对应即1:1对应来理解即可。网络体系结构概述Oracle 网络服务是数据库与网络通信协议之间的接口, 它对分布式处理和分布式数据库很有用。 通信协议定义了数据在网络上被传输和接收的方式。Oracle 网络服务支持所有主要的网络通信协议包括 TCP/IP、 HTTP、FTP 、和 WebDAVOracle Net是 Oracle 网络服务的一个组件用于建立和保持一个客户端应用程序到数据库服务器的网络会话。 网络会话建立后Oracle Net 作为客户端应用程序和数据库之间的数据传递员在它们之间交换消息。Oracle Net 之所以可以执行这些工作是因为它位于网络中的每台计算机上。监听器监听器是 Oracle 网络服务的一个重要组成部分它是一个单独的进程运行在数据库服务器上或在网络中的其它地方。 客户端应用程序可以发送连接请求到监听器而监听器管理这些发送到数据库服务器的请求。 当一个连接建立之后客户端和数据库进行直接通信后续不再需要监听器的参与。为服务客户端请求最常见的两种配置 Oracle 数据库的方式是专用服务器体系结构生产环境一般使用这种方式每个客户端进程连接到一个专用的服务器进程。 在与客户端的会话期间服务器进程不可以被任何其他客户端共享。 Oracle 会为每个新会话分配一个专用的服务器进程。这种专用模式下每次监听器监听到客户端的连接请求后都会fork派生一个新的进程来专用于服务这个客户端的连接这个fork出来的新进程也就是我们在Oracle数据库进程中描述的服务端进程共享务器体系结构数据库使用一个共享进程池用于多个会话的管理。 客户端进程与一个调度器通信调度器是一个进程它使许多客户端能够连接到相同的数据库实例而无需为每个客户端建立一个专用的服务器进程。这种模式下每次监听器监听到客户端的连接请求后会将请求直接转发给调度器进程不会派生专用的进程来服务。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2456563.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!