oracle体系结构
原创转载请注明出处
Oracle Server
Oracle Server由Oracle例程和数据库构成。
Oracle例程由一组内存结构和后台进程构成。
Oracle内存结构
包含系统全局区(SGA)和程序全局区(PGA)
SGA:在实例启动时分配,是一组包含一个Oracle实例的数据和控制信息的共享内存结构。主要是用于存储数据库信息的内存区,
该信息为数据库进程所共享(PGA不能共享的)。
SGA包含共享池、数据高速缓存区、重做日志缓存区、大池、Java 池、流池
查看:show parameter sga_max_size
修改:alter system set sga_max_size=1200m scope=spfile
ORACLE 10G 引入了ASMM(自动共享内存管理),DBA只需设置SGA_TARGET,ORACLE就会
自动的对共享池、JAVA池、大池、数据缓冲区、流池进行自动调配。取消自动调配就是
sga_target设为0(alter system set sga_target=?)
1.共享池:存放最近执行的SQL语句和数据字典信息。(包括库高速缓存和数据字典高速缓存。)
查看 show parameter shared_pool_size
修改 alter system set shared_pool_size=120m
2.数据高速缓存区:存放最近访问的数据块。无论读取数据或者修改数据都是在数据高速缓存区
完成的。(包括脏缓存区,空缓存区,忙缓存区。)
查看:show parameter db_cache_size;
设置:alter system set db_cache_size=800M;
3.重做日志缓存区。对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR进程将它写入磁盘,大小由LOG_BUFFER决定。
4.Java 池:该程序缓冲区就是为Java 程序保留的。如果不用Java程序没有必要改变该缓冲区的默认大小
5.流池(Stream pool):被Oracle流所使用
PGA:是为每个用户进程连接ORACLE数据库保留的内存,进程创建时分配,进程结束时释放,只能被一个进程使用。
后台进程
1.SMON:检查数据库的一致性,当启动失败时完成灾难恢复等。
2.PMON:监视服务器进程。用于监视服务器进程的执行,并且在服务器进程失败时清除该服务器进程。
回滚未提交的工作,释放锁,释放分配给失败进程的SGA资源
3.DBWR:将数据高速缓存区的数据写到数据文件中。
4.LGWR:将重做日志缓存区的记录写到重做日志中。
5.CKPT:发出检查点。
6.ARCH:将重做日志事务变化复制写到归档日志中。
数据库物理结构
数据文件:存放系统数据,用户数据,UNDO数据等等。。
重做日志:用于记录数据的变化。(数据库至少包含2个重做日志组)
控制文件:用于记录和维护数据库的物理结构。(记录:数据文件的位置和大小、重做日志的位置和大小、数据库名称和创建时间、日志序列号)
归档日志:非活动的重做日志的备份。注意的是只有在数据库在归档日志模式下才有这个归档日志。
口令文件:存放所有以sysdba或者sysoper权限连接数据库的用户的口令。
预警文件:连续的消息和错误组成。
后台进程跟踪文件:记录后台进程的警告或者错误消息。
数据库逻辑结构
数据库:一个数据库由一个或多个表空间组成,一个表空间只能属于一个数据库
表空间: 一个表空间由一个或多个多个数据文件组成,一个数据文件只能属于一个表空间
段:用于储存特定逻辑对象(表、索引等等)的所有数据,由一个或者多个区组成。
区:进行空间分配的逻辑单元,由相邻的数据块组成。
块:数据在制定I/O操作最小的单位。