博客开篇-ORACLE-01

  一晃工作已3年多了,工作也换了几份,自己时而感觉学到不少,时而又感觉啥都没学到,或者学过,用过的很快就不记得了,之前听过有人说,胡适说过,最好的记忆就是发表,所以准备有啥新东西都随便发表发表吧~~

  

 

上图是oracle官方的一个架构图,Oracle数据库的体系很复杂,复杂的原因在于它最大限度的节约内存,它在整体上分实例和数据库文件两部分,实例就是内存+进程,Library cache主要是sql语句缓存,Date Dict cache是存放数据字典的缓存(表索引,权限,用户等),Database buffer cache是存放具体数据库数据的缓存,Redo log buffer cache

是存放日志文件的高速缓存,而各进程就是负责这些内存和具体数据库交付的“搬运工”

 

 

下图是稍详细的oracle架构图

 

  视图左侧User Process、Server Process,PGA可以看做Clinet端,上面的实例(Instance)和下面的数据库(Database)以及参数文件(parameter file)、密码文件(password file)和归档日志文件组成Oracle Server,所以整个图可以理解为一个C/S架构

  Oracle Server  由两个实例组成:实例(instance)与数据库(database)。这两个实体是独立的,不过是连接在一起。在数据库创建过程中,实例首先被创建,然后才创建数据库。实例和数据库可以是一对一,也可以是多对一(即不同计算机上的多个实例打开共享磁盘系统上的一个公用数据库)。这种多对一关系被称为实际应用群集(Real Application Clusters,RAC),RAC极大的提高了数据库的性能、容错与可伸缩性(可能会牺牲更多的存储空间),并且是oracle网络(grid)概念的必备部分。

  Oracle 体系架构主要是有两大部分组成:数据库实例和数据库文件(database)

  数据库实例

  指数据库服务器的内存及相关处理程序,它是Oracle的心脏。与Oracle性能关系最大的是SGA(Sygstem Global Area,即系统全局区活共享内存区),SGA包含三个部分:

  1. 数据缓存区,可避免重复读取常用的数据;

  2.日志缓存区,提示了数据增删改的速度,减少磁盘的读写而加快速度;

  3.共享池,使相同的SQL语句不再编译,提升了SQL的执行速度

  oracle 数据库实例的另一部分就是一些后台进程,他主要包括:

  1.系统监控进程

  2.进程监控

  3.数据库写进程

  4.日志写进程

  5.检查点进程

  6.其它进程

  这些后台进程合起来完成数据库的管理任务,相当于“管家”+“苦力” ~~

  在访问数据库的时候,机器后台先启动实例,启动实例前要先分配内存区,然后在启动后台进程。数据库启动过程中必须启动上面的前五个进程,否则实例无法创建。(在启动oracle的时候,因为有些进程是在开机启动项中自动启动的。所以占用了很大一部分内存。若果你还有其他比较耗内存的应用,那oracle可能会因内存不足而启动失败)

 

posted @ 2014-11-20 11:44  雾火  阅读(87)  评论(0编辑  收藏  举报