第一. Oracle DB 概述
1. Oracle DB
Oracle DB 数据库是被视为单元的数据的集合,其用途是存储和检索相关信息。
Oracle DB 能够可靠地管理多用户环境中的大量数据,从而支持许多用户并行访问相同的数据。实现此功能的同时还可以保持较高的性能。同时,它可以阻止未授权的访问,并且为故障恢复提供有效的解决方案。
2. 连接到服务器
|
|
数据库用户连接到Oracle服务器
- 用户登录到运行Oracle实例的操作系统,如sqlplus 工具。
- 用户可以启动本地计算机上的应用程序或工具(客户端/服务器),如toad, plsql
- 用户通过本地计算机上的工具(web/服务器),如web浏览器
3. 体系结构概述
Oracle DB 服务器由(一个Oracle DB)和(一个或多个数据库实例)组成。
实例由(内存结构)和(后台进程)构成。每当启动一个实例时,都会分配一个称为系统全局区(SGA)的共享内存区,并启动后台进程。
数据库包括(物理结构)和(逻辑结构)。由于物理结构和逻辑结构是分开的,因此管理数据的物理存储时不会影响对逻辑存储结构的访问。
4. 连接到数据库
|
|
- 连接:用户进程和实例之间的通信
- 会话:用户通过用户进程与实例建立的特定连接
5. 与Oracle DB交互
|
|
在安装了Oracle DB的节点(通常称为“主机”或“数据库服务器”)上启动了一个实例。
用户启动一个应用程序,该应用程序衍生了一个用户进程。该应用程序尝试建立一个与服务器的连接(此连接可能是本地连接、客户机/服务器连接或者来自中间层的三层连接)。
服务器运行具有相应Oracle Net Services处理程序的监听程序。监听程序检查到应用程序发出的连接请求,并创建一个代表用户进程的专用服务器进程。
用户运行一条DML类型的SQL语句并提交事务处理。
服务器进程接受该语句,并检查共享池(一个SGA组件)中是否有包含相同SQL语句的共享SQL区域。如果找到共享SQL区域,服务器进程将检查用户对于所请求数据的访问权限,并且使用现有的共享SQL区域处理该语句。如果未找到共享SQL区域,则为该语句分配一个新的共享SQL区域,以便对该语句进行语法分析和处理。
服务器进程从实际数据文件(表)或数据库缓冲区高速缓存中存储的值中检索任何必需的数据值。
服务器进程修改SGA中的数据。因为提交了事务处理,所以日志写进程(LGWR)会立即将该事务处理记录到重做日志文件中。数据库写进程(DBWn)会待执行效率高时将修改后的块永久写入磁盘。
如果事务处理成功,服务器进程将通过网络向应用程序发送一条消息。如果事务处理不成功,则传送一条错误消息。
在整个过程中,其它后台进程同时在运行,用于监视是否有需要干预的情况。此外,数据库服务器管理其他用户的事务处理,并防止在请求相同数据的事务处理之间发生争用。
6. Oracle DB服务器结构
- 内存结构
- 进程
- 存储结构