《数据厍设计与开发》讲义 4.20 RACLE数据库实例管理 Oracle服务器就是数据库管理系统(DBMS),由 数据库(0 racle database)和实例( Oracle instance)组成。 实例是一系列复杂的内存结构和操作系统进程, 它为 Oracle客户提供所期望的不同程度的服务。 个实例只能打开一个数据库,或者说一个数 据库被唯一的一个实例装载。 4.2.1实例组成 4.2.2实例创建 4.2.3监控实例 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.2 ORACLE数据库实例管理 • Oracle服务器就是数据库管理系统(DBMS),由 数据库(Oracle database)和实例(Oracle instance)组成。 • 实例是一系列复杂的内存结构和操作系统进程, 它为Oracle客户提供所期望的不同程度的服务。 一个实例只能打开一个数据库,或者说一个数 据库被唯一的一个实例装载。 4.2.1 实例组成 4.2.2 实例创建 4.2.3 监控实例
《数据厍设计与开发》讲义 4.2.10 RACLE数据库实例组成 实例中每一个进程都有各自的一个内存块,该内存块 用于保存私有变量、地址堆栈和其他运行时的信息 进程间使用公共共享区并在公共共享区内完成它们的 工作。公共共享区是能够在同一时间内被不同程序和 不同进程读写的一块内存区。该内存块称为系统全局 区(SGA)。因为SGA驻留在一个共享内存段中,所以它 经常被称作共享全局区。 ·后台进程就像数据库的手,是直接处理数据库的组件: SGA就像大脑,在必要时间接地调度手处理它们的信息 与存储检索。SGA参与发生在数据库中全部的信息和服 务器的处理 单用户的 Oracle配置( Personal oracle lite),不使 用多进程执行数据库的功能。相反,所有的数据库功 能由一个 Oracle进程完成。由于这个原因,单用户也 称为单进程 Oracle 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.2.1 ORACLE数据库实例组成 • 实例中每一个进程都有各自的一个内存块,该内存块 用于保存私有变量、地址堆栈和其他运行时的信息。 • 进程间使用公共共享区并在公共共享区内完成它们的 工作。公共共享区是能够在同一时间内被不同程序和 不同进程读写的一块内存区。该内存块称为系统全局 区(SGA)。因为SGA驻留在一个共享内存段中,所以它 经常被称作共享全局区。 • 后台进程就像数据库的手,是直接处理数据库的组件; SGA就像大脑,在必要时间接地调度手处理它们的信息 与存储检索。SGA参与发生在数据库中全部的信息和服 务器的处理。 • 单用户的Oracle配置(Personal Oracle Lite),不使 用多进程执行数据库的功能。相反,所有的数据库功 能由一个Oracle进程完成。由于这个原因,单用户也 称为单进程Oracle
《数据厍设计与开发》讲义 4.2.1 ORACLE数据库实例组成 例 用户 Shared pool SGA 进程 Library 内存 cache Database Redo log‖结构 服务器 Data Dictionary/ Buffer cache Buffer cache 进程 cache PGA 后台 PMON (SMON BWR (LGWR(cKP(uhes)进程 ORACLE实例是指有自己的内存结构和相关的服务 器进程及后台进程的DBMS。 4.2.1.1内存结构 4.2.1.2进程 北京邮电次学软优学 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.2.1 ORACLE数据库实例组成 • ORACLE实例是指有自己的内存结构和相关的服务 器进程及后台进程的DBMS。 4.2.1.1 内存结构 4.2.1.2 进程 实例 Shared pool SGA Database Buffer cache Redo log Buffer cache Library cache Data Dictionary cache PMON SMON DBWR LGWR CKPT Others 内存 结构 后台 进程 用户 进程 服务器 进程 PGA
《数据厍设计与开发》讲义 4.2.1.1 ORACLE内存结构 ORACLE的内存结构主要有两个内存区域组成: SGA( System G1 obal area):系统全局区,是 ORACLE实例的基础,是一个共享区域,存放最 近使用的SQL语句、最近使用的数据、最近使用 的数据字典等信息,供各个进程调用 PGA( Program Global Area):程序全局区,该 区域是一非共享区域,存放会话、排序、游标、 主变量等信息,被服务器进程调用,保证谁的 请求处理结果给谁,谁的排序给谁,用户声明 的、打开的、使用的、关闭的游标是私有的, 用户的主变量不被其他用户干扰。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.2.1.1 ORACLE內存结构 • ORACLE的内存结构主要有两个内存区域组成: SGA(System Global Area):系统全局区,是 ORACLE实例的基础,是一个共享区域,存放最 近使用的SQL语句、最近使用的数据、最近使用 的数据字典等信息,供各个进程调用。 PGA(Program Global Area):程序全局区,该 区域是一非共享区域,存放会话、排序、游标、 主变量等信息,被服务器进程调用,保证谁的 请求处理结果给谁,谁的排序给谁,用户声明 的、打开的、使用的、关闭的游标是私有的, 用户的主变量不被其他用户干扰
《数据厍设计与开发》讲义 4.2.1.10 RACLE內存结构 ·系统全局区:系统全局区是实例的主要部 分。它含有数据维护、SQL语句分析与重做 缓存所必须的所有内存结构 系统全局区的数据是共享的,也就是说, 多个进程可以在同一时间对SGA中的数据进 行访问和修改。所有数据库操作都使用包 含在SGA中某点上的结构 ·当实例被创建时,分配SGA;当实例关闭时, 释放SGA 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.2.1.1 ORACLE內存结构 • 系统全局区:系统全局区是实例的主要部 分。它含有数据维护、SQL语句分析与重做 缓存所必须的所有内存结构。 • 系统全局区的数据是共享的,也就是说, 多个进程可以在同一时间对SGA中的数据进 行访问和修改。所有数据库操作都使用包 含在SGA中某点上的结构。 • 当实例被创建时,分配SGA;当实例关闭时, 释放SGA
《数据厍设计与开发》讲义 4.2.1.10 RACLE内存结构 SGA组成如下: 共享池。 数据库缓冲区高速缓存。 重做日志缓冲区。 另外orac1e9i还有 Java pool,8i有Java虚 拟机,解释Java; Java pool是利用数据库技 术解释Java oracle9i的SGA可以通过 SGA MAX SIZE被动 态的设置大小,8i不能动态设置 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.2.1.1 ORACLE內存结构 • SGA组成如下: –共享池。 –数据库缓冲区高速缓存。 –重做日志缓冲区。 另外oracle9i还有Java pool,8i有Java虚 拟机,解释Java;Java pool是利用数据库技 术解释Java. oracle9i的SGA可以通过SGA_MAX_SIZE被动 态的设置大小,8i不能动态设置
《数据厍设计与开发》讲义 4.2.1.1 ORACLE内存结构 共享池:共享池包括库高速缓存、数据字典 髙速缓存和服务器控制结构(例如数据库字 符集)。 参见下图 库高速缓冲 字典高速缓冲控制结构 共享专用SQL区 SQL区 永久区运行区 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.2.1.1 ORACLE內存结构 –共享池:共享池包括库高速缓存、数据字典 高速缓存和服务器控制结构(例如数据库字 符集)。 参见下图 库高速缓冲 字典高速缓冲 控制结构 共享 SQL区 专用SQL区 永久区 运行区
《数据厍设计与开发》讲义 4.2.1.10 racLe內存结构 共享池: 库高速缓存存储已提交给 RDBMS的SQL语句 文本、分析过的格式与执行计划,以及已被 执行的PL/SL包头与过程等。数据字典高速 缓存存储用于分析SL语句的数据字典行。 0 racle服务器用库高速缓存来提高执行 SQL语句的性能。当一条SQL语句提交时,服 务器首先查找高速缓存,查看相同的语句是 否已被提交或缓存过。如果有, Oracle使用 存储的语法分析树和执行路径来执行该语句, 使用存储代码可以获得明显的性能提高 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.2.1.1 ORACLE內存结构 –共享池: 库高速缓存存储已提交给RDBMS的SQL语句 文本、分析过的格式与执行计划,以及已被 执行的PL/SQL包头与过程等。数据字典高速 缓存存储用于分析SQL语句的数据字典行。 Oracle服务器用库高速缓存来提高执行 SQL语句的性能。当一条SQL语句提交时,服 务器首先查找高速缓存,查看相同的语句是 否已被提交或缓存过。如果有,Oracle使用 存储的语法分析树和执行路径来执行该语句, 使用存储代码可以获得明显的性能提高
《数据厍设计与开发》讲义 4.2.1.1 ORACLE内存结构 共享池: 对于使用以前缓存的SQL语句,它必须在所 有方面都与缓存版本完全相同,包括标点符号 和字母的大小写 库高速缓存包括共享和专用SQL区。共享 SL区包括SQL语句语法分析树和执行路径;专 用SQL区存储特定的会话信息,一个用户会话 能够一次打开的专用SL区的数量由init.ora 参数 OPEN CURSORS决定。 库高速缓存中的专用SQL区可更进一步分为 永久区和运行区。永久区中包含合法的信息 并可应用于SQL语句的多个执行中,而运行区 中仅包含正在被执行的SL语句的数据。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.2.1.1 ORACLE內存结构 –共享池: 对于使用以前缓存的SQL语句,它必须在所 有方面都与缓存版本完全相同,包括标点符号 和字母的大小写。 库高速缓存包括共享和专用SQL区。共享 SQL区包括SQL语句语法分析树和执行路径;专 用SQL区存储特定的会话信息,一个用户会话 能够一次打开的专用SQL区的数量由init.ora 参数OPEN_CURSORS决定。 库高速缓存中的专用SQL区可更进一步分为 永久区和运行区。永久区中包含合法的信息, 并可应用于SQL语句的多个执行中,而运行区 中仅包含正在被执行的SQL语句的数据
《数据厍设计与开发》讲义 4.2.1.1 ORACLE内存结构 共享池: 字典高速缓存含有 RDBMS引擎分析S哑L语句所使用 的数据字典信息。在这个区域中含有段信息、安全 性、访问权限和在可用的自由存储空间等信息 共享池的大小取决于init.ora文件参数 SHARED P0 OL SIZE,它是以字节为单位的。 ORACLE 9i可以通过 ALTER SYSTEM SET SHARED POOL SIZE动 态设置。 共享区经过长期装卸和卸载数据对象会产生许多 碎片,如果在共享池中没有足够的连续空间用来装 载目标数据,会产生错误。这个问题可以通过运行 SL命令 ALTER SYSTEM FLUSH SHARED POOL解决。但 是如果在数据库操作时,经常遇到共享池错误,就 必须增大共享池 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.2.1.1 ORACLE內存结构 –共享池: 字典高速缓存含有RDBMS引擎分析SQL语句所使用 的数据字典信息。在这个区域中含有段信息、安全 性、访问权限和在可用的自由存储空间等信息。 共享池的大小取决于init.ora文件参数 SHARED_POOL_SIZE,它是以字节为单位的。ORACLE 9i可以通过ALTER SYSTEM SET SHARED_POOL_SIZE动 态设置。 共享区经过长期装卸和卸载数据对象会产生许多 碎片,如果在共享池中没有足够的连续空间用来装 载目标数据,会产生错误。这个问题可以通过运行 SQL命令ALTER SYSTEM FLUSH SHARED_POOL解决。但 是如果在数据库操作时,经常遇到共享池错误,就 必须增大共享池