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操作最小的单位。

你可能感兴趣的:(oracle)