Oracle-DB-概述


第一. Oracle DB 概述


1. Oracle DB

Oracle DB 数据库是被视为单元的数据的集合,其用途是存储和检索相关信息。

Oracle DB 能够可靠地管理多用户环境中的大量数据,从而支持许多用户并行访问相同的数据。实现此功能的同时还可以保持较高的性能。同时,它可以阻止未授权的访问,并且为故障恢复提供有效的解决方案。


2. 连接到服务器

1
客户机 < ---- > 中间层 < ---- > 服务器

数据库用户连接到Oracle服务器

  • 用户登录到运行Oracle实例的操作系统,如sqlplus 工具。
  • 用户可以启动本地计算机上的应用程序或工具(客户端/服务器),如toad, plsql
  • 用户通过本地计算机上的工具(web/服务器),如web浏览器

3. 体系结构概述

此处输入图片的描述

Oracle DB 服务器由(一个Oracle DB)和(一个或多个数据库实例)组成。

  • 实例由(内存结构)和(后台进程)构成。每当启动一个实例时,都会分配一个称为系统全局区(SGA)的共享内存区,并启动后台进程。

  • 数据库包括(物理结构)和(逻辑结构)。由于物理结构和逻辑结构是分开的,因此管理数据的物理存储时不会影响对逻辑存储结构的访问。


4. 连接到数据库

1
2
3
用户 <---> SQL> select <---> 用户进程 <---> 服务进程 <---> 数据库
|<----连接------>|
|<-------------------------会话---------------------------->|
  • 连接:用户进程和实例之间的通信
  • 会话:用户通过用户进程与实例建立的特定连接

5. 与Oracle DB交互

1
用户(SQL> select) <---> 用户进程 <---> 服务进程 <---> 实例<---> 数据库
  1. 在安装了Oracle DB的节点(通常称为“主机”或“数据库服务器”)上启动了一个实例。

  2. 用户启动一个应用程序,该应用程序衍生了一个用户进程。该应用程序尝试建立一个与服务器的连接(此连接可能是本地连接、客户机/服务器连接或者来自中间层的三层连接)。

  3. 服务器运行具有相应Oracle Net Services处理程序的监听程序。监听程序检查到应用程序发出的连接请求,并创建一个代表用户进程的专用服务器进程。

  4. 用户运行一条DML类型的SQL语句并提交事务处理。

  5. 服务器进程接受该语句,并检查共享池(一个SGA组件)中是否有包含相同SQL语句的共享SQL区域。如果找到共享SQL区域,服务器进程将检查用户对于所请求数据的访问权限,并且使用现有的共享SQL区域处理该语句。如果未找到共享SQL区域,则为该语句分配一个新的共享SQL区域,以便对该语句进行语法分析和处理。

  6. 服务器进程从实际数据文件(表)或数据库缓冲区高速缓存中存储的值中检索任何必需的数据值。

  7. 服务器进程修改SGA中的数据。因为提交了事务处理,所以日志写进程(LGWR)会立即将该事务处理记录到重做日志文件中。数据库写进程(DBWn)会待执行效率高时将修改后的块永久写入磁盘。

  8. 如果事务处理成功,服务器进程将通过网络向应用程序发送一条消息。如果事务处理不成功,则传送一条错误消息。

  9. 在整个过程中,其它后台进程同时在运行,用于监视是否有需要干预的情况。此外,数据库服务器管理其他用户的事务处理,并防止在请求相同数据的事务处理之间发生争用。


6. Oracle DB服务器结构

  • 内存结构
  • 进程
  • 存储结构