1.oracle的组成
orcale两部分组成分别由instance(实例)和database(数据库)
实例是oracle存取oracle数据库的一种手段,任何时候实例和数据库是1对多的关系
2.databases数据库
database中
data files(数据文件),
control files(控制文件),
redo log files(重做日志文件)
这仨必须有
parameter file(参数文件),
password file(密钥文件),
archived log files(归档日志文件)
有不有都行
3.instance 实例
(1)SGA:SystemGlobal Area是OracleInstance的基本组成部分,
在实例启动时分配;系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。
(2)共享池:Shared Pool用于缓存最近被执行的SQL语句和最近被使用的数据定义,主要包括:Librarycache(共享SQL区)和Datadictionarycache(数据字典缓冲区)。 共享SQL区是存放用户SQL命令的区域,数据字典缓冲区存放数据库运行的动态信息。
(3)缓冲区高速缓存:DatabaseBufferCache用于缓存从数据文件中检索出来的数据块,可以大大提高查询和更新数据的性能。
(4)大型池:Large Pool是SGA中一个可选的内存区域,它只用于shared server环境。
(5)Java池:Java Pool为Java命令的语法分析提供服务。
(6)PGA:ProcessGlobal Area是为每个连接到Oracledatabase的用户进程保留的内存。
SGA包含了一个内存结构,包含共享池
shared pool,
database buffer cache,
redolog buffer cache。
Oracle的内存结构由两个内存区域组成称为:
SGA(System Global Area):在实例启动时分配,是Oracle实例的基本组成部分
PGA (Program Global Area):在服务器进程启动时分配,
SGA 只有一个,PGA有好多个
ps -ef | grep oracle // 查看SGA
sql>show sga; // 在sqlplus中查看SGA大小
SGA:
•是动态的
•大小由SGA_MAX_SIZE参数决定
Librarycache(共享SQL区)Datadictionarycache(数据字典缓冲区)
DatabaseBufferCache(缓冲区高速缓存)
Large Pool(大型池)
java pool
PAG
4.进程
user process(用户进程)
server process(服务进程)
IPC&TCP/IP
后台进程
DBWR对脏数据写到数据文件,
LGWR把日志文件cache写到日志文件里面,写数据前先写日志,
SMON在数据库重启的过程中实例打开,“检察员”检查进程是否正常运行
PMON进程监控进程,回滚事务,释放,重新启动进程
CKPT是checkpoint实现同步的作用,arcn归档进程,在归档日志的模式下才能完成,归档进程可以自动备份在线日志
体系结构
一个或多个blocks(块)组成一个extent(区间),
一个或多个extent(区间)组成一个segment(段),
一个或多个segment(段)组成一个tablespace(数据库)