分类:
2012-10-27 13:34:28
原文地址:Oracle基本概念和体系结构 作者:Q_Tao
一、基本概念
数据库(DataBase):是一个数据集合,我们大多数情况下讲的数据库概念不仅是指物理数据,还指内存、进程、对象的组合。
数据存储:ORACLE数据库都将数据存储在文件中,在其内部,数据库结构提供了数据对文件的逻辑映射,允许不同类型的数据分开存放。这些逻辑划分称为表空间。
表空间(Tablespace):是数据库的逻辑划分,每个数据库至少有一个表空间(system表空间)。
数据文件(DataFile):每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件。建立新表空间需要建立新的数据文件。
实例(Instance):也称为服务器server,是存取和控制数据库的软件机制,它由系统全局区SGA和后台进程组成。决定实例组成及大小的参数存储在init.ora。例如:initora9. ora,表示实例名为ora9的配置文件。
二、Oracle体系结构
1.物理结构:数据文件,日志文件,控制文件,参数文件
①数据文件:存储Oracle数据库数据的文件,后缀为DBF。
特点:一个数据文件只属于一个数据库,一个表空间可包含多个数据文件。
②日志文件:记录所有对数据库的修改,以便恢复,后缀为LOG。
③控制文件:是较小的二进制文件,描述数据库,后缀为CTL。
特点:控制文件是一个非常小的二进制文件,最大可以增长到64M
包含信息:数据库的名字,检查点信息,数据库创建的时间戳,所有数据文件,联机日志文件,归档文件信息。
④参数文件:是一个文本文件,可直接使用文本编辑器对其修改。后缀为ORA。
特点:该文件只在创建数据库和启动实例的时候访问,对其修改要重启实例才能生效。
系统初始参数文件: init .ora
$ORACLE_HOME\\srvm\admin
生成的参数文件为: initSID.ora
$ORACLE_HOME\\database
作用:
<1>.设置SGA的大小
<2>.设置数据库的全部缺省值
<3>.在数据库建立时设置数据库的全部初始值
<4>.记录控制文件名和路径
<5>.通过调整内存结构,优化数据库性能
2.系统全局区SGA(SYSTEM GLOABLE AREA):共享池,数据块缓冲区,日志缓冲区,大池
SGA是Oracle为实例分配的一组共享缓存存储区,用于存放数据库数据和控制信息,以实现对数据库的操作和管理。
在Oracle系统中,所有用户与Oracle系统的交互都要经过SGA区。
注意:SGA尺寸应小于物理内存的一半。
SGA的计算方法:
SGA=DB_BLOCK_BUFFERS×DB_BLOCK_SIZE+SHARE_POOL_SIZE+SORT_AREA_SIZE+1M+3×DB_BLOCK_SIZE×(CPUs+2)×PARALELL_MAX_SREVERS
说明:SORT_AREA_SIZE:排序区,并发用户数较多,需要排序时该值宜大。
PARALELL_MAX_SREVERS :2×CPU个数×4×并发用户数。对单CPU不能修改此值。
①共享池(shared pool):由共享SQL区和数据字典区组成,参数shared_poll_size确定共享池大小
共享SQL区:包含SQL/PLSQL的文本,语法分析和执行方案
shred_pool_size = 物理内存*(15~20)%
数据字典区:用于存放数据字典信息行
②数据块缓冲区:用于存储数据文件中读出的数据,大小由两个参数决定。
DB_BLOCK_SIZE:数据块大小,一般为8K
DB_BLOCK_BUFFERS:数据块数目
DB_BUFFERS = DB_BLOCK_SIZE*DB_BLOCK_BUFFERS=物理内存*(15~20)%
③日志缓冲区:以记录项的形式备份数据库缓冲区中被修改的缓冲块,这些记录项将被写到日志文件中。日志缓冲区大小由参数LOG_BUFFER决定。
④大池:处理比共享池更大的内存
3.进程:用户进程,Oracle系统进程(分为:服务器进程和后台进程)
①服务器进程:处理用户请求的进程
处理过程:
分析SQL命令并生成执行方案à从数据缓冲区或磁盘读取数据à将执行结果返回给用户
③后台进程:与所有数据库用户异步完成所有任务
DBWR: 数据库写进程
LGWR: 日志写进程
CKPT: 检查点进程
SMON: 系统监视进程
PMON; 进程监视进程
ARCH: 归档进程
RECO: 恢复进程
LCKN: 封锁进程