数据库服务器是信息管理的关键。通常,服务器可靠地管理多用户环境中的大量数据,以便使用户可以同时访问这些相同的数据。数据库服务器还可防止未经授权的访问,并为故障恢复提供有效的解决方案。
数据库和实例
Oracle数据库服务器包括一个数据库和至少一个数据库实例(通常是指只有一个实例)。因为实例和数据库是如此的紧密关联,Oracle数据库这个术语有时既指实例,也指数据库。这个术语在严格意义上具有以下含义:
•数据库
数据库是一组文件,位于磁盘,用于存储数据。这些文件可以独立于数据库实例存在。
•数据库实例
实例是管理数据库文件的一组内存结构。该实例包含一个叫做系统全局区(SGA)的共享内存区和一组后台进程。实例可以独立于数据库文件而存在。
图1显示了一个数据库和它的实例。对连接到实例的每个用户,其应用程序以一个客户端进程运行。每个客户端进程都具与它自己的服务器进程相关联。服务器进程有自己的私有会话内存区,称为程序全局区(PGA)。

一个数据库可以从物理和逻辑这两个角度来考察。物理数据是在操作系统级别可查看的数据。例如,使用操作系统实用程序,如Linuxls和ps,可以列出数据库文件和进程。而象表这样的逻辑数据只在数据库层面有意义。SQL语句可以列出Oracle数据库中的表,但操作系统实用程序却不能。
数据库具有物理结构和逻辑结构。因为物理结构和逻辑结构是分开的,因此对物理数据存储的管理,不会影响对逻辑存储结构的访问。例如,重命名物理数据库文件并不会重命名表,尽管其数据存储在此文件中。
数据库存储结构
数据存储是关系数据库的一个重要任务。本部分简要介绍Oracl数据库所使用的物理和逻辑存储结构。
物理存储结构
物理数据库结构即是那些存储数据的文件。当您执行SQL命令CREATEDATABASE,会创建下列文件:
•数据文件
每个Oracle数据库都有一个或多个物理数据文件,其中包含数据库的所有数据。数据库的逻辑数据结构,如表和索引,在物理上存储在这些数据文件中。
•控制文件
每个Oracle数据库都有一个控制文件。控制文件包含指定数据库物理结构的元数据,包括数据库名称,及数据库文件的位置和名称等。
•联机重做日志文件
每个数据库都有一个联机重做日志,它包含两个或更多联机重做日志文件。一个联机重做日志由许多重做项组成(也称为重做记录),以记录对数据所做的所有更改。
很多其他文件对Oracle数据库服务器的正常运行也是很重要的。这些文件包括参数文件和诊断文件。备份文件和归档重做日志文件是用于备份和恢复的重要的脱机文件。
逻辑存储结构
本部分讨论逻辑存储结构。以下的逻辑存储结构使得Oracle数据库可以按更细的粒度控制磁盘空间的使用:
•数据块
在最细的粒度级别,Oracle数据库将数据存储在数据块中。一个数据块对应于磁盘上的特定数目的字节。
•扩展区
扩展区是一定数目的逻辑上连续的数据块,在单次分配中获得,用于存储特定类型的信息。
•段
段是为用户对象(例如一个表或索引)、回滚数据、或临时数据等分配的一组扩展区。
•表空间
数据库由称为表空间的逻辑存储单位组成。表空间是段的逻辑容器。每个表空间至少包含一个数据文件。
数据库实例结构
Oracle数据库使用内存结构和进程,来管理和访问数据库。所有内存结构都存在于构成关系数据库的计算机主内存中。
当应用程序连接到Oracle数据库时,他们也连接到一个数据库实例。实例为该程序服务,为其分配除SGA之外的其他内存区,并启动除后台进程之外的其他进程。
Oracle数据库进程
进程是操作系统的一种机制,用于运行一系列步骤。有些操作系统使用工作、任务、或线程等术语。在本论述中,线程等价于进程。Oracle数据库实例具有以下类型的进程:
•客户端进程
这些进程被创建和维护,主要用来运行应用程序代码或Oracle工具。多数环境中都由单独的计算机来运行客户端进程。
•后台进程
这些进程整合了多种功能,以避免为每个客户端进程运行多个Oracle数据库程序。后台进程以异步方式执行I/O操作,并监控其他数据库进程,以提供更大的并行度,达到更好的性能和可靠性。
•服务端进程
这些进程与客户端进程通信,并与Oracle数据库进行交互,以完成客户端请求。
Oracle进程包括服务器进程和后台进程。在大多数的环境中,Oracle进程和客户端进程在不同的计算机上运行。
实例内存结构
Oracle数据库创建和使用内存结构有几个目的,例如,用于在多个用户之间共享程序代码和数据的内存,以及用于每个已连接用户的私有数据区域。以下是与实例相关的内存结构:
•系统全局区(SGA)
SGA是一组共享的内存结构,包含一个数据库实例的数据和控制信息。例如,SGA组件包括数据块缓存和共享SQL区域。
•程序全局区(PGA)
PGA是一个内存区域,其中包含某个服务器进程或后台进程的数据和控制信息。PGA只由专有的过程访问。每个服务器进程和后台进程都有其自己的PGA。
应用程序和网络体系结构
为了充分利用一个特定的计算机系统或网络,数据库把任务在数据库服务器和客户端程序之间分开处理。运行关系数据库的计算机负责处理数据库服务器,而运行应用程序处理的计算机负责解释和显示数据。
应用程序体系结构
应用程序体系结构是指一个数据库应用程序连接到Oracle数据库的计算环境。最常见的两种数据库体系结构是客户端/服务器体系结构和多层体系结构。
在客户端/服务器体系结构中,客户端应用程序发起一个将在数据库服务器上执行操作的请求。服务器运行Oracle数据库软件,并处理并发、共享数据访问所需的功能。服务器接收并处理来自客户端的请求。
在传统的多层体系结构中,由一个或多个应用程序服务器执行部分(由传统C/S服务器执行的)操作。应用程序服务器包含应用程序逻辑的很大一部分,为该客户机提供对数据的访问,并执行一些查询处理,从而减轻在数据库上的负载。应用程序服务器可以作为客户端和多个数据库之间的接口,并提供一个额外的安全级别。
面向服务的体系结构(SOA)是一种多层体系结构,应用程序的功能被封装在服务中。SOA服务通常是作为Web服务实现的。Web服务可通过HTTP访问,并基于XML标准,如Web服务描述语言(WSDL)和SOAP。
Oracle数据库可以在传统的多层环境或SOA环境中扮演一个Web服务提供者的角色。
网络体系结构
Oracle网络服务是数据库与网络通信协议之间的接口,它对分布式处理和分布式数据库很有用。通信协议定义了数据在网络上被传输和接收的方式。
Oracle网络服务支持所有主要的网络通信协议,包括TCP/IP、HTTP、FTP、和WebDAV
OracleNet是Oracle网络服务的一个组件,用于建立和保持一个客户端应用程序到数据库服务器的网络会话。网络会话建立后,OracleNet作为客户端应用程序和数据库之间的数据传递员,在它们之间交换消息。OracleNet之所以可以执行这些工作,是因为它位于网络中的每台计算机上。
网络服务的一个重要组成部分是Oracle网络监听器(简称监听器),它是一个单独的进程,运行在数据库服务器上,或在网络中的其它地方。客户端应用程序可以发送连接请求到监听器,而监听器管理这些发送到数据库服务器的请求的流量。当一个连接建立之后,客户端和数据库进行直接通信,(而不再需要监听器的参与)。
为服务客户端请求,最常见的两种配置Oracle数据库的方式是:
•专用服务器体系结构
每个客户端进程连接到一个专用的服务器进程。在与客户端的会话期间,服务器进程不可以被任何其他客户端共享。Oracle会为每个新会话分配一个专用的服务器进程
•共享服务器体系结构
数据库使用一个用于多个会话的共享进程池。客户端进程与一个调度器通信,调度器是一个进程,它使大量的客户端能够连接到同一数据库实例,而无需为每个客户端建立一个专用的服务器进程。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




