问题起源于在写一份材料的时候,对于自己的反思。
我把自己的观点发到了twitter和各大微博上,有不少朋友纷纷回复我。这这里,先感谢各位,因为有各种思想的交锋,观点的交流,让讨论变得很有意义。
我们究竟要成为一个怎么样的DBA,公司究竟需要一个怎么样的DBA?作为一个DBA应该须有怎么样的素质?
首先作为一个DBA,数据库的基本功很重要,了解数据库的内存结构,物理结构,了解数据库由物理文件到内存是怎么运作的,怎么联系的,靠什么进程来进行管理,虽然说人人都知道oracle有SGA,里面有shared pool,db cache等等,但是并不是所有人都知道他们和操作系统是怎么发生联系的?从操作系统物理文件层面,到操作系统内存层面,到oracle的内存层面,到latch,到cache,到lock,到transaction,到data block,之间是怎么发生联系的,了解了其中的关系,才能对oracle有个大致的了解。
上面说的只是单实例的数据库,而现实中,单实例的数据库往往用的不多,生产环境往往需要高可用性,因此你必须了解各种高可用的架构,RAC,dataguard,stream,cdc等等,了解这些架构中常见的等待事件是什么,是因为哪个主键引起了这些等待,了解HACMP,HP MC