主要组件:
1. oracle server:主要组成部分,在大量用户同时访问同一个数据的情况下具备高性能和高可靠性,同时必须具备阻止非授权用户的访问和在发生错误时快速有效恢复的能力。由两部分组成,instance 和database。
2. oracle instance:由后台进程和内存结构组成,在不同的系统内用不同的方法被唯一标识,一个instance只能访问一个数据库,而一个数据库在某些情况(RAC)下能被多个instance访问。在访问database前必须启动,每次启动一块称为system global area(SGA)的内存将被分配。后台进程完成调用进程的功能,它们将增强多用户同时访问的性能,完成I/O操作,监控其他oracle进程,使oracle获得更好的性能和可靠性。
3. oracle database:有逻辑结构和物理结构。物理结构是指在操作系统上的一系列文件,包括三种类型的文件:
data files:存储实际的数据包括数据字典。
online redo log files:记录数据库的改变信息,是数据库能在出错时恢复到原状态。
control files:包含必要的维护和验证数据库完整性的信息。
4. other key files:不属于database的一部分,主要有三种类型的文件:
parameter file:规定了oracle instance的参数,如:SGA以及SGA内各组件分配内存的大小。
password file:包含了用户的认证和特权信息。
archived redo log files:是一份离线的online redo log files的拷贝。因为redo log files的存储空间大小是固定的,当文件写满后会返回从头开始写入而将原来的数据给覆盖掉。因此为了避免数据的丢失应及时将redo log files数据归档,这就是archived redo log files的作用。
5. other processes:很多其他进程的存在是用来设置其他功能用的,如:高级队列,实时应用集群,共享服务,等其他高级应用。它们独立完成各自的功能。
查看数据库文件的位置:ls -l /“oracle安装目录”/oradata/“sid命名的文件夹”
与oracle的通信
在用户提交一个SQL语句给oracle database前必须先连接到一个instance。
user process:在客户端运行像SQL*Plus或应用开发工具如oracle forms等这些工具或应用程序。
server process:在很多基本配置情况下user process是直接与server process打交道的,server process是在user process连接上事才被创建的,通常一个user process对应一个server process,但When using a shared server configuration, it is possible for multiple user processes to share server processes.server process代表user process执行SQL语句,与instance通信。
connection:在user和oracle server之间的一条通信路径。有三种建立连接的方式。如下图:
第一种:内部进程通信(IPC);第二种:TCP/IP;第三种(图上没表示):三层通信(three-tiered connection),是通过中间的应用服务器建立连接。
session:是一个指定的用户与oracle server之间的连接。会话是在用户通过验证后,用户开始与oracle进行通信时建立,在用户退出或有一个非法的终端时终止。对于一个指定的数据库用户来说,可以用同时不同的工具发起几个会话。除了一些专门的管理工具外,数据库只有在启用后才可以建立会话。