oracle的体系结构
1、oracle的体系结构
oracle的体系结构的详细文章在网上有许多,推荐https://blog.****.net/sinat_33363493/article/details/51782609。这里只是简单粗略介绍,只适合初学者。
oracle体系由数据库文件(db file)、实例(instance)、客户端软件(client)组成。基本结构为:
一般情况,一个数据库由一个实例来管理,一个实例可以处理多个客户端。客户端软件是通过实例去操作数据库文件的。这里还需要引入集群的概念,集群即有多个实例,如下图:
集群的好处在于:
(1)负载均衡:客户端连接太多时,只有一个实例效率太低,多个实例可以平均工作;
(2)故障转移:如实例B发生故障,它无法连接上数据库文件,这时可自动将客户端连接迁移到实例C
那么实例是什么?事实上实例是运行在内存中的,若干个操作数据库进程的集合,也称之为管理系统(RDBMS:关系型数据库管理系统)。实例的组成如下:
(1)PGA:即program global area,程序全局区。一个客户端对应一个PGA。
(2)SGA:即system global area,系统全局区。PGA需要将数据提交至SGA,SGA再操作读写进程。
(3)数据库读写进程
2、表空间和数据文件
表空间是逻辑上的概念,表空间是由多个数据文件组成,位于实例中,实例运行在内存上。数据文件则是物理上的概念,它位于硬盘中。另外是段区块的概念,段位于表空间中,段是区的集合,区是数据块的集合,数据块会被映射到磁盘中。