Oracle 笔记(一)

来源:互联网 发布:淘宝找黑客改成绩 编辑:程序博客网 时间:2024/05/21 06:38

         

  • Oracle Server是面向对象的关系数据库管理系统,由实例(Instance)和数据库(Database)两部分组成。  其中实例(Instance)是一组内存结构和后台进程的集合,数据库(Database)则是由一组操作系统文件组成(数据文件、控制文件、联机重做日志文件以及初始化参数文件、口令文件归档重做日志文件、警报日志和跟踪文件)。用户在访问Oracle数据库时,主要是在与实例(Instance)打交道,由实例访问数据库,并返回相应的结果。

       
  • Oracle的内存结构被总称为SGA(System Global Area),主要包括数据缓冲区(Database buffer Cache)、重做日志缓存区(Redo Log Buffer)、共享池(Shared Pool)、大池(Large Pool )、Java 池(Java Pool)、流池(streams pool)等
  • 查看SGA的内存分配可用SQL> SHOW SGA; 或者SQL> SELECT * FROM V$SGA; 更详细的内存分配情况可用SQL> SELECT NAME, BYTES FROM V$SGAINFO;
  • 数据缓冲区中的数据共享存在,采用LRU算法管理数据缓存块。
  • 共享池由库缓存(Library Cache)、数据字典缓存(Dictionary Cache)、用于并行执行消息缓存(Buffers for parallel Execution Messages)以及控制结构(Control Structures)等几个部分组成。
  • 重做日志缓冲区:修改高速缓冲区中的数据之前,记录变化到重做日志缓冲区,对应的初始化参数为LOG_BUFFER。
  • 大池:主要用于分配大块的内存,对应的初始化参数为LARGE_POOL_SIZE。常配置大池的情形有:RMAN备份、执行并行查询、共享服务器方式连接时使用UGA。
  • Java池:可选的,主要用于处理Java Procedure。
  • 流池:流用来复制数据,流池则主要用来存储流进程创建的队列,对应的初始化参数为STREAMS_POOL_SIZE。


         
      
  • PGA是服务于Oracle进程的专用内存区域,该区域中的内容是非共享的,每个连接到Oracle的进程都拥有自己独立的PGA区。专用服务器模式下,每个会话对应于一个Oracle进程。但在共享服务器模式下,则可能多个会话共享一个Oacle服务进程。
  • PGA主要有私有SQL区(Private SQL Area)和会话内存区(Session Memory)。
  • 对于负责的查询,PGA有专用的缓存区:SQL工作区。如执行基于排序的查询、Hash-join、Bitmap Merge、Bitmap Create。 


        

  • 用户进程(User Process):用户连接到Oracle数据库的应用的进程,如SQL*Plus。
  • 服务器进程(Server Process):由Oracle实例来自动创建,处理已连接到实例的用户进程发出的请求。专用服务器模式下,用户进程和服务器进程是一一对应的,但在共享服务器模式下,一个Oracle服务器进程可能服务于多个用户进程。服务器进程主要任务有:解析并执行用户提交的SQL语句、从磁盘数据文件中读取必须的数据到SGA的数据缓存区、以适当形式返回SQL语句的执行结果。
  • 后台进程(Background Process):负责内存区与物理文件打交道。常见的有:
  • DBWn(Database Write Process,数据库写入进程):负责将数据库缓冲区中最近未使用的尽可能少的脏缓冲区写入到数据文件中。有4种情况下执行该操作:没有任何可用缓冲区、脏缓冲区过多(内部阀值确定)、遇到3秒超时、遇到检查点(写入全部脏缓冲区,如有序关闭数据库时的自动检查点(完全检查点)、强制设置检查点:alter system checkpoint、写入仅包含一个或多个数据文件[不是整个数据库]的块的所有脏缓冲区(这是局部检查点,包括数据文件或表空间脱机时、表空间置于备份模式时、表空间置于只读时))。
  • LGWR(LOG Write Process,日志写入进程):将日志缓冲区的内容写入到磁盘上的联机日志文件中。有3种情况下执行该操作:会话发出commit、日志缓冲区占用率达到1/3、DBWn要写入脏缓冲区。
  • CKPT(Checkpoint Process,检查点写入进程):
  • SMON(System Monitor Process,系统监控进程):安装和打开数据库,即是说:通过查找和验证控制文件来安装数据库,再通过查找和验证所有数据文件和联机日志文件打开数据库。数据库正常使用后,SMON就负责执行各种内部管理任务,如合并数据文件中的可用空间。
  • PMON(Process Monitor Process,进程监控进程):监视所有服务器进程,对会话异常终止的情形,PMON将销毁对应的服务器进程,将其PGA内存返回给操作系统的空闲内存池中.
  • RECO(Recoverer Process,恢复进程):分布式事务提交失败时的取消操作,并回滚所有数据库中的工作.
  • ARCn(Archiver Processes,归档进程):虽然是一个可选的进程,但对于企业来说通常是必需的.用于在联机重做日志变满和被重用前制作副本.
  • MMON(Manageability Monitor,管理性监视器):SGA将统计结果写到系统数据字典表中(默认每小时一次快照并启动ADDM)。
  • MMAN(Memory Manager):支持内存分配的自动管理。如果设定了SGA自动管理,MMAN用来协调SGA内各组件的大小设置和大小调整。9i版本可伸缩PGA,10g版本实现了SGA大小重调的自动化,11g则更进一步:MMAN根据需要自动分配内存给会话PGA和SGA结构,同时将内存分配总量保持在DBA设定的范围内.
  • ASMB():在使用asm磁盘组的时候负责与asm实例的通信,向ASM实例提供更新统计信息。
  • RBAL():负责协调磁盘组间的负载平衡工作,在使用了ASM的数据库实例中运行。当向ASM磁盘组增加或删除磁盘时,RBAL进行负责处理重新平衡的请求。
  • Jnnn(Job Queue Processes,任务队列进程):
  • QMNn(Queue Monitor Processes,队列监控进程):

原创粉丝点击