1、用户相关的进程
用户相关的进程包括用户进程和服务器进程。
一个用户进程只能连接到一个服务器进程
但是在某些Oracle配置中,多个用户进程可以共享同一个服务器进程。
PAG也被创建,每一个服务器进程有一个PGA
2、逻辑内存结构,被集中称为oracle实例
一个oracle实例是被一个oracle的主要内存结构组成的,称为SGA(system global area),和服务器后台进程。
用户访问数据库中的数据时,服务器进程负责和SGA内存块通信。
一个oracle instance 包括三个组件:
1)必须的组件:
共享池:缓存最近被数据库用户使用的SQL语句;
数据库缓存:最近被数据库用户使用的信息;
redo日志:保存恢复为目标的事务信息。
可选的内组件:
java pool:当java虚拟机被使用的时候,缓存最近被使用的java目标
large pool:换数据和大的操作,比如 恢复管理,备份和恢复活动,共享服务器组件
streams pool:缓存数据库相关的队列请求信息,当oracle高级队列选项被打开的时候
SGA 最进最少使用算法管理内存。
2)背景进程
有很多个背景进程,每一个都执行一个特殊的任务来帮助管理oracle instance。其中,5个背景进程是必须得,包括:
1、系统监视进程,执行进程的灾难恢复,合并数据库的自由空间,管理用来排序的内存空间;
2、进程监视进程,清除失败的数据库用户;
3、数据库写进程,从SGA的数据库缓存区把数据库块写入到磁盘上的数据库文件中;
4、日志写进程,从SGA中的REDO日志缓存区把恢复信息写到磁盘上的在线redo日志文件上;
5、检查点进程,紧跟在检查点事件后,更新数据库文件。
3、物理文件架构被集中称为数据库
数据库主要是有驻留在主机服务器磁盘驱动器上的物理文件构成。这些文件可以被称作,数据文件,控制文件和日志文件,另外的一些文件也和数据库相关,
但是不属于数据库,比如密码文件和数据库文、配置文件(pfile,spfile)和归档redo日志文件(archived redo log files)。
一、控制文件
是数据库的关键部分,他们存储着重要的信息,这些信息其他地方并不提供。包括:
- 数据库的名字;
- 数据文件和redo日志文件的名字、位置、和大小;
- 在磁盘失败或者用户错误的情况下用来恢复数据库的信息。
控制文件当数据库创建时刻,www.linuxidc.com就已经按照参数的文件 control_files参数描述的位置创建了,因为控制文件的丢失,会负面的影响恢复数据库的能力。
大部分数据库产品都提供多个数据库文件和并发把他们保存在多个位置。当需要的时候,CKPT也会动态的更新每一个数据库的控制文件,并且保持控制文件内容一致性。
可以用下面的示例来查看控制文件的位置和名字等详细信息: