一、数据库结构
二、Oracle 内存结构
三、进程结构
1、 用户进程:在数据库用户请求连接到Oracle 服务器时启动
2、 服务器进程:可以连接到Oracle实例,它在用户建立会话时启动
3、 后台进程:再启动Oracle实例时启动
四、Oracle实例管理
1、 系统监视器(SMON):出现故障后启动实例时执行崩溃恢复任务
2、 进程监视器(PMON):用户进程失败时执行进程清理任务
3、 数据库写进程(DBWn):将修改后的块从数据库缓冲区高速缓存写入磁盘中的数据文件
4、 检查点(CKPT):通过更新数据库的所有数据文件和控制文件指出最新的检查点
5、 日志写进程(LGWR):将重做日志条目写入磁盘
6、 归档进程(ARCn):发生日志切换时将重做日志文件复制到归档存储器
五、服务器进程和数据库缓冲区高速缓存
处理某个查询时,Oracle服务器进程会在数据库缓冲区高速缓存中查找它所需的所有数据块。如果未在数据库缓存区高速缓存中找到数据块,服务器进程会从数据文件中读取数据块,并在数据库缓存区高速缓存中添加一个副本。因为关于同一数据块的后续请求可能会在内存中找到该数据块,因此,这些请求可能不需要进行物理读操作。Oracle服务器使用最近用过的算法腾出最近未访问的缓冲区,以便在数据库缓冲区高速缓存中为新数据块提供空间。
缓冲区高速缓存中的缓冲区可能处于一下四种状态之一:
① 已连接:可防止多个会话同时对同一数据块进行写操作。此时,其他会话正等待访问该块。
② 干净:缓冲区现已解除连接,如果没有再次引用当前内容(数据块),该缓冲区是可以立即腾出的候选项。此时,不是缓冲区的 内容已与磁盘中存储的数据块内容同步,就是缓冲区中包含块的一致读取(CR)快照。
③ 空闲或未使用:实例刚刚启动,缓冲区为空。此状态与“干净”状态非常相似,不同之处在于缓冲区尚未使用。
④ 灰数据:缓冲区不再处于已连接状态,但是内容(数据块)已更改,DBWn必须先将内容刷新到磁盘,才能腾出缓冲区。