oracle基本组件概览_第1页
oracle基本组件概览_第2页
oracle基本组件概览_第3页
oracle基本组件概览_第4页
oracle基本组件概览_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基本组件概览 Oracle 体系结构包括很多基本组件,将详细介绍这些组件。 Oracle 服务器:Oracle 服务器中包含多种文件结构、进程结构和内存结构;但是,处理 SQL 语句时,并非所有这些结构都会用到。某些结构用于提高数据库的性能,确保该数据库在遇到软件或硬件错误时可以恢复,或者执行维护该数据库所需的其它任务。Oracle 服务器包括一个 Oracle 例程和一个 Oracle 数据库。 数据库服务器是信息管理的关键。一般来说,服务器必须可靠地管理多用户环境中的大量数据,以便多个用户能够同时访问同一数据。所有这一切都必须在保证高性能的同时进行。数据库服务器还必须防止未经授权的访问,并为故障恢复提供有效的解决方案。Oracle 例程:Oracle 例程是后台进程和内存结构的组合。只有启动例程后,才能访问数据库中的数据。每次启动例程时,会分配系统全局区 (SGA) 并启动 Oracle 后台进程。后台进程代表调用进程执行各种功能。它们把为每个用户运行的多个 Oracle 程序所处理的功能统一起来。后台进程执行输入/输出 (I/O),并监视其它 Oracle 进程来提高并行性,从而使性能和可靠性更加优越。 Oracle 例程由系统全局区 (SGA) 内存结构和用于管理数据库的后台进程组成。例程是通过使用特定于每个操作系统的方法来标识的。例程一次只能打开和使用一个数据库。建立连接和创建会话用户只有在连接到例程后,才能向 Oracle 数据库提交 SQL 语句。 用户启动 SQL*Plus 之类的工具,或者运行使用 Oracle Forms 之类的工具开发的应用程序。该应用程序或工具将作为用户进程来执行。 在最基本的配置中,用户登录到 Oracle 服务器时,运行 Oracle 服务器的计算机上就会创建一个进程。这个进程称为服务器进程。服务器进程代表客户机上运行的用户进程与 Oracle 例程进行通信。服务器进程代表用户执行 SQL 语句。 连接:连接是用户进程和 Oracle 服务器之间的通信路径。数据库用户可以采用以下三种方式之一连接到 Oracle 服务器: 用户登录到运行 Oracle 例程的操作系统上,然后启动访问该系统中的数据库的应用程序或工具。通信路径是使用主机操作系统上的进程间通信机制建立的。 用户在本地计算机上启动应用程序或工具,然后通过网络连接到运行 Oracle 例程的计算机。在这个称为客户机/服务器的配置中,用户和 Oracle 服务器使用网络软件进行通信。 在三层连接中,用户计算机通过网络与应用程序服务器或网络服务器进行通信,这些服务器又通过网络与运行 Oracle 例程的计算机连接。例如,用户在网络中的一台计算机上运行浏览器来使用位于 NT 服务器上的应用程序,该 NT 服务器又从 UNIX 主机上运行的 Oracle 数据库中检索数据。 会话:会话是用户与 Oracle 服务器的一种特定连接。会话在 Oracle 服务器验证用户后启动,当用户退出或出现异常终止时会话结束。对某个具体的数据库用户来说,如果该用户从很多工具、应用程序或者终端同时登录,则可能有很多并发会话。除了一些专用的数据库管理工具以外,启动数据库会话还要求 Oracle 服务器可供使用。 注:在此处所讲的连接类型中,用户进程和服务器进程之间存在一对一的通信关系,这称作专用服务器连接。使用共享服务器 (Shared Server) 配置时,多个用户进程可以共享服务器进程。Oracle 数据库:Oracle 数据库包含操作系统文件(也称为数据库文件),这些文件为数据库信息提供了实际的物理存储。数据库文件用于确保数据一致性并能在例程失败时得以恢复。 数据库的一般用途是存储和检索相关信息。Oracle 数据库具有逻辑结构和物理结构。数据库的物理结构是数据库中操作系统文件的集合。Oracle 数据库包含以下三类文件: 数据文件,包含数据库中的实际数据 重做日志文件,包含数据库的更改记录,可以在出现故障时恢复数据 控制文件,包含维护和验证数据库完整性所需的信息 其它关键文件:非数据库文件用于配置例程、验证特权用户以及在磁盘出现故障时 恢复数据库。 Oracle 服务器还使用一些其它文件,这些文件并不是数据库的一部分: 参数文件,用来定义 Oracle 例程的特性。例如,它包含调整 SGA 中一些内存结构大小的参数。 口令文件 验证哪些用户有权启动和关闭 Oracle 例程。 归档的重做日志文件 是重做日志文件的脱机副本,当必须从介质失败中进行恢复时可能会需要这些副本。用户进程和服务器进程:执行 SQL 语句时,用户进程和服务器进程是其中涉及的主要进程;但是,其它进程也会有助于服务器完成 SQL 语句的处理。 其它进程:还有很多供其它选件使用的其它进程,例如,高级排队 (Advanced Queuing)、实时应用集群 (Real Application Clusters)、共享服务器 (Shared Server) 和 高级复制 (Advanced Replication) 等。物理结构 Oracle 数据库的物理结构包括以下三种文件类型:控制文件、数据文件和重做日志文件。 内存结构Oracle 的内存结构由两个内存区组成,分别是: 系统全局区 (SGA) :在例程启动时分配,是 Oracle 例程的基本组件 程序全局区 (PGA) :在服务器进程启动时分配 系统全局区 (SGA)SGA包括以下几种内存结构: 共享池 数据库缓冲区高速缓存 重做日志缓冲区 其它结构(例如锁定和栓锁管理以及统计数据) 在SGA中还可配置其它两种内存结构: 大型共享池 Java 池SGA 也称作共享全局区,用于存储数据库进程共享的数据库信息。它包含有关 Oracle 服务器的数据和控制信息,在 Oracle 服务器所在计算机的虚拟内存中分配。要查看 SGA 内存的分配情况,可以使用下面的语句: SQL SHOW SGA:动态 SGA:从 Oracle9i 开始,动态 SGA 实施了一种体系结构,可以对 SGA 配置进行更改,而不必关闭例程。这样,在不关闭例程的情况下,就可以更改数据库缓冲区高速缓存和共享池的大小。因此,开始时可将数据库缓冲区高速缓存和共享池配置为一个较小的值,然后根据它们各自的工作量增减,但最大值不能超过由 SGA_MAX_SIZE 指定的值。 调整 SGA 的大小: SGA 的大小由几个初始化参数决定。对 SGA 的大小影响最大的参数有: DB_CACHE_SIZE:标准块的高速缓存大小。对于 UNIX,缺省值是 48 MB,对于 NT, 缺省值是 52 MB LOG_BUFFER:为重做日志缓冲区分配的字节数 SHARED_POOL_SIZE:专用于共享 SQL 和 PL/SQL 的内存区的大小(以字节为单位)。缺省值是 16 MB。如果是 64 位,则缺省值是 64 MB LARGE_POOL_SIZE:大型共享池的大小。缺省值是零(如果未将 init.ora 参数 PARALLEL_AUTOMATIC_TUNING 设置为 TRUE,则自动计算缺省值。) JAVA_POOL_SIZE:Java 池的大小。缺省值是 24 MB 因此,SGA 的大小不能超过 SGA_MAX_SIZE - DB_CACHE_SIZE - LOG_BUFFER SHARED_POOL_SIZE - LARGE_POOL_SIZE - JAVA_POOL_SIZE。 分配单位: 粒组是一个连续虚拟内存分配单位。粒组的大小取决于估算的 SGA 的总大小,这个总大小是根据参数 SGA_MAX_SIZE 的值计算的。 如果估算的 SGA 的大小小于 128 MB,那么粒组大小是 4 MB 否则为 16 MB组件(数据库缓冲区高速缓存和共享池)能够以粒组为单位进行增减。对于拥有粒组的每个组件而言,分配给该组件的粒组数、对该组件执行但暂时挂起的任何操作(例如,通过 ALTER SYSTEM 分配粒组、通过 ALTER SYSTEM 释放粒组,相应的自身优化),以及以粒组为单位的目标大小都将由 V$BUFFER_POOL 视图来跟踪和显示。启动例程时,Oracle 服务器将分配粒组条目,每个粒组使用一个条目来支持 SGA_MAX_SIZE 字节的地址空间。继续启动时,每个组件将根据需要获取足够的粒组。SGA 的最低配置是三个粒组(一个粒组用于固定的 SGA(包括重做缓冲区);一个粒组用于数据库缓冲区高速缓存;另一个粒组用于共享池)。共享池用于存储:最近执行的 SQL 语句 最近使用的数据定义 它包括以下两个与性能相关的关键内存结构: 库高速缓存 数据字典高速缓存 其大小由 SHARED_POOL_SIZE 参数确定共享池环境既包含固定结构,也包含可变结构。固定结构的大小相对保持不变,而可变结构的大小会根据用户和程序的需求增减。固定结构和可变结构的实际大小由一个初始化参数和 Oracle 内部算法来确定。 调整共享池大小: 由于共享池用于可以全局共享的对象,如可重复使用的 SQL 执行计划、PL/SQL 程序包、过程、函数和游标信息,所以必须对它的大小进行调整,以满足固定区和可变区的需要。分配给共享池的内存由 SHARED_POOL_SIZE 初始化参数确定。使用 ALTER SYSTEM SET,便可以动态地重新调整它的大小。经过性能分析后,就可以调整它的大小,但 SGA 的总大小不能超过 SGA_MAX_SIZE。 库高速缓存 库高速缓存的大小视所定义的共享池大小而定。内存分配是在对语句进行语法分析或调用程序单元时进行。如果共享池的大小太小,就会将语句连续重新载入库高速缓存,从而使性能受到影响。库高速缓存由算法 LRU 来管理。高速缓存填满时,将从库高速缓存中删除最近很少使用的执行路径和语法分析树,以便为新条目腾出空间。如果某些 SQL 或 PL/SQL 语句未再次使用,它们最终会被删除。 库高速缓存包括以下两个结构: 共享 SQL:共享 SQL 为针对数据库运行的 SQL 语句存储并共享执行计划和语法分析树。下次运行同一 SQL 语句时,这个语句就能利用共享 SQL 提供的语法分析信息来加快其执行速度。要确保 SQL 语句随时可以使用共享 SQL 区,文本、方案和绑定变量必须完全相同。 共享 PL/SQL:共享 PL/SQL 区存储并共享最近执行的 PL/SQL 语句。经过语法分析和编译的程序单元和过程(函数、程序包和触发器)都存储在这个区中。 数据字典高速缓存 数据字典高速缓存也称作字典高速缓存或行高速缓存。将数据字典信息同时高速缓存到数据库缓冲区和共享池内存中,可以提高性能。有关数据库(用户帐户数据、数据文件名、段名、区的位置、表的说明和用户权限)的信息都存储在数据字典表中。当服务器需要用到这类信息时,将会读取数据字典表,返回的数据将存储在数据字典高速缓存中。 调整数据字典的大小: 数据字典的整体大小取决于共享池的大小,并由数据库进行内部管理。如果数据字典高速缓存太小,那么数据库必须对数据字典表进行反复地查询,才能获得服务器所需要的信息。这些查询称作递归调用,它在速度上要慢于对数据字典高速缓存所进行的直接查询,因为直接查询不使用 SQL。处理查询时,Oracle 服务器进程在数据库缓冲区高速缓存中查找任何所需的块。如果未在数据库缓冲区高速缓存中找到这个块,服务器进程就从数据文件读取这个块,并在数据库缓冲区高速缓存中放置一个副本。由于对同一个块的后续请求可以在内存中找到这个块,因此这些请求可能不需要进行物理读取。Oracle 服务器使用 LRU 算法来释放近期未被访问的缓冲区,以便在数据库缓冲区高速缓存中为新块腾出空间。数据库缓冲区高速缓存 存储已从数据文件中检索到的数据块的副本 能够大幅提高获取和更新数据时的性能 通过 LRU 算法管理 主块的大小由 DB_BLOCK_SIZE 确定 处理查询时,Oracle 服务器进程在数据库缓冲区高速缓存中查找任何所需的块。如果未在数据库缓冲区高速缓存中找到这个块,服务器进程就从数据文件读取这个块,并在数据库缓冲区高速缓存中放置一个副本。由于对同一个块的后续请求可以在内存中找到这个块,因此这些请求可能不需要进行物理读取。Oracle 服务器使用 LRU 算法来释放近期未被访问的缓冲区,以便在数据库缓冲区高速缓存中为新块腾出空间。调整数据库缓冲区高速缓存的大小: 数据库缓冲区高速缓存中每个缓冲区的大小等于一个 Oracle 块的大小,它由DB_BLOCK_SIZE 参数来指定。数据库缓冲区高速缓存由独立的子高速缓存组成,子高速缓存用于缓冲区池和多个块大小。参数 DB_BLOCK_SIZE 确定主块的大小,主块的大小用于 SYSTEM 表空间。 以下三个参数定义了数据库缓冲区高速缓存的大小: DB_CACHE_SIZE:只调整缺省缓冲区高速缓存的大小,这个参数始终存在且不能设置为零 DB_KEEP_CACHE_SIZE:调整保留缓冲区高速缓存的大小,用于保留内存中很可能会重新使用的块 DB_RECYCLE_CACHE_SIZE:调整循环缓冲区高速缓存的大小,用于删除内存中重新使用的可能性很小的块缓冲区高速缓存咨询功能: 缓冲区高速缓存咨询功能可以启用和禁用统计信息的收集,这些统计信息用于预测不同高速缓存大小的行为。这些统计信息所提供的信息可以帮助您针对具体的工作量,调整数据库缓冲区高速缓存的大小,以达到最佳性能。缓冲区高速缓存咨询信息通过 V$DB_CACHE_ADVICE 视图收集和显示。 可以通过初始化参数 DB_CACHE_ADVICE 启用缓冲区高速缓存咨询功能。这个参数是一个动态参数,可以使用 ALTER SYSTEM 来更改。可供使用的三个值是 OFF、ON 和 READY。 DB_CACHE_ADVICE 参数值: OFF:咨询功能关闭,并且没有为咨询功能分配内存 ON:咨询功能打开,并产生 CPU 和内存开销 如果参数处于 OFF 状态,在尝试将它设置为 ON 状态时会产生 ORA-4031 错误:当参数切换到 ON 时,无法从共享池分配内存。如果参数处于 READY 状态,则能正确地设置为 ON,因为此时已为咨询功能分配内存。 READY:咨询功能关闭,但已经为咨询功能分配内存。在实际打开咨询功能前分配内存可以避免产生 ORA-4031 错误。如果将参数从 OFF 状态直接切换到 ON,可能会产生 ORA-4031 错误。 重做日志缓冲区 记录对数据库数据块所做的全部更改 主要用于恢复 其中记录的更改称作重做条目 重做条目包含用于重新构造或重做更改的信息 大小由 LOG_BUFFER 定义重做日志缓冲区是一个循环缓冲区,它包含对数据文件块所做的各种更改。此信息存储在重做条目中。重做条目包含将数据恢复到使用 INSERT、UPDATE、DELETE、 CREATE、ALTER、或 DROP 操作进行更改前的状态所需要的信息。 调整重做日志缓冲区的大小: 重做日志缓冲区的大小由初始化参数 LOG_BUFFER 定义。 大型共享池SGA 中的可选内存区 分担了共享池的一部分工作 用于:共享服务器的会话内存 (UGA) I/O 服务器进程 备份和恢复操作或 RMAN 并行执行消息缓冲区 将 PARALLEL_AUTOMATIC_TUNING 设置为 TRUE不使用 LRU 列表 大小由 LARGE_POOL_SIZE 确定通过从大型共享池为共享服务器、Oracle XA 或并行查询缓冲区分配会话内存,Oracle 可将共享池主要用于高速缓存共享的 SQL 语句。这样,便减轻了共享池中各区的工作负担。共享池无需再提供内存以高速缓存 SQL 语法分析树,来支持共享服务器会话信息、I/O 以及备份和恢复进程。由于增减共享 SQL 高速缓存的开销降低,性能得以提高。 备份和恢复: 如果设置了 BACKUP_DISK_IO= n 和 BACKUP_TAPE_IO_SLAVE = TRUE 参数,则恢复管理器 (RMAN) 将使用大型共享池。如果大型共享池已经配置,但不够大,则在大型共享池中分配内存就会失败。RMAN 将错误消息写入警报日志文件,而且不使用 I/O 操作进行备份或恢复操作。 并行执行: 如果将 PARALLEL_AUTOMATIC_TUNING 设置为 TRUE,将使用大型共享池。否则,将把这些缓冲区分配至共享池。 调整大型共享池的大小: 大型共享池的大小由 LARGE_POOL_SIZE 参数定义,单位是字节。该参数不是动态参数。 大型共享池和 LRU 列表: 大型共享池并不包含 LRU 列表。它与使用 LRU 列表的共享池中的保留空间不同。Java 池存储Java命令的服务分析要求 在安装并使用Java时是必需的 大小由JAVA_POOL_SIZE参数确定Java 池是一个可选设置,但如果安装并使用 Java,则需要使用 Java 池。Java 池大小可以使用 JAVA_POOL_SIZE 参数设置,单位为字节。在 Oracle9i,Java 池的缺省大小是 24 MB。 程序全局区 (PGA)程序全局区或进程全局区 (PGA) 是内存区,它包含有关单个服务器进程或单个后台进程的数据和控制信息。PGA 在创建进程时分配,并在终止进程时回收。与由若干个进程共享的 SGA 相比,PGA 是仅供一个进程使用的区。 PGA 的内容: PGA 内存的内容会因不同情况而变化,这取决于例程是在专用服务器配置还是在共享服务器配置下运行。一般来讲,PGA 内存包括下列组件: 专用 SQL 区:包含绑定信息和运行时内存结构之类的数据。发出 SQL 语句的每个会话均拥有一个专用 SQL 区。提交同一 SQL 语句的每个用户都拥有自己的使用单个共享 SQL 区的专用 SQL 区。因此,许多专用 SQL 区都与同一个共享 SQL 区相关联。一个游标的专用 SQL 区可以分成以下两个区: 永久区:包含绑定信息,并且只在关闭游标时释放 运行时区:在执行请求时的第一步创建。对于 INSERT、UPDATE 和 DELETE 命令,该区在执行语句后释放,对于查询操作,该区只在提取所有行或取消查询后释放。 专用 SQL 区的位置取决于为会话建立的连接类型。在专用服务器环境中,专用 SQL 区位于各自服务器进程的 PGA 中。在共享服务器环境中,专用 SQL 区位于 SGA 中。 管理专用 SQL 区是用户进程的职责。用户进程可以分配的专用 SQL 区的数目始终由初始化参数 OPEN_CURSORS 来限制。该参数的缺省值是 50。 会话内存:包含为保留会话变量以及与该会话相关的其它信息而分配的内存。对于共享服务器环境,该会话是共享的而不是专用的。 SQL 工作区:用于大量占用内存的操作,如排序、散列联接、位图合并和位图创建。工作区的大小可进行控制和调整。 自 Oracle9i 起,工作区的大小可以进行自动的全局管理。要实现这种功能,可将 WORKAREA_SIZE_POLICY 参数设置成缺省情况下的 AUTO,同时设置 PGA_AGGREGATE_TARGET 初始化参数。DBA 可以对 PGA_AGGREGATE_TARGET 参数进行设置,以指定该例程可以使用的 PGA 内存的目标聚集数目。此参数只是 一个指标,可以由 DBA 在例程一级动态修改。设置值的单位可以是字节数、千字 节数、兆字节数或吉字节数。设置完这些参数后,工作区的大小即可自动调整,这 些会话将忽略所有的 *_AREA_SIZE 参数。 专用服务器和共享服务器之间的内存分配差异: PGA 内存的内容会因不同情况而变化,这取决于例程是在专用服务器配置下还是在共享服务器配置下运行。一般来讲,PGA 内存包括下列组件: 进程结构 Oracle 利用了以下几种进程的优势: 用户进程:在数据库用户请求连接到 Oracle 服务器时 启动 请求与 Oracle 服务器交互的程序 必须先建立连接 不与 Oracle 服务器直接交互 需要从数据库请求信息的数据库用户必须先建立与 Oracle 服务器的连接。连接由 SQL*Plus 这类的数据库接口工具请求,并开始用户进程。用户进程并不与 Oracle 服务器直接进行交互操作,而是通过用户程序接口 (UPI) 生成各种调用。用户程序接口则可以创建会话并启动服务器进程。 服务器进程:与 Oracle 例程相连接,在用户建立会话 时启动 直接与 Oracle 服务器交互的程序 执行生成的调用并返回相关结果 可以是专用服务器或共享服务器 用户建立连接后,服务器进程便会启动,以处理用户进程的请求。服务器进程可以是专用服务器进程或共享服务器进程。在专用服务器环境中,服务器进程只处理一个用户进程的请求。用户进程断开连接后,服务器进程就会终止。在共享服务器环境中,服务器进程将处理多个用户进程的请求。服务器进程可以通过 Oracle 程序接口 (OPI) 与 Oracle 服务器进行通信。 后台进程:在 Oracle 例程启动时启动 维护并加强物理结构与内存结构之间的关系 必备的后台进程:DBWnPMONCKPT LGWRSMON 可选的后台进程:ARCnLMDn RECO CJQ0LMON Snnn DnnnPnnn LCKnQMNn Oracle 体系结构有五个必备的后台进程,本课将详细介绍这些进程。除了必备的后台进程列表以外,Oracle 体系结构中还有很多可选的后台进程。如果选择使用这些可选的后台进程,它们便会启动。除了 ARCn 后台进程之外,这些可选的进程不在本课所涉及的范围之内。下面列出了一些可选的后台进程: RECO:恢复程序 QMNn:高级排队 ARCn:归档程序 LCKn: RAC 锁管理器 例程锁 LMON:RAC DLM 监控程序 全局锁 LMDn:RAC DLM 监控程序 远程锁 CJQ0:协调程序作业队列后台进程 Dnnn:调度程序 Snnn:共享服务器 Pnnn:并行查询从属 数据库写入程序 (DBWn)服务器进程在数据库缓冲区高速缓存中记录对还原块和数据块所做的更改。DBWn 将数据库缓冲区高速缓存中的灰数据缓冲区写入数据文件。这可确保数据库缓冲区高速缓存中有足够数量的空闲缓冲区(即当服务器进程需要读取数据文件中的块时可以覆盖的缓冲区)可用。由于服务器进程只在数据库缓冲区高速缓存中进行更改,因此提高了数据库的性能。 DBWn 延迟写入数据文件,直到发生下列事件之一: 增量或正常检查点灰数据缓冲区的数量达到阈值进程扫描指定数量的块而无法找到任何空闲缓冲区时出现超时实时应用集群 (Real Application Clusters, RAC) 环境中出现 ping 请求使一般表空间或临时表空间处于脱机状态使表空间处于只读模式删除或截断表 执行 ALTER TABLESPACE 表空间名 BEGIN BACKUP 操作 日志写入器 (LGWR)LGWR 在下列情况下执行从重做日志缓冲区到重做日志文件的连续写入: 当提交事务时当重做日志缓冲区的三分之一填满时当重做日志缓冲区中记录了超过 1 MB 的更改时在 DBWn 将数据库缓冲区高速缓存中修改的块写入数据文件以前每隔三秒 因为恢复操作需要重做,所以 LGWR 只在重做写入磁盘后确认提交操作。LGWR 还可以调用 DBWn 来写入数据文件。系统监控程序 (SMON)如果 Oracle 例程失败,那么 SGA 中尚未写入磁盘的所有信息都会丢失。例如,操作系统的失败导致例程失败。例程丢失后,后台进程 SMON 在数据库重新打开时自动执行例程 恢复。恢复例程需要执行以下步骤: 1.前滚以恢复尚未记入数据文件但已经记入联机重做日志中的数据。由于例程失败时 SGA 的丢失,所以尚未将这些数据写入磁盘。在该进程中,SMON 读取重做日志文件并将重做日志中记录的更改应用到数据块中。由于提交的所有事务处理都已写入重做日志,因此该进程完全恢复了这些事务处理。2.打开数据库以便用户可以登录。未被未恢复事务处理锁定的任何数据都立即可用。3.回退未提交的事务处理。它们由 SMON 回退,或在访问锁定的数据时由单个服务器进程回退。 SMON 也执行一些空间维护功能: 它联合或合并数据文件中空闲空间的邻近区域。它回收临时段,将它们作为数据文件中的空闲空间返回。 过程监视器 (PMON)进程失败后,后台进程 PMON 通过下面的方法进行清理: 回退用户的当前事务处理释放当前保留的所有表锁或行锁释放用户当前保留的其它资源重新启动已失效的调度程序 检查点 (CKPT)每隔三秒,CKPT 进程就会向控制文件存储数据,以标识重做日志文件中恢复操作的起始位置,该操作称作检查点。检查点的用途是确保数据库缓冲区高速缓存中在时间点之间发生修改的所有缓冲区内容都已写入数据文件。这个时间点(称作检查点位置)是例程失败时开始恢复数据库的位置。DBWn 应将数据库缓冲区高速缓存中在该时间点之前发生修改的所有缓冲区内容写入数据文件。对于 Oracle9i 之前的版本,这项操作在重做日志的结尾处执行。切换日志时,CKPT 还将这个检查点的信息写入数据文件的头部。 启动检查点的原因如下: 确保定期向磁盘写入内存中发生修改的数据块,以便在系统或数据库失败时不会丢失数据缩短例程恢复所需的时间。只需处理最后一个检查点后面的重做日志条目以启动恢复操作确保提交的所有数据在关闭期间均已写入数据文件 由 CKPT 写入的检查点信息包括检查点位置、系统更改号、重做日志中恢复操作的起始位置以及有关日志的信息等等。 注:CKPT 并不将数据块写入磁盘,或将重做块写入联机重做日志。 归档程序 (ARCn)所有其它后台进程都是可选的,这将取决于数据库的配置;但是,其中的 ARCn 进程对于丢失磁盘数据后的数据库恢复起着至关重要的作用。当联机重做日志文件填满时,Oracle 服务器开始写入下一个联机重做日志文件。从一个重做日志到另一个重做日志的切换过程称为日志切换。ARCn 进程在每次日志切换时备份或归档已满的日志组。在日志能够重新使用之前,它自动将联机重做日志归档,从而保留对数据库所做的全部更改。这样,即使磁盘驱动器损坏,DBA 也能够将数据库恢复到出现故障前的状态。 归档重做日志文件:DBA 必须做出的一个重要决策是配置数据库以 ARCHIVELOG 模式还是以 NOARCHIVELOG 模式操作。 NOARCHIVELOG 模式:在 NOARCHIVELOG 模式下,每次发生日志切换时,就会覆盖联机重做日志文件。只有重做日志组的检查点完成后,LGWR 才会覆盖该日志组。这就确保发生例程崩溃时提交的数据能够得以恢复。在例程崩溃的过程中,只会丢失 SGA 中的数据。磁盘数据不会丢失,而只会丢失内存中的数据。例如,当操作系统的崩溃引起例程崩溃时。 ARCHIVELOG 模式:如果将数据库配置为以 A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论