oracle serve由oracle instance 和oracle database组成;
一、oracle instance(oracle实例)
1、组成:
oracle instance是一个动态的概念,由SGA和后台进程组成;
2、SGA(系统全局区) system global area
a、用于存储数据库进程共享的数据库信息;
b、可以通过select * from v$sga;
select * from v$sgastat;
select * from v$buffer_pool;查看
c、内存结构:
共享池 shared pool
Library Cache :存储最近执行的sql语句;
Data Dictionary Cache :存储最近使用的数据定义;
对于保存在共享池中的sql语句可以从v$sqltext,v$sqlarea查询到;
数据高速缓冲区 Data Buffer Cache
存储已从数据文件中检索到的数据块的副本;由DBWR进程将修改后的数据写入磁盘;
重做日志缓冲区 Redo Buffer Cache
记录对数据库数据块所作的全部更改,主要用于恢复;由LGWR进程将它写入磁盘;
Java池 Java Pool
存储Java命令的服务分析要求;
大池 Large Pool
分配大块的内存,处理比共享池更大的内存;
①共享服务器的会话内存
②I/O拂去其进程
③备份和恢复操作或RMAN
④并行执行消息缓冲区。
流池 Streams Pool
①用于缓存流进程在数据库间的移动;
②复制数据时使用的队列消息。
3、后台进程 Background Process
a、用于管理数据库的读写、恢复和监控等工作;
b、组成:
DBWR:负责将更改的数据从数据高速缓冲区写入数据文件;
LGWR:将重做日志缓冲区的更改写入到在线重做日志文件
LGWR工作条件:
①用户提交;
②有1/3重做日志缓冲区未被写入磁盘;
③有大于1M重做日志缓冲区未被写入磁盘;
④超时。
SMON:检查数据库的一致性,如有必要还会在数据库打开时启动数据库的恢复。
SMON工作条件:
①清除临时空间;
②在系统启动时,完成系统实例恢复;
③聚结空闲空间;
④从不可用的文件中恢复事务的活动;
⑤OPS中失败节点的实例恢复;
⑥清除OBJ$表;
⑦缩减回滚段;
⑧是回滚段脱机。
PMON:负责在一个oracle进程失败时清理资源。
负责清理失效的用户进程,释放用户进程所用的资源,
CKPT:负责更新控制文件和数据文件中的数据库信息。
CKPT工作条件:
①在日志切换的时候;
②数据库用immediate,transaction,normal,选项shutdown数据库的时候
③根据初始化文件LOG_CHECKPOINT_INTERVAL,LOG_CHECKPOINT_TIMEOUT,FAST_START_IO_TARGET的设置的数值来确定;
④用户触发
归档进程:在每次日志切换时把已满的日志组进行备份和归档。
二、oracle database(oracle数据库)
1、物理结构:
a、控制文件(control file)
①参数文件init.ora记录了控制文件的位置
②控制文件包括以下信息:
数据库的名字
检查点信息
数据库创建的时间戳
所有的数据文件
联机日志文件
归档联机日志文件
备份信息等
③控制文件保护
多个镜相复制
RAID
④控制文件的信息可以通过v$controlfile来查看;
⑤一个数据库至少需要一个控制文件。
b、数据文件(数据文件的详细信息记载在控制文件中)
①通过select name from v$datafile来查看数据文件
②系统文件(system_01.dbf)
存放系统表和数据字典,一般不放用户的数据;
但是用户脚本,如过程、函数、包等却是保存在数据字典中;
c、重做日志文件
①用户对数据库进行的任何操作都会记录在重做日志文件;
②通过v$log可以查看日志组,v$logfile可以查看具体的成员文件;
②一个数据库至少需要两个重做日志文件;
[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26069201/viewspace-1056038/
,如需转载,请注明出处,否则将追究法律责任。