一直认为自己对Oracle的理解还可以,特别是考完OCM认证以后。
几天前一个朋友问我,你能简单的介绍一下Oracle的体系结构吗?我脑海中立即想到之前那幅Oracle 11g 体系结构图(12C由于图太复杂记不住),如下:
但是面对这幅图我居然无法进行准确的描述,我确信这个图我见过无数遍,也确信自己了解Oracle的体系结构,在OCP的时候老师讲过,OCM老师也讲过,可是我完全不知道如何用自己的语言去描述。一时间呆在那里,只能尴尬的讲了下说了下Oracle的物理存储结构,一个库有多个表空间,一个表空间有多个数据文件等等应付。
因为他也是搞DBA的,在此之前我以为他会问我诸如DG,RAC,GC等等的一些问题,我自我安慰的想是我没有准备,但是这个可是Oracle最基本的东西,我真的对这些知识有过自己的领悟吗?
后来在网上翻了下资料,大多都是长篇大论,介绍的很详细,但是并没有三言两语可以解释清楚的答案。
最后翻到了以前OCP培训时老师留给我的相关文档,找到了如下一段描述:
第一部分Oracle数据库的体系结构:
Oracle Server = 实例(instance)+数据库(database)。
实例是由一组内存结构(SGA system global area )+后台进程+PGA
数据库是由一组OS文件组成,它由数据文件、参数文件、控制文件、重做日志文件组成。
SGA是所有服务器进程和后台进程共享的内存区域,当instance启动时创建该区域。它在内在区域中有且只有一个。它由数据高速缓存(databasebuffer cache)、重做日志缓存区(redo log buffer)、共享池(shared pool)、大池(large pool)、java pool等组成。
为什么把“第一部分”标红,因为这是这个文档的开篇。接下来的一句已经清清楚楚明明白白告诉了我答案。余下不到百字的介绍则描述了各自的功能和组成,如此的精炼简洁,才发现这才是正真的大师风格。
仿佛被人打了一巴掌。
大师者集大成者也,虽然拿到所谓的大师认证,但我自己清楚的知道我离大师还有几座山的距离。
鬼谷子的局有一句话 “欺人容易,欺心却难”,总觉得这一句很适合自己,你可以装着自己很高端,却无法欺骗自己空虚的内心。
总以为做过一些高级实施就自得意满,可是我真的理解了这些知识吗?
有的时候最简单也是最难,如果只是一直依样画葫芦我将只是一个可怜的模仿者,永远不可能成为正真的大师。