数据库管理员的概念

此页上的脚本内容仅用于导航目的,不会以任何方式变更该内容。

本部分介绍了数据库管理员的职责、工具和基本知识。

数据库管理员的职责

数据库管理员 (DBA) 的主要职责是向其用户提供企业数据。

DBA 必须与开发人员密切合作,确保其应用高效地使用数据库,并与系统管理员合作,确保物理资源充足且使用高效。

Oracle DBA 负责了解 Oracle AI Database 体系结构以及数据库的工作方式。DBA 可以执行下列任务:

用户的类型及其角色和责任取决于数据库环境。一个小型数据库可以有一个 DBA。一个非常大的数据库可能会将 DBA 的职责分给多个专家,例如安全官、备份操作员和应用程序管理员。

另请参见:

适用于数据库管理员的工具

Oracle 提供了多种用于管理数据库的工具。

本节介绍一些常用的工具。

Oracle Enterprise Manager

Oracle Enterprise Manager (Enterprise Manager) 是一个基于 Web 的系统管理工具,用于管理 Oracle 数据库、Exadata 数据库计算机、Fusion Middleware、Oracle 应用程序、服务器、存储以及非 Oracle 硬件和软件。

Oracle Enterprise Manager Cloud Control

Oracle Enterprise Manager Cloud Control (Cloud Control) 是一个基于 Web 的界面,为管理员提供对 Oracle 技术堆栈和非 Oracle 组件的完整监视。

有时,快速应用程序通知 (FAN) 的组件可能不可用或遇到性能问题。在这种情况下,Cloud Control 将显示自动生成的警报,以便管理员可以采取适当的恢复操作。

Cloud Control 的组件包括:

另请参见:

Oracle Enterprise Manager Database Express 12c

Oracle Enterprise Manager Database Express (EM Express) 是内置在 Oracle 数据库中的 Web 管理产品。它不需要特殊的安装或管理。

EM Express 包含 Cloud Control 中的密钥性能管理和基本管理页面。这些页面包括:

您可以通过 EM Express 控制台联机访问这些功能,也可以通过 Active Reports 技术脱机访问这些功能。从架构的角度来看,EM Express 没有中间层或中间件组件,可以确保其在数据库服务器上的开销可以忽略不计。

使用 EM Express,可以执行管理任务,例如管理用户安全性以及管理数据库内存和存储。还可以查看有关数据库的性能和状态信息。

另请参阅:Oracle AI Database 性能调优入门,了解如何使用 EM Express 管理数据库

SQL*Plus

SQL*Plus 是包含在每个 Oracle AI Database 安装中的交互式批处理查询工具。

它具有命令行用户界面,可用作连接数据库时的客户机。SQL*Plus 具有自己的命令和环境。使用该工具可以输入并执行 SQL、PL/SQL、SQL*Plus 和操作系统命令来执行如下任务:

您可以使用 SQL*Plus 以交互方式或批处理方式生成报告,以及将结果输出到文本文件、屏幕或是可通过 Internet 浏览的 HTML 文件。您可以使用 HTML 输出工具自动生成报告。

另请参阅:SQL*Plus 用户指南和参考以了解有关 SQL*Plus 的更多信息

用于数据库安装和配置的工具

Oracle 提供了多种工具来简化安装和配置 Oracle AI Database 软件的任务。

下表介绍了支持的工具。

表 1 用于数据库安装和配置的工具

工具 说明 详细了解
Oracle Universal Installer (OUI) OUI 是一个 GUI 实用程序,可用于查看、安装和卸载 Oracle AI Database 软件。联机帮助可用于指导您完成安装。 联机帮助,指导您完成安装
Database Upgrade Assistant (DBUA) DBUA 以交互方式引导您完成数据库升级,并为新发行版配置数据库。DBUA 通过执行通常手动执行的所有任务来自动执行升级。DBUA 会针对配置选项(例如表空间和联机重做日志)提出建议。 Oracle AI Database 2 Day DBA ,了解如何使用 DBUA 升级数据库
数据库配置辅助程序 (DBCA) DBCA 提供了用于创建和配置数据库的图形界面和指导式工作流。通过此工具,您可以从 Oracle 提供的模板创建数据库,或者创建自己的数据库和模板。 Oracle AI Database Administrator’s Guide ,了解如何使用 DBCA 创建数据库

用于 Oracle Net 配置和管理的工具

Oracle Net Services 提供分布式异构计算环境中的企业级连接解决方案。Oracle Net 是 Oracle Net Services 的组件之一,它支持客户机应用程序到数据库的网络会话。

您可以使用以下工具来配置和管理 Oracle Net Services:

另请参见:

用于数据移动和分析的工具

Oracle AI Database 包括多个实用程序,可帮助进行数据移动和分析。

例如,可以使用数据库实用程序:

表 2 数据移动和分析任务

任务 详细了解
从操作系统文件将数据加载到 Oracle AI Database 表中 “SQL*Loader ”
将数据和元数据从一个数据库移动到另一个数据库 “Oracle Data Pump 导出和导入”
通过 SQL 接口查询重做日志文件 “Oracle LogMiner ”
管理 Oracle AI Database 数据 “ ADR Command Interpreter (ADRCI) ”

其他任务包括对脱机数据库或具有 DBVERIFY 的数据文件执行物理数据结构完整性检查,或者使用 DBNEWID 实用程序更改操作数据库的数据库标识符 (DBID) 或数据库名称。

注意:

另请参见:

SQL*Loader

SQL*Loader 会将数据从外部文件(称为数据文件)(不要与内部数据库数据文件混淆)加载到数据库表中。它拥有一个强大的数据语法分析引擎,对数据文件中的数据格式几乎没有限制。

可以使用 SQL*Loader 执行以下操作:

典型的 SQL*Loader 会话将 SQL*Loader 控制文件和一个或多个数据文件作为输入。输出为 Oracle 数据库、日志文件、错误文件以及可能丢弃的文件。下图说明了典型 SQL*Loader 会话的流。

图 1:SQL*Loader 会话

插图 cncpt271.gif 的说明

还可以使用 SQL*Loader 快速模式,在 SQL*Loader 命令中指定 table 参数时会激活该模式,如下例所示:

% sqlldr hr table=employees

不允许使用任何控制文件,这使得 SQL*Loader 更易于使用。SQL*Loader 不对控制文件进行语法分析,而是使用表列定义来确定输入数据类型。SQL*Loader 会做出一些默认假设,包括字符集、字段分隔符以及数据、日志和错误文件的名称。可以使用命令行参数覆盖许多缺省值。

另请参见:

Oracle 数据泵导出和导入

Oracle Data Pump 支持将数据和元数据从一个数据库高速移动到另一个数据库。

此技术是以下 Oracle AI Database 数据移动实用程序的基础:

Oracle Data Pump 由以下不同部分组成:

下图显示了 Oracle Data Pump 如何与 SQL*Loader 和外部表集成。如图所示,SQL*Loader 与外部表 API 和数据泵 API 集成,以将数据加载到外部表中。Oracle Enterprise Manager Cloud Control (Cloud Control) 和可传输表空间等客户机可以使用 Oracle Data Pump 基础结构。

图 2:Oracle Data Pump 体系结构

插图 cncpt261.png 的说明

另请参见:

Oracle LogMiner

Oracle LogMiner 允许您通过 SQL 界面查询重做日志文件。

重做日志文件中包含的数据的潜在用途包括:

可通过命令行界面或 Oracle LogMiner Viewer GUI(Enterprise Manager 的一部分)访问 LogMiner。

另请参阅:Oracle AI Database Utilities 以了解有关 LogMiner 的更多信息

ADR 命令解释器 (ADRCI)

ADRCI 是一个命令行实用程序,用于调查问题、查看健康检查报表、打包优先故障数据并将这些数据上载到 Oracle 技术支持。

也可以使用此实用程序查看自动诊断资源库 (Automatic Diagnostic Repository,ADR) 中的跟踪文件的名称以及查看预警日志。ADRCI 具有丰富的命令集,您可以交互使用或在脚本中使用。

另请参见:

数据库管理员主题

本节介绍对 DBA 最重要且未在手册其他部分讨论的主题。

备份和恢复

备份和恢复是保护数据库免受介质故障或用户错误导致的数据丢失所涉及的一组概念、过程和策略。

backup 是数据的副本。备份可以包括数据库的关键部分,例如数据文件、服务器参数文件和控制文件。示例备份和恢复方案是导致数据文件丢失的故障磁盘驱动器。如果丢失的文件存在备份,则可以恢复并恢复该文件。在丢失之前将数据恢复到其状态所涉及的操作称为介质恢复。

本部分涵盖以下主题:

另请参见:

备份和恢复技术

您可以使用 Recovery Manager 或用户管理的技术来备份、还原和恢复 Oracle 数据库。

这两种方法之间的主要区别如下:

另请参见:

Recovery Manager 体系结构

可以从命令行和 Enterprise Manager Cloud Control (Cloud Control) 访问 RMAN 和 Oracle Secure Backup。

Cloud Control 为 RMAN 提供了图形化的前端和调度工具。输入作业参数,然后指定作业调度。Cloud Control 在指定的时间或指定的重复时间间隔运行 RMAN 以执行备份和恢复操作。Cloud Control 通过一组向导提供对 RMAN 的访问。这些向导将根据对数据库、可用备份和数据恢复目标的分析,引导您完成各种恢复过程。

通过使用 Cloud Control,您可以执行本文档中概述的更简单的恢复和恢复方案。您还可以使用更复杂的恢复和恢复技术,例如时间点恢复和 Oracle Flashback 操作,从而高效修复介质故障和用户错误。使用 Cloud Control 通常比 RMAN 命令行客户机更简单。

下图显示了 RMAN 体系结构样例。可通过 Cloud Control 访问的 RMAN 客户机使用目标数据库上的服务器会话将数据备份到磁盘或磁带。RMAN 可以使用备份元数据更新外部恢复目录。

图 3:RMAN 架构

插图 cncpt318.gif 的说明

无论您使用哪种备份和恢复技术,Oracle 建议您配置快速恢复区。此数据库管理的目录、文件系统或 Oracle ASM 磁盘组集中了备份和恢复文件,包括活动控制文件、联机和归档重做日志文件以及备份。Oracle AI Database 恢复组件与快速恢复区交互,以确保数据库可恢复性。

另请参见:

数据库备份

数据库备份可以是物理备份,也可以是逻辑备份。

物理备份是备份和恢复策略中的主要问题,是物理数据库文件的副本。可以使用 RMAN 或操作系统实用程序进行物理备份。

相反,逻辑备份包含表、存储过程和其他逻辑数据。可以使用数据泵导出等 Oracle AI Database 实用程序提取逻辑数据,并将其存储在二进制文件中。逻辑备份可以补充物理备份。

物理备份具有较大的粒度和有限的可传输性,但速度非常快。逻辑备份具有细粒度和完全可传输性,但速度比物理备份慢。

整个数据库和部分数据库备份

整个数据库备份是指对数据库中的每个数据文件以及控制文件的备份。整个数据库备份是最常见的备份类型。

部分数据库备份包括数据库的一部分:单个表空间或数据文件。表空间备份是表空间或多个表空间中所有数据文件的备份。表空间备份(无论一致还是不一致)仅在数据库以 ARCHIVELOG 模式运行时有效,因为需要重做才能使还原的表空间与数据库的其余部分保持一致。

一致和不一致的备份

整个数据库备份是一致的或不一致的。

在一致备份中,所有读/写数据文件和控制文件都具有相同的 checkpoint SCN ,从而保证这些文件包含直到此 SCN 的所有更改。此类型的备份在恢复后不需要进行恢复。

只有在一致的关闭后,才能对数据库进行一致的备份,这是在 NOARCHIVELOG 模式下运行的数据库的唯一有效备份选项。其他备份选项需要介质恢复以实现一致性,如果不应用归档重做日志文件,则无法实现一致性。注:如果在不应用重做的情况下还原一致的整个数据库备份,则将丢失备份后进行的所有事务处理。

在不一致的备份中,读/写数据文件和控制文件不能保证具有相同的检查点 SCN,因此可能会丢失更改。所有联机备份必然不一致,因为可以在备份时修改数据文件。

不一致的备份可提供卓越的可用性,因为您无需关闭数据库即可进行完全保护数据库的备份。如果数据库在 ARCHIVELOG 模式下运行,并且备份了归档重做日志和数据文件,则不一致的备份可能会成为良好的备份和恢复策略的基础。

另请参见:

备份集和映像副本

RMAN BACKUP 命令可生成映像副本或备份集。

备份类型不同,如下所示:

另请参阅:Oracle AI Database Backup and Recovery User’s Guide 以了解有关备份集和映像副本的更多信息

数据修复

虽然有几个问题可能会阻止数据库的正常运行或影响 I/O 操作,但只有一些问题需要 DBA 干预和数据修复。

在以下情况下,通常需要进行数据修复:

通常,您有多种方法来解决上述问题。本节概述了其中一些解决方案。

另请参见:

Oracle Flashback 技术

Oracle AI Database 提供了一组称为 Oracle Flashback Technology 的功能,这些功能支持查看过去的数据状态和及时回绕数据,而无需还原备份。

根据数据库更改,闪回功能通常可以更快地逆转不需要的更改,并且对可用性的影响比介质恢复小。以下闪回功能与备份和恢复最相关:

另请参见:

块介质回收

块介质恢复是一种在数据文件联机时恢复和恢复损坏的数据块的技术。

块损坏是未采用可识别的 Oracle 格式或其内容在内部不一致的数据块。如果您检测到块损坏,并且只有几个块损坏,则块恢复可能比数据文件恢复更好。

另请参见:

数据文件恢复

数据文件恢复修复丢失或损坏的当前数据文件或控制文件。它还可以恢复在没有 OFFLINE NORMAL 选项的情况下表空间脱机时丢失的更改。

如果恢复数据文件或控制文件的备份,或者在不使用 OFFLINE NORMAL 选项的情况下使数据文件脱机,则必须进行介质恢复。如果联机数据文件需要介质恢复,则无法打开数据库,在介质恢复完成之前,也无法使需要介质恢复的数据文件联机。

要恢复数据文件或控制文件的物理备份,需要重建数据文件并将其提供给 Oracle AI Database。要恢复备份,请应用归档重做日志文件以重建丢失的更改。RMAN 还可以使用增量备份恢复数据文件,增量备份仅包含上次备份后修改的数据块。

与自动将更改应用于联机文件的实例恢复不同,介质恢复必须由用户调用,并将归档重做日志文件应用于还原的备份。数据文件介质恢复只能对任何数据库实例未打开的数据库中的脱机数据文件或数据文件执行操作。

数据文件介质恢复因是否应用所有更改而异:

另请参见:

零数据丢失恢复一体机

云级 Zero Data Loss Recovery Appliance(通常称为 Recovery Appliance )是一个集成系统,可显著降低企业中所有 Oracle 数据库的数据丢失和备份开销。

Recovery Appliance 与 RMAN 集成,使用云规模、容错的硬件和存储为大量数据库部署集中式备份和恢复策略。Recovery Appliance 会持续验证备份以实现可恢复性。

Recovery Appliance 的优势

集中式 Recovery Appliance 可执行大多数数据库备份和还原处理,从而提高备份的存储利用率、性能和可管理性。

主要好处如下:

Recovery Appliance 环境

受保护数据库是将数据备份到 Recovery Appliance 的客户端数据库。

下图显示了示例环境,其中包括六个受保护数据库和两个恢复设备。每个数据库都使用 Zero Data Loss Recovery Appliance 备份模块( Recovery Appliance 备份模块)进行备份。此模块是 Oracle 提供的 SBT 库,RMAN 使用该库将备份通过网络传输到 Recovery Appliance。

图 4:Recovery Appliance 环境

插图 amagd_vm_025.png 的说明

Recovery Appliance 元数据数据库位于每个 Recovery Appliance 上,用于管理存储在恢复目录中的元数据。将备份发送到 Recovery Appliance 的所有受保护数据库都必须使用此恢复目录。备份位于 Recovery Appliance 存储位置,即一组 Oracle ASM 磁盘组。注:数据库可以使用 Recovery Appliance 作为恢复目录,而无需将其用作备份资料档案库。

管理员使用 Cloud Control 来管理和监视环境。Cloud Control 为每个数据库提供整个备份生命周期的“单一管理平台”视图,无论备份位于磁盘、磁带还是其他 Recovery Appliance 上。

内存管理

内存管理涉及根据数据库更改需要使 Oracle 实例的内存结构保持最优大小。初始化参数设置确定如何管理 SGA 和实例 PGA 内存。图 22-5 显示了内存管理选项的决策树。以下各节详细介绍了这些选项。

图 5:内存管理方法

插图 cncpt242.gif 的说明

自动内存管理

在自动内存管理中,Oracle AI Database 完全自动管理 SGA 和实例 PGA 内存。此方法最简单,Oracle 强烈建议您使用此方法。

用户指定的唯一控件是目标内存大小初始化参数 (MEMORY_TARGET) 和可选的最大内存大小初始化参数 (MEMORY_MAX_TARGET)。Oracle AI Database 可根据目标内存大小进行调优,并根据需要在 SGA 和实例 PGA 之间重新分配内存。

SGA 可以包含 In-Memory Column Store (IM 列存储)或 memoptimize pool ,两者都是可选的。无论使用哪种内存管理方法,都可以使用 INMEMORY_SIZE 初始化参数来调整 IM 列存储的大小,并使用 MEMOPTIMIZE_POOL_SIZE 初始化参数来优化池。IM 列存储大小是内存优化池,包含在内存目标中,但不是由自动调整大小算法管理的。例如,如果将 MEMORY_TARGET 设置为 5 GB,将 INMEMORY_SIZE 设置为 1 GB,则整体内存目标为 5 GB(不是 6 GB),INMEMORY_SIZE 始终为 1 GB。

下图显示了数据库,该数据库有时处理在线用户提交的作业,有时处理批处理作业。使用自动内存管理,数据库会根据正在运行的作业类型自动调整大型池和数据库缓冲区高速缓存的大小。请注意,该图形不描述 IM 列存储或 Memoptimize 区域。

图 6:自动内存管理

插图 cncpt256.gif 的说明

如果使用 DBCA 创建数据库并选择基本安装选项,则默认情况下,Oracle AI Database 将启用自动内存管理。

另请参见:

SGA 的共享内存管理

您可以通过使用自动共享内存管理设置 SGA 大小或手动优化 SGA 组件来手动控制 SGA 大小。

如果未启用自动内存管理,则系统必须对 SGA 使用共享内存管理。可以采用以下任一形式进行共享内存管理:

另请参见:

实例 PGA 的内存管理

如果未启用自动内存管理,则 Oracle AI Database 将使用自动或手动 PGA 内存管理。

可以采用以下模式来管理 PGA 内存:

另请参阅:Oracle AI Database Performance Tuning Guide 以了解 PGA 内存管理

内存管理方法概要

内存管理是自动或手动的。

如果不启用自动内存管理,则必须分别为 SGA 配置一种内存管理方法和为 PGA 配置一种内存管理方法。注:对整个数据库实例禁用自动内存管理时,默认情况下,Oracle Database 将启用自动 PGA 内存管理。

下表包括 INMEMORY_SIZE 初始化参数和 MEMOPTIMIZE_POOL_SIZE 初始化参数。这两个控制内存区域都是可选的。

表 3 内存管理方法

实例 SGA PGA 说明 初始化参数
自动 不适用 不适用 数据库根据单个实例目标大小优化实例的大小。

您设置了:

  • 数据库实例的内存目标总大小 (MEMORY_TARGET)

  • 数据库实例的可选最大内存大小 (MEMORY_MAX_TARGET)

  • SGA 中 IM 列存储 (INMEMORY_SIZE) 的可选大小

不适用 自动 自动

数据库会根据 SGA 目标自动优化 SGA。

数据库会根据 PGA 目标自动优化 PGA。

您设置了:

  • SGA 目标大小 (SGA_TARGET)

  • 可选 SGA 最大大小 (SGA_MAX_SIZE)

  • SGA 中 IM 列存储 (INMEMORY_SIZE) 的可选大小

  • SGA 中 Memoptimize 池的可选大小 (MEMOPTIMIZE_POOL_SIZE)

  • PGA 聚合目标大小 (PGA_AGGREGATE_TARGET) 脚 1

数据库自动配置 PGA_AGGREGATE_LIMIT 初始化参数。您可以手动设置此参数。

不适用 自动 手动

数据库会根据 SGA 目标自动优化 SGA。

您可以手动控制 PGA,为每种类型的 SQL 运算符设置最大工作区大小。

您设置了:

  • SGA 目标大小 (SGA_TARGET)

  • 可选 SGA 最大大小 (SGA_MAX_SIZE)

  • SGA 中 IM 列存储的可选大小 (INMEMORY_SIZE)

  • SGA 中 Memoptimize 池的可选大小 (MEMOPTIMIZE_POOL_SIZE)

  • PGA 工作区参数,例如 SORT_AREA_SIZE、HASH_AREA_SIZE 和 BITMAP_MERGE_AREA_SIZE

不适用 手动 自动

您可以通过设置单个组件大小来手动控制 SGA。

数据库会根据 PGA 目标自动优化 PGA。

您设置了:

  • 共享池的大小 (SHARED_POOL_SIZE)

  • 缓冲区高速缓存大小时 (DB_CACHE_SIZE)

  • 大型池大小 (LARGE_POOL_SIZE)

  • Java 池大小 (JAVA_POOL_SIZE)

  • SGA 中 IM 列存储 (INMEMORY_SIZE) 的可选大小

  • SGA 中 Memoptimize 池的可选大小 (MEMOPTIMIZE_POOL_SIZE)

  • PGA 聚合目标大小 (PGA_AGGREGATE_TARGET) 脚 2

数据库自动配置 PGA_AGGREGATE_LIMIT 初始化参数。您可以手动设置此参数。

不适用 手动 手动

必须手动配置 SGA 组件大小。

您可以手动控制 PGA,为每种类型的 SQL 运算符设置最大工作区大小。

必须手动配置 SGA 组件大小。您设置了:

  • 共享池的大小 (SHARED_POOL_SIZE)

  • 缓冲区高速缓存大小时 (DB_CACHE_SIZE)

  • 大型池大小 (LARGE_POOL_SIZE)

  • Java 池大小 (JAVA_POOL_SIZE)

  • SGA 中 IM 列存储 (INMEMORY_SIZE) 的可选大小

  • SGA 中 Memoptimize 池的可选大小 (MEMOPTIMIZE_POOL_SIZE)

  • PGA 工作区参数,例如 SORT_AREA_SIZE、HASH_AREA_SIZE 和 BITMAP_MERGE_AREA_SIZE

脚注 1

数据库自动配置 PGA_AGGREGATE_LIMIT 初始化参数。您还可以选择手动设置此参数。

脚注 2

数据库自动配置 PGA_AGGREGATE_LIMIT 初始化参数。您还可以选择手动设置此参数。

另请参阅:Oracle AI Database Administrator’s Guide,因为并非所有平台都提供自动内存管理

Resource Management 和任务计划

Oracle AI Database 提供了各种工具来帮助您管理资源和安排任务,以减少对用户的影响。

在具有许多活动用户的数据库中,资源管理是数据库管理的重要组成部分。消耗过多资源的会话可能会阻止其他会话执行其工作。一个相关的问题是如何安排任务,以便它们在最佳时间运行。Oracle AI Database 提供了帮助解决这些问题的工具。

数据库资源管理器

Oracle AI Database Resource Manager(资源管理器)提供对分配给用户帐户、应用程序和服务的数据库资源的细粒度控制。资源管理器主要充当守门员,使一些作业运行缓慢,以便其他作业可以快速运行。

DBMS_RESOURCE_MANAGER PL/SQL 程序包解决了操作系统管理不佳的许多资源分配问题,包括:

资源管理器可帮助数据库更好地控制硬件资源的分配和确定数据库内工作的优先级,从而克服上述问题。您可以根据会话属性将会话分类为组,然后向这些组分配资源以优化硬件利用率。可以使用资源管理器为 PDB 内存消耗设置限制。

资源是按照数据库管理员指定的资源计划分配给用户的。该计划指定如何在资源使用者组(即按资源需求分组的用户会话)之间分配资源。资源计划指令将资源使用者组与计划关联,并指定如何将资源分配给该组。图 22-7 显示了在白天同时运行 OLTP 应用程序和报告应用程序的组织的简单资源计划。当前活动计划 DAYTIME 在三个资源使用者组之间分配 CPU 资源。具体来说,OLTP 分配了 75% 的 CPU 时间,REPORTS 分配了 15%,OTHER_GROUPS 接收了剩余的 10%。

图 7:简单资源计划

插图 admin078.gif 的说明

资源管理器可以解决的一个问题是失控查询,可以使用 SQL 监视器进行监视。资源管理器允许您指定阈值来标识和响应失控的 SQL 语句。例如,您可以为使用者组中的每个前台进程指定 CPU 时间、用时、物理或逻辑 I/O 以及 PGA 使用情况的阈值。作为响应,资源管理器可以切换到优先级较低的使用者组、终止 SQL 语句或记录阈值违规。

另请参见:

CPU 管理

从 Oracle AI Database 26ai 开始,Oracle 提供了一种 CPU 资源管理的替代方法,可在服务器上的所有数据库实例上运行。

在以前的发行版中,Oracle 提供了一种 CPU 资源管理方法,该方法在数据库实例中运行。从 Oracle AI Database 26ai 开始,您可以设置 RESOURCE_MANAGER_CPU_SCOPE 来控制 CPU 资源管理的范围。此参数允许您在两种控制方法之间进行选择。

将 RESOURCE_MANAGER_CPU_SCOPE 设置为 SERVER_WIDE 可启用服务器级别的实例间 CPU 资源管理。在 Oracle AI Database 26ai 中引入,当多个数据库实例共享一个 Linux 服务器时,可以使用此方法。它支持跨服务器上的所有数据库实例进行 CPU 资源管理。使用此方法,Oracle 会自动配置具有所需 CPU 共享和 CPU 占用率限制的 Linux 控制组 (cgroup),然后将数据库会话放置到相应的 cgroup 中。

缺省情况下,RESOURCE_MANAGER_CPU_SCOPE 设置为 INSTANCE_ONLY。

另请参见:

Oracle Scheduler

借助 Oracle Scheduler(调度程序),数据库管理员和应用程序开发人员可以控制各种任务在数据库环境中发生的时间和位置。

排程引擎提供复杂的企业排程功能,您可以使用这些功能:

程序对象(程序)包含有关调度程序将运行的命令的元数据,包括任何参数的默认值。计划对象(计划)包含有关运行日期、时间和重复模式的信息。任务对象(任务)将计划与计划关联。要定义执行的内容以及执行时间,请在方案、计划和任务之间分配关系。

调度程序在 DBMS_SCHEDULER PL/SQL 程序包中作为一组函数和过程实现。可以使用此程序包或 Enterprise Manager 创建和处理调度程序对象。由于调度程序对象是标准数据库对象,因此可以使用系统和对象权限控制对它们的访问。图 22-8 显示了调度器的基本体系结构。作业表是所有作业的容器,每个数据库有一个表。作业协调器后台进程将根据需要自动启动和停止。当必须运行作业时,协调程序会唤醒作业子进程。子进程从作业表中收集元数据并运行作业。

图 8:调度程序组件

插图 admin062.gif 的说明

另请参见:

性能和优化

作为 DBA,您需要负责 Oracle 数据库的性能。通常,性能问题由不可接受的响应时间(即完成指定工作量的时间)或吞吐量(即在指定时间内可以完成的工作量)导致。

典型问题包括:

调优的一般目标是提高响应时间、提高吞吐量或两者兼而有之。一个具体且可衡量的目标可能是“将指定的 SELECT 语句的响应时间缩短到不到 5 秒”。此目标是否可实现取决于 DBA 可能控制或可能不控制的因素。一般来说,优化是通过尽可能高效地使用数据库资源来实现具体、可衡量和可实现的优化目标。

Oracle 性能方法基于识别和消除数据库中的瓶颈,以及开发高效的 SQL 语句。应用 Oracle 性能方法涉及以下任务:

本节介绍 Oracle AI Database 性能调优的基本方面,包括指导的使用。Oracle AI Database 顾问就如何解决关键数据库管理难点提供了具体建议,这些管理难点涵盖了广泛的领域,包括空间、性能和还原管理。

数据库自我监视

自我监视是在数据库执行常规操作时进行的,这样可确保数据库在出现问题时了解问题。Oracle AI Database 可以发送服务器生成的预警,以通知您即将出现的问题。

当出现问题或数据与度量(例如每秒物理读取数或 SQL 响应时间)的预期值不匹配时,将自动生成预警。度量是累积统计信息中的更改速率。服务器生成的预警可以基于用户指定的阈值级别,也可以因为发生了事件。

服务器生成的预警不仅可以识别问题,而且有时还会建议如何解决报告的问题。例如,预警快速恢复区空间不足,建议删除过时的备份或添加额外的磁盘空间。

另请参阅:Oracle AI Database Administrator’s Guide

自动工作负载资料档案库 (AWR)

自动工作量资料档案库 (Automatic Workload Repository,AWR) 是历史性能数据的资料档案库,其中包含系统、会话、单个 SQL 语句、段和服务的累积统计信息。

AWR 统计信息是性能优化的基础。通过自动收集数据库统计信息以进行问题检测和优化,AWR 可以作为数据库自我管理的基础。

如下图所示,数据库将最近的 AWR 统计信息存储在 SGA 中。默认情况下,MMON 进程每小时收集一次统计信息并创建 AWR 快照。AWR 快照是一组在特定时间捕获的性能统计信息。数据库将快照写入 SYSAUX 表空间。AWR 管理快照空间,根据可配置的快照保留策略清除较早的快照。

图 9:自动工作量资料档案库 (AWR)

插图 cncpt279.gif 的说明

AWR 基线是通常在系统在峰值负载时表现良好的时段内采用的统计信息速率的集合。可以将一对或一组 AWR 快照指定为基线。通过使用 AWR 报告将性能不佳期间捕获的统计信息与基线进行比较,可以诊断问题。

称为 AutoTask 的自动化维护基础结构说明了 Oracle Database 如何使用 AWR 进行自我管理。通过分析 AWR 数据,AutoTask 可以确定维护任务的需求,并安排这些任务在 Oracle Scheduler 维护窗口中运行。任务的示例包括收集 optimizer 的统计信息以及运行自动段指导。

另请参见:

自动数据库监视器 (Automatic Database Monitor,ADDM)

使用在 AWR(Automatic Workload Repository,自动工作量资料档案库)中捕获的统计信息,ADDM 会自动主动诊断数据库性能并确定如何解决已确定的问题。也可以手动运行 ADDM。自动数据库诊断监视器 (Automatic Database Diagnostic Monitor,ADDM) 是 Oracle Database 中内置的一种自我诊断指导。

ADDM 采用全面的系统性能方法,将时间用作组件之间的通用货币。ADDM 确定 Oracle Database 使用时间最多的区域。例如,数据库可能会花费过多的时间等待空闲数据库缓冲区。ADDM 会向下钻取以确定问题的根本原因,而不仅仅是症状,并报告问题对 Oracle Database 的总体影响。过程中的开销最小。

在许多情况下,ADDM 会推荐解决方案并量化预期的性能优势。例如,ADDM 可能会建议对硬件、数据库配置、数据库方案或应用程序进行更改。如果提出建议,则 ADDM 将报告时间优势。使用时间作为衡量标准可以比较问题或建议。

除了报告潜在的性能问题外,ADDM 还记录了数据库中不存在问题的区域。未显著影响数据库性能的子组件(如 I/O 和内存)会在早期阶段从分类树中删改。ADDM 会列出这些子组件,以便您可以快速看到在这些区域中执行操作没有什么好处。

另请参阅:Oracle AI Database 性能调优入门和 Oracle AI Database 性能调优指南

活动会话历史记录 (ASH)

活动会话历史记录 (Active Session History,ASH) 每秒对活动数据库会话采样一次,将数据写入内存和持久性存储。ASH 是数据库自我管理框架的一个组成部分,可用于诊断性能问题。

与自动工作量资料档案库 (Automatic Workload Repository,AWR) 收集的实例级统计信息不同,数据库在会话级别收集 ASH 统计信息。活动会话是正在使用 CPU 且未在空闲等待类中等待事件的会话。

可以使用 Enterprise Manager 或 SQL 脚本生成 ASH 报告,以收集在指定持续时间内收集的会话统计信息。可将 ASH 报告用于:

例如,用户会通知您数据库在晚上 10:00 到晚上 10:02 之间很慢。但是,2 分钟的性能下降表示从晚上 10:00 到晚上 11:00 的 AWR 快照间隔的一小部分,并且不会出现在 ADDM 查找结果中。ASH 报告可以帮助确定瞬态问题的来源。

另请参阅:Oracle AI Database 性能调优入门和 Oracle AI Database 性能调优指南

应用程序和 SQL 优化

Oracle Database 完全自动执行 SQL 优化过程。

ADDM 标识消耗异常高的系统资源的 SQL 语句,从而导致性能问题。此外,AWR 会根据 CPU 和共享内存使用情况自动捕获顶级 SQL 语句。自动识别高负载 SQL 语句,无需任何干预。

EXPLAIN PLAN 语句

诸如 EXPLAIN PLAN 语句之类的工具使您能够查看优化程序选择的执行计划。

如果指定的 SQL 查询现在在当前会话中执行,则 EXPLAIN PLAN 将显示该查询的查询计划。其他工具包括 Oracle Enterprise Manager 和 SQL*Plus AUTOTRACE 命令。

另请参阅:Oracle AI Database SQL Language Reference 以了解 EXPLAIN PLAN

优化程序统计信息顾问

Optimizer Statistics Advisor 是一个诊断软件,用于分析您当前如何收集统计信息、现有统计信息收集作业的有效性以及收集的统计信息的质量。优化程序统计信息指导使用与自动数据库诊断监视器 (Automatic Database Diagnostic Monitor,ADDM)、SQL 性能分析程序和其他指导相同的指导框架。

优化程序统计信息指导与传统方法相比具有以下优势,传统方法依赖于最佳做法:

优化程序统计信息指导维护规则,这些规则是 Oracle 提供的用于指导执行检查的标准。这些规则体现了基于当前功能集的 Oracle 优秀实践。如果最佳实践从发行版更改为发行版,则优化程序统计信息指导规则也会发生更改。这样,指导始终会提供最新的建议。

优化程序统计信息指导将检查统计信息收集过程,然后生成查找结果报告,这些查找结果违反了规则。如果指导提出建议,并且根据这些建议提出操作,则可以自动实施这些操作,也可以生成可编辑的可执行 PL/SQL 脚本。

指导任务在维护窗口中自动运行,但您也可以根据需要运行。

另请参见:

SQL 优化指导

用于自动 SQL 优化的界面是 SQL 优化指导,它将在系统维护窗口期间作为维护任务自动运行。

在每次自动运行期间,指导会选择数据库中的高负载 SQL 查询,并生成优化这些查询的建议。

SQL 优化指导建议分为以下类别:

SQL 概要文件包含特定于 SQL 语句的其他统计信息,并允许优化程序生成更好的执行计划。从本质上讲,SQL 概要文件是一种用于分析查询的方法。访问路径和 SQL 结构分析都可用于优化正在开发中的应用程序或本土生产应用程序。

SQL 优化指导的一个主要优点是解决方案来自优化程序,而不是外部工具。因此,优化由负责执行计划和 SQL 性能的数据库组件执行。优化过程可以考虑 SQL 语句的过去执行统计信息,并定制此语句的优化程序设置。

另请参见:

SQL 访问指导

使用 SQL 访问指导可帮助您分析 SQL 查询,并确定优化方案对象或优化查询的方式。

SQL 访问指导提供有关如何优化数据访问路径的建议。具体而言,它建议如何通过分区、实体化视图、索引和实体化视图日志来提高数据库性能。

方案对象(如分区和索引)对于优化复杂的数据密集型查询至关重要。但是,创建和维护这些对象可能非常耗时,并且空间需求可能非常大。SQL 访问指导通过为指定的工作量建议数据结构来帮助实现性能目标。

可以使用向导或通过使用 DBMS_ADVISOR 程序包从 Enterprise Manager 运行 SQL 访问指导。DBMS_ADVISOR 包含可从任何 PL/SQL 程序调用的分析和指导函数及过程的集合。

另请参阅:Oracle AI Database 入门性能优化和 Oracle AI Database SQL Tuning Guide

SQL 计划管理

使用 SQL 计划管理仅执行经过测试和验证的计划,从而管理 SQL 执行计划。

默认情况下,“SQL Plan Management (SPM) Evolve Advisor(SQL 计划管理 (SPM)”每天在计划的维护窗口中运行,对所有未接受的计划进行排名,并执行尽可能多的计划的测试执行。SPM Evolve Advisor 选择 SQL 计划基线中接受的最低成本的计划,以与每个未接受的计划进行比较。如果未接受的计划执行得比现有的已接受计划好,则顾问会接受该计划。

启用高频 SPM 后,将在维护窗口外部的定期后台任务中执行 SPM Evolve Advisor,从而可以更及时地改进性能。高频率任务将使用大量系统资源标识 SQL 语句,并检查以前使用的 SQL 执行计划是否性能更好。如果是这种情况,将创建新的 SQL 计划基线,以强制执行较早的 SQL 执行计划并修复 SQL 性能回归。

从 Oracle Database 26ai 开始,如果启用,则实时 SPM 将在 SQL 语句使用新的 SQL 执行计划时立即启动性能分析。如果以前看到的 SQL 执行计划性能更好,将立即创建新的 SQL 计划基线,而无需依赖后台任务来执行此操作。

另请参见: