教学笔记-Oracle体系结构01

 Oracle有自己的文件结构、缓冲区结构、进程结构以及自身的优化功能。

         Oracle服务器主要有两部分组成:Oracle数据库和Oracle实例。也就是说我们的Oracle数据库只是一个数据文件和相关数据库管理系统的集合,真正为用户提供服务的是Oracle实例。Oracle实例的内存结构组织主要包含在系统全局区(SGA:System Global Area)的内存区域中,SGA可以被所有用户进程共享。

        

·Oracle服务器的内存结构:

         Oracle服务器有两种内存结构:系统全局区(SGA)和程序全局区(PGA

         系统全局区是一组共享内存结构,存放一个Oracle数据库实例的控制信息和各个共享用户的数据。程序全局区是用户进程连接到数据库并创建会话时,有Oracle服务器进程进行分配的、专门用于当前用户会话的内存区,存储该用户连接期间与SQL语句执行相关的信息,该区域是私有的。

 

 

·Oracle服务器的进程结构:

         Oracle数据库系统中的进程只要分为:用户进程和服务器端进程,服务器端进程又分为服务器进程和后台进程。

         用户进程在客户端工作,它向服务器进程发出请求信息。SQL*PlusOracle Forms Builder等都是用户进程。

         服务器进程接收用户发出的请求,并根据请求与数据库通信(通过SGA),通过这些通信完成用户进程对数据库中数据的处理请求,而具体的数据读写、日志写入等操作则是由后台进程完成。

         服务器端后台进程:包括数据库写入进程(DBWn,日志写入进程(LGWR,日志归档进程(ARCn),检查点进程(CKPT),系统监控进程(SMON)和进程监控进程(PMON)等。

1,  数据库写入进程DataBase WriterDBWn):作用是将已经更改的数据块从内存写入到实际的数据文件。默认情况下在数据库实例启动时只启动了一个数据库写入进程,即DBW0,通过设置初始化参数DB_WRITER_PROCESSES可以最多定义20个(编号分别是0-9a-j)数据库写入进程来执行写入操作。从而获得高度动态的数据库性能。Oracle数据库系统中只有两种进程可以对数据文件执行写入操作:数据库写入进程和检查点进程。

2,  日志写入进程Log WriterLGWR):作用是将重做日志缓冲区中的内容写入到重做日志中。重做日志是对数据库进行的所有事务的一个拷贝,这样做的目的是使Oracle能从不同的错误中回复。日志写入进程是唯一一个能够读写重做日志的进程。

3,  日志归档进程Archive ProcessARCn):作用是将重做日志的事务变化复制到归档日志文件中。重做事务日志以顺序方式记录,填满一个日志文件之后,就会通过日志切换转向另一个可用的重做事务日志。该后台进程只有在“归档日志”(ARCHIVELOG)模式下才有效。默认情况下只有2个归档日志(  ARC0 ARC1),通过初始化参数LOG_ARCHIVE_MAX_PROCESSES最多可定义30个日志归档进程。通常情况下,DBA不需要设置,日志写入进程(LGWR)会根据归档任务的需要自动启动适当数量的归档进程。

4,  检查点进程Checkpoint ProcessCKPT):作用是发出检查点,实现同步数据库的数据文件、控制文件和重做日志。通俗的讲,就是在发出检查点之后数据库写入进程和日志写入进程都会将缓存中的数据写入到对应的数据文件和重做日志,从而保证数据文件、控制文件和重做日志文件的一致性。

5,  系统监控进程(System MonitorSMON):是在数据库系统启动时执行恢复工作的强制性进程,它负责许多内部的操作。它的作用是执行数据库实例的恢复、释放控件碎片并释放临时段。即当前一次数据库系统异常关闭,再次启动时的恢复工作。在并行服务器模式下,系统监控进程还可以恢复另一台计算机中失败的数据库。

6,  进程监控进程Process MonitorPMON):作用是监控服务器进程的执行,并在服务器进程失败时清楚该服务器进程。进程监控进程是用于恢复失败的数据库用户的强制性进程。

7,  锁进程LockLCKn):用于并行服务器模式,帮助数据库通信。

8,  调度进程DispatcherDnnn):在使用多线程服务器时出现,负责所连接的用户进程到可用服务器进程的路由请求,并把响应返回到何时的用户进程。

9,  作业队列进程Job QueueJnnn):作业队列进程和作业队列监视进程。10g引入

10,              闪回恢复进程Recovery WriterRVER):9i提出10g完善的闪回技术。闪回数据库是进行时间点恢复的新方法。能够快速的将Oracle数据库恢复到以前的时间点,以正确更正由于逻辑数据损坏或用户错误引起的任何问题。当需要恢复时,闪回恢复进程可以将数据库恢复到错误前的时间点,并且只恢复改变的数据块。

 

数据库启动后,我们可以通过系统动态性能监视视图v$bgprocess查看启动了的后台进程,查询代码如下:

         conn /@orcl as sysdba             --以管理员身份登录

         column description format A30      --设置查询列显示格式

         set pagesize 200                  --设置单页显示条数

select paddr, pserial#,name,description from v$bgprocess order by name

 

 

 

 

·服务器进程结构模式:

         Oracle服务器进程结构模式决定了系统如何响应用户进程请求。

1,  专用服务器模式:在专用服务器模式下,Oracle为每一个连接到数据库实例的客户进程启动一个专门的前台服务进程,一个客户进程的前台服务进程只为它的客户进程执行数据库访问操作。

专用服务器模式一般只用在密集的批操作,能让服务器进程大部分时间保持繁忙。当预期客户机连接总数较少,或客户机向服务器发出的请求持续时间较长时,应采用专用服务器模式。局域网环境开发的C/S结构应用系统,采用专用服务器模式有较好的性能。

2,  共享服务器模式:多线程服务器模式是Oracle用于支持客户连接的典型的进程结构,这些服务器端进程合在一起可以有效的支持大量的用户群。其组件包括(调度器、共享服务器进程和队列)。

多线程服务器配置对典型的多用户应用环境非常有效,少数共享服务器进程执行了许多连接客户的数据访问操作,只要有很少的进程开销就可以满足大量的用户群。

                            采用共享服务器模式时应指定在启动数据库实例时需要创建的服务器进程数,可以通过初始化参数SHARED_SERVERS设置。

你可能感兴趣的:(oracle,体系结构,Oracle服务器进程结构模式,Oracle服务器的内存结构,Oracle服务器的进程结构)