• 1. 湖南电力公司OMS系统二期 系统管理员培训教程之HP-UX南京南瑞集团 信通分公司1
  • 2. ORACLE的体系结构2
  • 3. ORACLE的体系结构 体系结构概述物理结构 数据文件、日志文件、控制文件、参数文件 内存结构 SGA,PGA,Java池等 进 程 3
  • 4. 共享池数据缓冲区日志缓冲区SGA数据文件日志文件参数文件控制文件DBWRARCHCKPTLGWRPMONLCKnRECOSMON存储介质ServerUserUserUserORACLE的体系结构 体系结构图示4
  • 5. 数据文件 日志文件 控制文件 参数文件ORACLE的体系结构 物理结构5
  • 6. 数据文件(Data File)是物理存储ORACLE数据库数据的文件。其特点如下: 每一个数据文件只与一个数据库相联系。 数据文件大小是可以动态改变的。 一个表空间可包含一个或多个数据文件。ORACLE的体系结构 物理结构6
  • 7. 日志文件(Log File)记录所有对数据库数据的修改,以备恢复数据时使用。其特点如下: 每一个数据库至少包含两个日志文件组。 日志文件组以循环方式进行写操作。 每一个日志文件成员对应一个物理文件。ORACLE的体系结构 物理结构7
  • 8. 日志文件写操作图示Log File 1Log File 2Group 1Group 2Member 2.1Member 1.1ORACLE的体系结构 物理结构8
  • 9. 控制文件(Control File)是一个较小的二进制文件,用于描述数据库结构。描述信息如下: 数据库建立的日期。 数据库名。 数据库中所有数据文件和日志文件的文件名及路径。 恢复数据库时所需的同步信息。要点注意: 在打开和存取数据库时都要访问该文件。 镜像控制文件。 记录控制文件名及路径的参数为: CONTROL_FILESORACLE的体系结构 物理结构9
  • 10. 参数文件(Parameter File)是一个文本文件,可直接使用操作系统下的文本编辑器对其内容进行修改。该文件只在建立数据库或启动实例时才被访问。内容修改后,需重启数据库才能生效。 初始参数文件:init.ora 生成参数文件:initSID.ora ORACLE的体系结构 物理结构10
  • 11. 参数文件的作用: 确定存储结构的大小。 设置数据库的全部缺省值。 设置数据库的范围。 设置数据库的各种物理属性。 优化数据库性能。ORACLE的体系结构 物理结构11
  • 12. 参数文件中参数的数据类型: 整型 例:DB_BLOCK_SIZE = 2048 字符型 例:DB_NAME = ‘ora7’ 逻辑型 例:CHECKPOINT_PROCESS = trueORACLE的体系结构 物理结构12
  • 13. 共 享 池 数据库缓冲区 日 志 缓 冲 区ORACLE的体系结构 系统全局区13
  • 14. 实例( INSTANCE ) 是存取和控制数据库的软件机制,它由系统全局区(System Global Area,简称SGA)和后台进程组成。ORACLE的体系结构 系统全局区14
  • 15. SGA是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。ORACLE的体系结构 系统全局区15
  • 16. 共享池(Shared Pool)由共享SQL区和数据字典区组成。参数SHARED_POOL_SIZE 确定共享池的大小。共享SQL区包括 SQL或PL/SQL语句的文本 SQL或PL/SQL语句的语法分析形式 SQL或PL/SQL语句的执行方案数据字典区用于存放数据字典信息行。ORACLE的体系结构 系统全局区16
  • 17. 数据缓冲存储区(Database Buffer Cache)用于存储从数据文件中读的数据的备份。数据缓冲区数据文件DB_BLOCK_SIZE DB_nK_CACHE_SIZE 确定数据块的大小,一般为2K或4K,对于大数据块的数据库,此参数值为物理块的倍数。 DB_BLOCK_BUFFERS 确定数据块的数目。ORACLE的体系结构 系统全局区17
  • 18. 日志缓冲存储区(Log Buffer)以记录项的形式备份数据库缓冲区中被修改的缓冲块,这些记录将被写到日志文件中。 LOG_BUFFER 确定日志缓冲区的大小。日志缓冲区日志文件ORACLE的体系结构 系统全局区18
  • 19. 用 户 进 程 服务器进程 后 台 进 程ORACLE的体系结构 进程19
  • 20. ORACLE实例分为单进程实例和多进程实例两种。 SINGLE_PROCESS 单进程/多进程实例的转换。ORACLE的体系结构 进程20
  • 21. 单进程/单用户 一个进程执行全部ORACLE代码。S G AORACLE Server 数据库应用ORACLE的体系结构 进程21
  • 22. 多进程/多用户 使用多个进程执行ORACLE的不同代码,对于每一个连接的用户都有一个进程。S G A服务器系统进程用户进程后 台 进 程ORACLE的体系结构 进程22
  • 23. 用户进程 当用户运行一个应用程序时,就建立一个用户进程。ORACLE的体系结构 进程23
  • 24. 服务器进程 处理用户进程的请求。 处理过程 分析SQL命令并生成执行方案。 从数据缓冲存储区中读取数据。 将执行结果返回给用户。ORACLE的体系结构 进程24
  • 25. 后台进程 为所有数据库用户异步完成各种任务。主要的后台进程有 DBWR 数据库写进程 LGWR 日志写进程 CKPT 检查点写进程 SMON 系统监控进程 PMON 进程监控进程 ARCH 归档进程 RECO 恢复进程 LCKn 封锁进程ORACLE的体系结构 进程25
  • 26. DBWR(Data Base Writer) 将数据缓冲区中所有修改过的缓冲块数据写到数据文件中,并使用LRU算法来保持缓冲区中的数据块为最近经常使用的,以减少I/O次数。该进程在启动实例时自动启动。ORACLE的体系结构 后台进程26
  • 27. DBWR进行写操作的情况: 脏列表达到最低限制。 相当于参数DB_BLOCK_WRITE_BATCH值的一半。 一个进程在LRU列表中扫描指定数目的缓冲块,未找到空闲缓冲块。 参数DB_BLOCK_MAX_SCAN_CNT确定扫描数目。ORACLE的体系结构 后台进程27
  • 28. DBWR进行写操作的情况: 出现超时 3秒钟内该进程未活动,则该进程将在LRU列表中查找尚未查找的缓冲块,这组缓冲块的数目相当于参数DB_BLOCK_WRITE_BATCH值的2倍。 出现检查点。 ORACLE的体系结构 后台进程28
  • 29. LGWR(Log Writer) 将日志缓冲区中的所有记录项写到日志文件中。 该进程在启动实例时自动启动。ORACLE的体系结构 后台进程29
  • 30. LGWR进行写操作的情况: 用户进程提交一个事务(Commit) 日志缓冲区达到1/3范围 DBWR对一个检查点需要清除缓冲块 出现超时(3秒钟内未活动,则进行一次写操作。)ORACLE的体系结构 后台进程30
  • 31. 检查点(Checkpoint) : 在检查点出现期间,DBWR进程将数据缓冲区中的所有脏缓冲块写到数据文件中,LGWR进程将日志缓冲区中的所有记录项写到日志文件中,以确保上一个检查点至今修改过的所有数据块都被写到磁盘上。ORACLE的体系结构 后台进程31
  • 32. 检查点: 预定数目的记录项被填满。 参数LOG_CHECKPOINT_INTERVAL确定了预定数目。 设置指定的秒数。 参数LOG_CHECKPOINT_TIMEOUT确定了间隔秒数。 每个日志开关处 关闭实例时 DBA手动操作。 表空间离线。ORACLE的体系结构 后台进程32
  • 33. CKPT(Checkpointer) 在控制文件中记录检查点。参数CHECKPOINT_PROCESS 确定了检查点的启动/不启动状态。 若CKPT进程不启动,则该进程的工作将由LGWR进程代劳。(如果数据库的数据文件过多,这样操作会降低系统性能。)ORACLE的体系结构 后台进程33
  • 34. ARCH(Archiver) 在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储介质上,出现介质失败时用于恢复数据。 LOG_ARCHIVE_START 确定了该进程的启动/不启动状态。ARCH存储介质ORACLE的体系结构 后台进程34
  • 35. ARCH(Archiver) LOG_ARCHIVE_DEST 当数据库在归档模式下操作时,该参数确定了日志文件的归档目标。 LOG_ARCHIVE_FORMAT 当数据库在归档模式下操作时,该参数确定了归档日志文件的缺省文件名格式。 ARCH存储介质ORACLE的体系结构 后台进程35
  • 36. SMON(System Monitor) 负责完成自动实例恢复。该进程在启动实例时自动启动。 PMON(Process Monitor) 撤消异常中断的用户进程,并释放该进程已获得的系统资源或锁。ORACLE的体系结构 后台进程36
  • 37. RECO(Recover) 在分布式操作的情况下,恢复一个事务的失败。 LCKn(Lock) 在并行服务器系统间加锁,最多可加10个锁,分别为LCK0,LCK1,,LCK9。ORACLE的体系结构 后台进程37