对oracle数据库体系结构学习的认知
技术的学习,尤其是像Oracle database这种知识体系极其庞杂的技术来讲,从宏观上了解其体系结构是至关重要的。真 正的数据库工作人员需要了解的不仅仅是应用 ,更多的是内部的具体实现 ,毕竟技术思想很多时候都是相通。
一句话介绍Oracle数据库的体系结构
实例(instance)+数据库(database)=Oracle Server
详细结构图(一)
详细结构图(二),个人认为下面这张图更为合理
Oracle Server = 实例(instance)+数据库(database)。
实例是由一组内存结构(SGA system global area )+后台进程+PGA。
数据库是由一组OS文件组成,它由数据文件、参数文件、控制文件、重做日志文件组成。
SGA是所有服务器进程和后台进程共享的内存区域,当instance启动时创建该区域。它在内在区域中有且只有一个。它由数据高速缓存(databasebuffer cache)、重做日志缓存区(redo log buffer)、共享池(shared pool)、大池(large pool)、java pool等组成。
物理结构
对比看看Mysql数据库的体系结构,学习就应该有比较有鉴别
定义:
- 数据库是文件的集合 。
2. 数据库实例是应用程序 ,是位于用户与操作系统之 间的一层数据管理软件
3.用户对数据库数据的任何操作 ,都是在数据库实例下进行的 ,应用程序只有通过数据库实例 ,才能和数据库打交道 。
组件:
1.连接池组件
2.管理服务和工具组件
3.SQL接口组件
4.查询分析器组件
5.优化器组件
6.缓冲(cache)组件
7.插件式存储引擎
8.物理文件
要想深入的了解结构的每一部分都需要花上几节课的时间去学习和讲解,当你不断深入学习的时候,你会越来越感觉到oracle数据库设计的博大精深,同时能感受到设计的艺术,有时间可以看看《Oracle编程艺术:深入理解数据库体系结构(第3版)》