暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

.oracle数据库架构2-存储架构、实例结构、应用结构

原创 dba-lxb 2022-07-02
574

1.数据库存储结构

可以从物理和逻辑角度考虑数据库。

物理数据是可在操作系统级别查看的数据。例如,Linux 等操作系统实用程序ls可以ps列出数据库文件和进程。诸如表之类的逻辑数据仅对数据库有意义。SQL 语句可以列出 Oracle 数据库中的表,但操作系统实用程序不能。

数据库具有物理结构和逻辑结构。因为物理结构和逻辑结构是分开的,所以您可以管理数据的物理存储而不影响对逻辑存储结构的访问。例如,重命名物理数据库文件不会重命名其数据存储在该文件中的表。

物理存储结构
物理数据库结构是存储数据的文件。

当你执行一个CREATE DATABASE命令时,你就创建了一个 CDB。将创建以下文件:

数据文件
每个 CDB 都有一个或多个物理数据文件,其中包含所有数据库数据。逻辑数据库结构(如表和索引)的数据物理存储在数据文件中。

控制文件
每个 CDB 都有一个控制文件。控制文件包含指定数据库物理结构的元数据,包括数据库名称以及数据库文件的名称和位置。

在线重做日志文件
每个 CDB 都有一个在线重做日志,它是一组两个或多个在线重做日志文件。在线重做日志由重做条目(也称为重做日志记录)组成,记录对数据所做的所有更改。
当您在 CDB 中执行CREATE PLUGGABLE DATABASE命令时,您将创建一个 PDB。PDB 在 CDB 中包含一组专用的数据文件。PDB 没有单独的专用控制文件和在线重做日志:这些文件由 PDB 共享。

许多其他文件对于 CDB 的运行很重要。这些包括参数文件和网络文件。备份文件和归档重做日志文件是对备份和恢复很重要的离线文件。
更多物理存储结构请看:
物理存储结构

2.数据库实例结构

Oracle 数据库使用内存结构和进程来管理和访问 CDB。所有内存结构都存在于构成 RDBMS 的计算机的主内存中。

当应用程序连接到 CDB 或 PDB 时,它们会连接到数据库实例。实例通过分配除 SGA 之外的其他内存区域以及启动除后台进程之外的其他进程来为应用程序提供服务。

Oracle 数据库进程

进程是操作系统中可以运行一系列步骤的机制。一些操作系统使用术语作业、任务或线程。

就本主题而言,线程等同于进程。Oracle 数据库实例具有以下类型的进程:

客户端进程
创建和维护这些进程是为了运行应用程序或 Oracle 工具的软件代码。大多数环境都有用于客户端进程的单独计算机。

后台进程
这些进程整合了原本由为每个客户端进程运行的多个 Oracle 数据库程序处理的功能。后台进程异步执行 I/O 并监视其他 Oracle 数据库进程,以提供更高的并行性,从而获得更好的性能和可靠性。

服务器进程
这些进程与客户端进程通信并与 Oracle 数据库交互以完成请求。

Oracle 进程包括服务器进程和后台进程。在大多数环境中,Oracle 进程和客户端进程在不同的计算机上运行。
更多请看:
进程结构

实例内存结构

Oracle 数据库为程序代码、用户之间共享的数据以及每个连接用户的私有数据区域创建和使用内存结构。

以下内存结构与数据库实例相关联:

系统全局区域 (SGA)

SGA 是一组共享内存结构,其中包含一个数据库实例的数据和控制信息。SGA 组件的示例包括数据库缓冲区缓存和共享 SQL 区域。SGA 可以包含一个可选的内存中列存储(IM 列存储),它使数据能够以列格式填充到内存中。

计划全球领域 (PGA)

PGA 是一个内存区域,其中包含服务器或后台进程的数据和控制信息。对 PGA 的访问是进程独有的。每个服务器进程和后台进程都有自己的 PGA。

也可以看看:《内存架构》
内存架构

3.应用架构

应用程序架构是数据库应用程序连接到 Oracle 数据库的计算环境。两种最常见的数据库架构是客户端/服务器和多层。

客户端-服务器架构

在客户端/服务器体系结构中,客户端应用程序发起请求以在数据库服务器上执行操作。该服务器运行 Oracle 数据库软件并处理并发共享数据访问所需的功能。服务器接收并处理来自客户端的请求。

多层架构
在多层架构中,一个或多个应用程序服务器执行部分操作。应用程序服务器包含大部分应用程序逻辑,为客户端提供对数据的访问,并执行一些查询处理。这样,数据库上的负载就减少了。应用程序服务器可以充当客户端和多个数据库之间的接口,并提供额外的安全级别。

面向服务的体系结构 (SOA)是一种多层体系结构,其中应用程序功能封装在服务中。SOA 服务通常实现为 Web 服务。Web 服务可通过 HTTP 访问,并且基于基于 XML 的标准,例如 Web 服务描述语言 (WSDL) 和 SOAP。Oracle 数据库可以在传统的多层或 SOA 环境中充当 Web 服务提供者。

简单 Oracle 文档访问 (SODA)是对 SOA 的一种改编,使您能够访问存储在数据库中的数据。SODA 专为无模式应用程序开发而设计,无需了解关系数据库功能或 SQL 和 PL/SQL 等语言。您可以在 Oracle 数据库中创建和存储文档集合、检索它们并查询它们,而无需知道文档是如何存储的。SODA for REST 使用具象状态转移 (REST) 架构风格来实现 SODA。
更多请看:《多层架构概述》
多层架构概述

Oracle 网络服务架构

Oracle 网络服务是数据库和网络通信协议之间的接口,有助于分布式处理和分布式数据库。

通信协议定义了数据在网络上传输和接收的方式。Oracle 网络服务支持所有主要网络协议上的通信,包括 TCP/IP、HTTP、FTP 和 WebDAV。

Oracle Net是 Oracle Net Services 的一个组件,它建立并维护从客户端应用程序到数据库服务器的网络会话。建立网络会话后,Oracle Net 充当客户端应用程序和数据库服务器的数据传递者,在它们之间交换消息。Oracle Net 可以执行这些工作,因为它位于网络中的每台计算机上。

网络服务的一个重要组件是Oracle 网络侦听器(称为侦听器),它是运行在数据库或网络其他地方的进程。客户端应用程序向监听器发送连接请求,监听器管理这些请求到数据库的流量。建立连接后,客户端和数据库直接通信。

配置 Oracle 数据库以服务客户端请求的最常见方法是:

专用服务器架构

每个客户端进程都连接到一个专用的服务器进程。在客户端会话期间,服务器进程不被任何其他客户端共享。每个新会话都分配有一个专用的服务器进程。

共享服务器架构

数据库为多个会话使用共享服务器进程池。客户端进程与调度程序通信,调度程序使许多客户端能够连接到同一个数据库实例,而无需为每个客户端使用专用的服务器进程。
更多请看:
《Oracle 网络服务架构概述》
oracle网络结构概述
《Oracle 数据库网络服务管理员指南》
oracle数据库网络服务管理员指南

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论