数据库管理员的概念
此页上的脚本内容仅用于导航目的,不会以任何方式变更该内容。
本部分介绍了数据库管理员的职责、工具和基本知识。
-
数据库管理员的职责数据库管理员 (DBA) 的主要职责是向其用户提供企业数据。
-
面向数据库管理员的工具 Oracle 提供了多种用于管理数据库的工具。
-
面向数据库管理员的主题 本节介绍对 DBA 最重要且未在手册的其他部分讨论的主题。
数据库管理员的职责
数据库管理员 (DBA) 的主要职责是向其用户提供企业数据。
DBA 必须与开发人员密切合作,确保其应用高效地使用数据库,并与系统管理员合作,确保物理资源充足且使用高效。
Oracle DBA 负责了解 Oracle AI Database 体系结构以及数据库的工作方式。DBA 可以执行下列任务:
-
安装、升级和修补 Oracle AI Database 软件
-
设计数据库,包括确定需求、创建逻辑设计(概念模型)和物理数据库设计
-
创建 Oracle 数据库
-
开发和测试备份和恢复策略,定期备份 Oracle 数据库,并在发生故障时进行恢复
-
配置网络环境以使客户机能够连接到数据库
-
启动和关闭数据库
-
管理数据库的存储
-
管理用户和安全性
-
管理数据库对象,例如表、索引和视图
-
监视和优化数据库绩效
-
调查、收集数据并向 Oracle Support Services 报告任何严重的数据库错误
-
评估和测试新的数据库功能
用户的类型及其角色和责任取决于数据库环境。一个小型数据库可以有一个 DBA。一个非常大的数据库可能会将 DBA 的职责分给多个专家,例如安全官、备份操作员和应用程序管理员。
另请参见:
-
Oracle AI Database 2 Day DBA,介绍 DBA 任务
-
Oracle AI Database Administrator’s Guide,更深入地介绍 DBA 的概念和任务
适用于数据库管理员的工具
Oracle 提供了多种用于管理数据库的工具。
本节介绍一些常用的工具。
-
Oracle Enterprise Manager (Enterprise Manager) 是一个基于 Web 的系统管理工具,用于管理 Oracle 数据库、Exadata 数据库计算机、Fusion Middleware、Oracle 应用程序、服务器、存储以及非 Oracle 硬件和软件。
-
SQL*Plus 是包含在每个 Oracle AI Database 安装中的交互式批处理查询工具。
-
Tools for Database Installation and Configuration Oracle 提供了多种工具来简化安装和配置 Oracle AI Database 软件的任务。
-
Oracle Net Configuration and Administration 工具 Oracle Net Services 提供分布式异构计算环境中的企业级连接解决方案。Oracle Net 是 Oracle Net Services 的组件之一,它支持客户机应用程序到数据库的网络会话。
-
数据移动和分析工具 Oracle AI Database 包含多个实用程序,可帮助执行数据移动和分析。
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 组件。
-
Oracle Enterprise Manager Database Express 12c Oracle Enterprise Manager Database Express (EM Express) 是内置在 Oracle 数据库中的 Web 管理产品。它不需要特殊的安装或管理。
Oracle Enterprise Manager Cloud Control
Oracle Enterprise Manager Cloud Control (Cloud Control) 是一个基于 Web 的界面,为管理员提供对 Oracle 技术堆栈和非 Oracle 组件的完整监视。
有时,快速应用程序通知 (FAN) 的组件可能不可用或遇到性能问题。在这种情况下,Cloud Control 将显示自动生成的警报,以便管理员可以采取适当的恢复操作。
Cloud Control 的组件包括:
-
Oracle Management Service (OMS)
OMS 功能是一组 J2EE 应用程序,用于呈现 Cloud Control 的界面,与所有 Oracle 管理代理一起处理监视信息,并使用 Enterprise Manager 资料档案库作为其持久性数据存储。
-
Oracle Management Agents
这些代理是部署在每个受监视主机上的进程,用于监视主机上的所有目标、将此信息传达给 OMS 并维护主机及其目标。
-
Oracle Management Repository
资料档案库是 Oracle 数据库中的方案,其中包含有关 Cloud Control 管理的管理员、目标和应用程序的所有可用信息。
另请参见:
-
Oracle AI Database Administrator’s Guide,了解如何使用 Cloud Control 管理数据库
-
Cloud Control 的联机帮助
Oracle Enterprise Manager Database Express 12c
Oracle Enterprise Manager Database Express (EM Express) 是内置在 Oracle 数据库中的 Web 管理产品。它不需要特殊的安装或管理。
EM Express 包含 Cloud Control 中的密钥性能管理和基本管理页面。这些页面包括:
-
数据库主页
-
实时 SQL 监视
-
ASH 分析
您可以通过 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 Net Manager
使用此工具可以为本地客户机或服务器主机上的 Oracle 主目录配置 Oracle Net Services。可以使用 Oracle Net Manager 配置命名、命名方法、概要文件和监听程序。您可以使用 Oracle Enterprise Manager 控制台或独立应用程序启动 Oracle Net Manager。
-
Oracle Net Configuration Assistant
此工具在软件安装期间自动运行。通过该助手,您可以在安装期间配置基本网络组件,包括监听程序名称和协议地址、命名方法、
tnsnames.ora文件中的网络服务名以及目录服务器使用情况。 -
监听程序控制实用程序
使用“监听程序控制”实用程序,可以配置监听程序以接收客户机连接。可以通过 Enterprise Manager 或作为独立的命令行应用程序访问该实用程序。
-
Oracle Connection Manager Control 实用程序
使用此命令行实用程序可以管理 Oracle Connection Manager ,这是一个路由器,通过该路由器可以将客户机连接请求发送到其下一个跃点或直接发送到数据库。可使用实用程序命令对一个或多个 Oracle Connection Managers 执行基本管理功能。此外,还可以查看和更改参数设置。
另请参见:
-
Oracle AI Database Net Services Administrator’s Guide,了解有关 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 会将数据从外部文件(称为数据文件)(不要与内部数据库数据文件混淆)加载到数据库表中。它拥有一个强大的数据语法分析引擎,对数据文件中的数据格式几乎没有限制。
-
Oracle Data Pump 导出和导入 Oracle Data Pump 支持将数据和元数据从一个数据库高速移动到另一个数据库。
-
Oracle LogMiner Oracle LogMiner 允许您通过 SQL 接口查询重做日志文件。
-
ADR 命令解释器 (ADRCI) ADRCI 是一个命令行实用程序,可用于调查问题、查看健康检查报表、打包优先故障数据并将这些数据上载到 Oracle 技术支持。
另请参见:
-
“备份和恢复”了解与备份和恢复相关的工具
-
Oracle AI Database Utilities,了解 DBVERIFY 和 DBNEWID
SQL*Loader
SQL*Loader 会将数据从外部文件(称为数据文件)(不要与内部数据库数据文件混淆)加载到数据库表中。它拥有一个强大的数据语法分析引擎,对数据文件中的数据格式几乎没有限制。
可以使用 SQL*Loader 执行以下操作:
-
将多个数据文件中的数据加载到多个表中
将要加载的数据存储在 SQL*Loader 数据文件中。SQL*Loader 控制文件是一个文本文件,其中包含 SQL*Loader 用于确定在何处查找数据、如何解析和解释数据、在何处插入数据以及更多信息的 DDL 指令。
注:SQL*Loader 数据文件和控制文件与 Oracle AI Database 数据文件和控制文件无关。
-
控制负载操作的各个方面
例如,可以选择性地加载数据、指定数据字符集、使用 SQL 函数处理数据、在指定列中生成唯一的连续键值等。您还可以生成复杂的错误报告。
-
使用常规路径、直接路径或外部表加载
常规路径加载执行 SQL
INSERT语句来填充表。相反,直接路径 INSERT 通过格式化数据块并将其直接写入数据文件,消除了大部分数据库开销。直接写入操作 high water mark (HWM) 之上的块,直接写入到磁盘,绕过 database buffer cache 。直接读取从磁盘直接读取到 PGA ,再次绕过缓冲区高速缓存。外部表加载为数据文件中包含的数据创建外部表。加载将执行
INSERT语句将数据从数据文件插入到目标表中。
典型的 SQL*Loader 会话将 SQL*Loader 控制文件和一个或多个数据文件作为输入。输出为 Oracle 数据库、日志文件、错误文件以及可能丢弃的文件。下图说明了典型 SQL*Loader 会话的流。
图 1:SQL*Loader 会话

还可以使用 SQL*Loader 快速模式,在 SQL*Loader 命令中指定 table 参数时会激活该模式,如下例所示:
% sqlldr hr table=employees
不允许使用任何控制文件,这使得 SQL*Loader 更易于使用。SQL*Loader 不对控制文件进行语法分析,而是使用表列定义来确定输入数据类型。SQL*Loader 会做出一些默认假设,包括字符集、字段分隔符以及数据、日志和错误文件的名称。可以使用命令行参数覆盖许多缺省值。
另请参见:
-
“外部表概览”
-
" Character Sets "
-
Oracle AI Database Utilities,了解 SQL*Loader
Oracle 数据泵导出和导入
Oracle Data Pump 支持将数据和元数据从一个数据库高速移动到另一个数据库。
此技术是以下 Oracle AI Database 数据移动实用程序的基础:
-
数据泵导出(导出)
“导出”是一个实用程序,用于将数据和元数据卸载到一组名为转储文件集合的操作系统文件中。转储文件集由一个或多个包含表数据、数据库对象元数据和控制信息的二进制文件组成。
-
数据泵导入(导入)
Import 是用于将导出转储文件集加载到数据库的实用程序。您还可以使用“导入”直接从没有干预文件的源数据库加载目标数据库,这允许导出和导入操作同时运行,从而最大限度地减少总用时。
Oracle Data Pump 由以下不同部分组成:
-
命令行客户机
expdp和impdp这些客户机调用
DBMS_DATAPUMP软件包以执行 Oracle Data Pump 操作。 -
DBMS_DATAPUMPPL/SQL 程序包,也称为数据泵 API此 API 提供高速导入和导出功能。
-
DBMS_METADATAPL/SQL 程序包,也称为元数据 API所有加载和卸载元数据的进程都使用此 API,该 API 将对象定义存储在 XML 中。
下图显示了 Oracle Data Pump 如何与 SQL*Loader 和外部表集成。如图所示,SQL*Loader 与外部表 API 和数据泵 API 集成,以将数据加载到外部表中。Oracle Enterprise Manager Cloud Control (Cloud Control) 和可传输表空间等客户机可以使用 Oracle Data Pump 基础结构。
图 2:Oracle Data Pump 体系结构

另请参见:
-
“外部表概览”
-
Oracle AI Database Utilities,概述 Oracle Data Pump
-
Oracle AI Database PL/SQL Packages and Types Reference(了解
DBMS_DATAPUMP和DBMS_METADATA的说明)
Oracle LogMiner
Oracle LogMiner 允许您通过 SQL 界面查询重做日志文件。
重做日志文件中包含的数据的潜在用途包括:
-
确定何时开始对数据库进行逻辑损坏(例如在应用程序级别发生的错误)
-
检测用户错误
-
确定在事务处理级别执行细粒度恢复时必须采取的操作
-
使用趋势分析确定哪些表获得最多更新和插入
-
通过 LogMiner 到重做日志文件的全面关系界面分析系统行为和审计数据库使用情况
可通过命令行界面或 Oracle LogMiner Viewer GUI(Enterprise Manager 的一部分)访问 LogMiner。
另请参阅:Oracle AI Database Utilities 以了解有关 LogMiner 的更多信息
ADR 命令解释器 (ADRCI)
ADRCI 是一个命令行实用程序,用于调查问题、查看健康检查报表、打包优先故障数据并将这些数据上载到 Oracle 技术支持。
也可以使用此实用程序查看自动诊断资源库 (Automatic Diagnostic Repository,ADR) 中的跟踪文件的名称以及查看预警日志。ADRCI 具有丰富的命令集,您可以交互使用或在脚本中使用。
另请参见:
-
有关 ADR 和 ADRCI 的更多信息,请参阅 Oracle AI Database Utilities 和 Oracle AI Database Administrator’s Guide
数据库管理员主题
本节介绍对 DBA 最重要且未在手册其他部分讨论的主题。
-
备份和恢复 备份和恢复是保护数据库免受介质故障或用户错误导致的数据丢失所涉及的一组概念、过程和策略。
-
内存管理涉及根据数据库更改需要使 Oracle 实例的内存结构保持最优大小。初始化参数设置确定如何管理 SGA 和实例 PGA 内存。
-
Resource Management and Task Scheduling Oracle AI Database 提供了多种工具来帮助您管理资源和调度任务,以减少对用户的影响。
-
性能和优化作为 DBA,您需要负责 Oracle 数据库的性能。通常,性能问题由不可接受的响应时间(即完成指定工作量的时间)或吞吐量(即在指定时间内可以完成的工作量)导致。
备份和恢复
备份和恢复是保护数据库免受介质故障或用户错误导致的数据丢失所涉及的一组概念、过程和策略。
backup 是数据的副本。备份可以包括数据库的关键部分,例如数据文件、服务器参数文件和控制文件。示例备份和恢复方案是导致数据文件丢失的故障磁盘驱动器。如果丢失的文件存在备份,则可以恢复并恢复该文件。在丢失之前将数据恢复到其状态所涉及的操作称为介质恢复。
本部分涵盖以下主题:
-
备份和恢复技术 您可以使用 Recovery Manager 或用户管理的技术来备份、还原和恢复 Oracle 数据库。
-
可以从命令行和 Enterprise Manager Cloud Control (Cloud Control) 访问 Recovery Manager 体系结构 RMAN 和 Oracle Secure Backup。
-
数据库备份数据库备份可以是物理备份,也可以是逻辑备份。
-
数据修复 虽然有几个问题可能会阻止数据库的正常运行或影响 I/O 操作,但只有一些问题需要 DBA 干预和数据修复。
-
Zero Data Loss Recovery Appliance 云级 Zero Data Loss Recovery Appliance(通常称为 Recovery Appliance )是一个集成式系统,可显著降低企业中所有 Oracle 数据库的数据丢失和备份开销。
另请参见:
-
Oracle AI Database Backup and Recovery User’s Guide,了解备份和恢复概念以及任务
-
Oracle AI Database Administrator’s Reference for Microsoft Windows,了解如何使用卷影副本服务 (Volume Shadow Copy Service,VSS) 应用程序备份和恢复 Microsoft Windows 上的数据库
备份和恢复技术
您可以使用 Recovery Manager 或用户管理的技术来备份、还原和恢复 Oracle 数据库。
这两种方法之间的主要区别如下:
-
RMAN 是一个 Oracle AI Database 实用程序,它与 Oracle 数据库集成以执行备份和恢复活动,包括在它备份的每个数据库的控制文件中维护历史备份元数据的存储库。RMAN 还可以在其他数据库中维护名为恢复目录的集中备份系统信息库。RMAN 是 Oracle AI Database 的一项功能,不需要单独安装。
RMAN 与 Oracle Secure Backup 集成,后者提供可靠的集中式磁带备份管理,可保护文件系统数据和 Oracle AI Database 文件。使用 Oracle Secure Backup SBT 界面,可以使用 RMAN 在磁带和基于 Internet 的 Web 服务(例如 Amazon S3)中备份和还原数据库文件。Oracle Secure Backup 几乎支持 SAN 和 SCSI 环境中的每个磁带机和磁带库。
-
用户管理的技术
作为 RMAN 的替代方法,可以使用操作系统命令(例如 Linux
dd)来备份和恢复文件,使用 SQL*PlusRECOVER命令进行介质恢复。Oracle 完全支持用户管理的备份和恢复,但建议使用 RMAN,因为它与 Oracle AI Database 集成并简化了管理。
另请参见:
-
Oracle AI Database Backup and Recovery User’s Guide,概述了备份和恢复解决方案
-
Oracle Secure Backup Administrator’s Guide(了解 Oracle Secure Backup 的概述)
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 架构

无论您使用哪种备份和恢复技术,Oracle 建议您配置快速恢复区。此数据库管理的目录、文件系统或 Oracle ASM 磁盘组集中了备份和恢复文件,包括活动控制文件、联机和归档重做日志文件以及备份。Oracle AI Database 恢复组件与快速恢复区交互,以确保数据库可恢复性。
另请参见:
-
Oracle AI Database 2 Day DBA,了解如何使用 Recovery Manager 执行备份和恢复
-
Oracle AI Database Administrator’s Guide(了解如何设置和管理快速恢复区)
数据库备份
数据库备份可以是物理备份,也可以是逻辑备份。
物理备份是备份和恢复策略中的主要问题,是物理数据库文件的副本。可以使用 RMAN 或操作系统实用程序进行物理备份。
相反,逻辑备份包含表、存储过程和其他逻辑数据。可以使用数据泵导出等 Oracle AI Database 实用程序提取逻辑数据,并将其存储在二进制文件中。逻辑备份可以补充物理备份。
物理备份具有较大的粒度和有限的可传输性,但速度非常快。逻辑备份具有细粒度和完全可传输性,但速度比物理备份慢。
-
完整和部分数据库备份 完整数据库备份是数据库中每个数据文件以及控制文件的备份。整个数据库备份是最常见的备份类型。
-
一致和不一致的备份 整个数据库备份是一致的或不一致的。
-
备份集和映像副本 RMAN
BACKUP命令可生成映像副本或备份集。另请参阅:Oracle AI Database Backup and Recovery User’s Guide 以了解物理和逻辑备份
整个数据库和部分数据库备份
整个数据库备份是指对数据库中的每个数据文件以及控制文件的备份。整个数据库备份是最常见的备份类型。
部分数据库备份包括数据库的一部分:单个表空间或数据文件。表空间备份是表空间或多个表空间中所有数据文件的备份。表空间备份(无论一致还是不一致)仅在数据库以 ARCHIVELOG 模式运行时有效,因为需要重做才能使还原的表空间与数据库的其余部分保持一致。
一致和不一致的备份
整个数据库备份是一致的或不一致的。
在一致备份中,所有读/写数据文件和控制文件都具有相同的 checkpoint SCN ,从而保证这些文件包含直到此 SCN 的所有更改。此类型的备份在恢复后不需要进行恢复。
只有在一致的关闭后,才能对数据库进行一致的备份,这是在 NOARCHIVELOG 模式下运行的数据库的唯一有效备份选项。其他备份选项需要介质恢复以实现一致性,如果不应用归档重做日志文件,则无法实现一致性。注:如果在不应用重做的情况下还原一致的整个数据库备份,则将丢失备份后进行的所有事务处理。
在不一致的备份中,读/写数据文件和控制文件不能保证具有相同的检查点 SCN,因此可能会丢失更改。所有联机备份必然不一致,因为可以在备份时修改数据文件。
不一致的备份可提供卓越的可用性,因为您无需关闭数据库即可进行完全保护数据库的备份。如果数据库在 ARCHIVELOG 模式下运行,并且备份了归档重做日志和数据文件,则不一致的备份可能会成为良好的备份和恢复策略的基础。
另请参见:
-
“关机模式”
-
Oracle AI Database Backup and Recovery User’s Guide,了解有关不一致备份的更多信息
备份集和映像副本
RMAN BACKUP 命令可生成映像副本或备份集。
备份类型不同,如下所示:
-
映像复制
image copy 是数据文件、控制文件或归档重做日志文件的位对位磁盘复制。可以使用操作系统实用程序或 RMAN 创建物理文件的映像副本,并使用任一工具来恢复它们。
注:与操作系统副本不同,RMAN 会验证文件中的块,并在 RMAN 系统信息库中记录映像副本。
-
备份集
RMAN 还可以使用称为备份集的专用格式创建备份。备份集包含来自一个或多个数据文件、归档重做日志文件或控制文件或服务器参数文件的数据。备份集的最小单元是一个称为备份片段的二进制文件。备份集是 RMAN 可以将备份写入顺序设备(例如磁带机)的唯一格式。
备份集使磁带设备能够连续流式传输。例如,RMAN 可以将来自慢速、中速和快速磁盘的块混合到一个备份集中,以便磁带设备具有块的恒定输入。映像副本对于磁盘非常有用,因为您可以增量更新它们,也可以将它们恢复到原位。
另请参阅:Oracle AI Database Backup and Recovery User’s Guide 以了解有关备份集和映像副本的更多信息
数据修复
虽然有几个问题可能会阻止数据库的正常运行或影响 I/O 操作,但只有一些问题需要 DBA 干预和数据修复。
在以下情况下,通常需要进行数据修复:
-
介质失败
当数据库外部的问题阻止它从文件读取或写入文件时,会发生介质故障。典型的介质故障包括物理故障,例如磁盘机头崩溃,以及数据库文件的覆盖、删除或损坏。介质故障不如用户或应用程序错误常见,但必须制定合理的备份和恢复策略来应对这些错误。
-
用户出错
用户或应用程序可能会对数据库进行不必要的更改,例如错误更新、删除表的内容或删除数据库对象。通过良好的备份和恢复策略,您可以将数据库恢复到所需状态,尽可能减少对数据库可用性的影响,并尽可能减少 DBA 的工作量。
通常,您有多种方法来解决上述问题。本节概述了其中一些解决方案。
-
Oracle Flashback Technology Oracle AI Database 提供了一组称为 Oracle Flashback Technology 的功能,这些功能支持查看过去的数据状态和及时回绕数据,而无需恢复备份。
-
块介质恢复 块介质恢复是一种在数据文件联机时恢复和恢复损坏的数据块的技术。
-
数据文件恢复 数据文件恢复修复丢失或损坏的当前数据文件或控制文件。它还可以恢复在没有
OFFLINENORMAL选项的情况下表空间脱机时丢失的更改。
另请参见:
Oracle Flashback 技术
Oracle AI Database 提供了一组称为 Oracle Flashback Technology 的功能,这些功能支持查看过去的数据状态和及时回绕数据,而无需还原备份。
根据数据库更改,闪回功能通常可以更快地逆转不需要的更改,并且对可用性的影响比介质恢复小。以下闪回功能与备份和恢复最相关:
-
闪回数据库
可以将 CDB 或 PDB 重绕到以前的时间,以更正由逻辑数据损坏或用户错误引起的问题。闪回数据库还可用于补充 Data Guard 和同步克隆数据库。闪回数据库不会恢复或对文件执行介质恢复,因此您无法使用它来更正介质故障,例如磁盘崩溃。
在 PDB 级别,可以创建 PDB 还原点,并将 PDB 重绕到此还原点,而不会影响其他 PDB。在 CDB 级别,可以创建 CDB 还原点。
-
闪回表格
可以使用单个 SQL 语句将表重绕到指定的时间点。可以在数据库联机时还原表数据以及关联的索引、触发器和约束条件,而且只还原对指定表的更改。闪回表不解决物理损坏问题,例如磁盘损坏或数据段损坏以及索引不一致。
-
闪回删除
您可以反转
DROP TABLE操作的效果。闪回下降比恢复机制(如时间点恢复)快得多,并且不会导致最近的事务处理丢失或停机。
另请参见:
-
Oracle AI Database Backup and Recovery User’s Guide,了解有关闪回功能的更多信息
-
Oracle AI Database SQL Language Reference 和 Oracle AI Database Backup and Recovery Reference 可了解
FLASHBACK DATABASE语句
块介质回收
块介质恢复是一种在数据文件联机时恢复和恢复损坏的数据块的技术。
块损坏是未采用可识别的 Oracle 格式或其内容在内部不一致的数据块。如果您检测到块损坏,并且只有几个块损坏,则块恢复可能比数据文件恢复更好。
另请参见:
-
“ Data Corruption ”
-
Oracle AI Database Backup and Recovery User’s Guide,了解如何执行块介质恢复
数据文件恢复
数据文件恢复修复丢失或损坏的当前数据文件或控制文件。它还可以恢复在没有 OFFLINE NORMAL 选项的情况下表空间脱机时丢失的更改。
如果恢复数据文件或控制文件的备份,或者在不使用 OFFLINE NORMAL 选项的情况下使数据文件脱机,则必须进行介质恢复。如果联机数据文件需要介质恢复,则无法打开数据库,在介质恢复完成之前,也无法使需要介质恢复的数据文件联机。
要恢复数据文件或控制文件的物理备份,需要重建数据文件并将其提供给 Oracle AI Database。要恢复备份,请应用归档重做日志文件以重建丢失的更改。RMAN 还可以使用增量备份恢复数据文件,增量备份仅包含上次备份后修改的数据块。
与自动将更改应用于联机文件的实例恢复不同,介质恢复必须由用户调用,并将归档重做日志文件应用于还原的备份。数据文件介质恢复只能对任何数据库实例未打开的数据库中的脱机数据文件或数据文件执行操作。
数据文件介质恢复因是否应用所有更改而异:
-
完全恢复
完全恢复将归档和联机重做日志中包含的所有重做更改应用于备份。通常,在介质故障损坏数据文件或控制文件后执行完全介质恢复。可以对数据库、表空间或数据文件执行完全恢复。
-
恢复不完整
不完全恢复(也称为数据库时间点恢复)会导致数据库出现非当前版本。在这种情况下,不会应用在恢复的备份后生成的所有重做。通常,当无法使用 Oracle Flashback Database 时,执行时间点数据库恢复以撤消用户错误。
要执行不完整的恢复,必须从要恢复的时间之前创建的备份还原所有数据文件,然后在恢复完成时使用
RESETLOGS选项打开数据库。重置日志会创建一个从日志序列 1 开始的新日志序列号流。注:如果当前数据文件可用,则闪回数据库是 DBPITR 的替代项。
通过表空间时间点恢复 (TSPITR) 功能,可以将一个或多个表空间恢复到比数据库其余部分更早的时间点。
另请参见:
零数据丢失恢复一体机
云级 Zero Data Loss Recovery Appliance(通常称为 Recovery Appliance )是一个集成系统,可显著降低企业中所有 Oracle 数据库的数据丢失和备份开销。
Recovery Appliance 与 RMAN 集成,使用云规模、容错的硬件和存储为大量数据库部署集中式备份和恢复策略。Recovery Appliance 会持续验证备份以实现可恢复性。
-
Recovery Appliance 的优势集中式 Recovery Appliance 可执行大多数数据库备份和还原处理,从而提高备份的存储利用率、性能和可管理性。
-
Recovery Appliance 环境 受保护数据库是将数据备份到 Recovery Appliance 的客户端数据库。
Recovery Appliance 的优势
集中式 Recovery Appliance 可执行大多数数据库备份和还原处理,从而提高备份的存储利用率、性能和可管理性。
主要好处如下:
-
消除数据丢失
Recovery Appliance 使用以下技术消除数据中心内大多数数据库面临的数据丢失风险:
-
将重做更改从受保护数据库的 SGA 持续传输到 Recovery Appliance(称为实时重做传输)
-
复制到远程恢复设备
-
集中式 Recovery Appliance 实现自动化磁带备份
-
端到端数据库块验证
-
-
最低备份开销
Recovery Appliance 可以管理统一磁盘池中多个数据库的备份,从而最大限度地降低数据库服务器上的备份开销。RMAN 永久增量备份策略涉及将初始级别 0 备份复制到 Recovery Appliance,所有后续增量备份都位于级别 1。Recovery Appliance 将 0 级备份与 1 级备份相结合,创建虚拟完整备份。Recovery Appliance 会持续压缩、重复删除和验证块级别的备份。
-
增强端到端的数据保护可见性
Cloud Control 为 Recovery Appliance 管理的备份生命周期(从启动 RMAN 备份到将备份存储在磁盘、磁带或复制到下游 Recovery Appliance)提供完整的端到端视图。通过安装 Enterprise Manager for Zero Data Loss 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 环境

Recovery Appliance 元数据数据库位于每个 Recovery Appliance 上,用于管理存储在恢复目录中的元数据。将备份发送到 Recovery Appliance 的所有受保护数据库都必须使用此恢复目录。备份位于 Recovery Appliance 存储位置,即一组 Oracle ASM 磁盘组。注:数据库可以使用 Recovery Appliance 作为恢复目录,而无需将其用作备份资料档案库。
管理员使用 Cloud Control 来管理和监视环境。Cloud Control 为每个数据库提供整个备份生命周期的“单一管理平台”视图,无论备份位于磁盘、磁带还是其他 Recovery Appliance 上。
内存管理
内存管理涉及根据数据库更改需要使 Oracle 实例的内存结构保持最优大小。初始化参数设置确定如何管理 SGA 和实例 PGA 内存。图 22-5 显示了内存管理选项的决策树。以下各节详细介绍了这些选项。
图 5:内存管理方法

-
自动内存管理在自动内存管理中,Oracle AI Database 完全自动管理 SGA 和实例 PGA 内存。此方法最简单,Oracle 强烈建议您使用此方法。
-
SGA 的共享内存管理 您可以通过使用自动共享内存管理设置 SGA 大小或手动优化 SGA 组件来手动控制 SGA 的大小。
-
实例 PGA 的内存管理如果未启用自动内存管理,则 Oracle AI Database 将使用自动或手动 PGA 内存管理。
-
Summary of Memory Management Methods 内存管理是自动或手动的。另请参见:“内存体系结构”以了解有关 SGA 和 PGA 的更多信息
自动内存管理
在自动内存管理中,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:自动内存管理

如果使用 DBCA 创建数据库并选择基本安装选项,则默认情况下,Oracle AI Database 将启用自动内存管理。
另请参见:
-
“内存中区域”
-
“ Memoptimize Pool ”
SGA 的共享内存管理
您可以通过使用自动共享内存管理设置 SGA 大小或手动优化 SGA 组件来手动控制 SGA 大小。
如果未启用自动内存管理,则系统必须对 SGA 使用共享内存管理。可以采用以下任一形式进行共享内存管理:
-
自动共享内存管理系统
通过此模式,您可以对 SGA 的大小进行更直接的控制,并在禁用自动内存管理时为默认值。数据库根据目标大小调整 SGA 总大小,并动态地调整 SGA 组件的大小。如果您使用的是服务器参数文件,则 Oracle AI Database 会记住数据库实例关闭中自动优化的组件的大小。
-
手动的共享内存管理
在此模式下,您可以设置多个 SGA 组件的大小,并持续手动优化各个 SGA 组件。您可以完全控制各个 SGA 组件大小。当自动内存管理和自动共享内存管理都处于禁用状态时,数据库默认为此模式。
注:禁用自动内存管理时,在某些情况下,数据库可以根据用户工作量自动调整共享池和缓冲区高速缓存的相对大小。
另请参见:
-
My Oracle Support 简讯 KB84770,了解有关在手动模式下自动调整大小的更多信息:
实例 PGA 的内存管理
如果未启用自动内存管理,则 Oracle AI Database 将使用自动或手动 PGA 内存管理。
可以采用以下模式来管理 PGA 内存:
-
自动管理 PGA 内存
禁用自动内存管理 (
MEMORY_TARGET) 并将PGA_AGGREGATE_TARGET设置为非零值时,数据库将使用自动 PGA 内存管理。在此模式下,PGA_AGGREGATE_TARGET指定实例 PGA 的“软”目标大小。目标是软的,因为它仅适用于可选择使用临时空间而不是 PGA 的特定类型的内存分配。数据库将实例 PGA 的大小调整到此目标,并动态地调整单独 PGA 的大小。如果未显式设置目标大小,则数据库会自动配置合理的默认值。PGA_AGGREGATE_LIMIT初始化参数为 PGA 内存动态设置实例范围的硬限制。由于该参数响应更改的内存条件,因此无需显式设置参数值。缺省情况下,PGA_AGGREGATE_LIMIT设置为以下较大值:-
2 GB
-
PGA_AGGREGATE_TARGET初始化参数设置的 200% -
(
PROCESSES初始化参数设置的值)* 3 MB
后台进程会定期将 PGA 大小与
PGA_AGGREGATE_LIMIT设置的限制进行比较。如果达到或超过该限制,则此进程将终止使用最不可调优的 PGA 内存的会话调用。如果这些会话仍未释放足够的内存,则它们也会终止。 -
-
手动 PGA 内存管理
禁用自动内存管理并将
PGA_AGGREGATE_TARGET设置为0时,数据库默认为手动 PGA 管理。以前的 Oracle AI Database 发行版要求 DBA 手动为每种类型的 SQL 运算符指定最大工作区大小(例如排序或散列联接)。事实证明,这种技术非常困难,因为工作量一直在变化。尽管 Oracle AI Database 支持手动 PGA 内存管理方法,但 Oracle 强烈建议自动内存管理。
另请参阅:Oracle AI Database Performance Tuning Guide 以了解 PGA 内存管理
内存管理方法概要
内存管理是自动或手动的。
如果不启用自动内存管理,则必须分别为 SGA 配置一种内存管理方法和为 PGA 配置一种内存管理方法。注:对整个数据库实例禁用自动内存管理时,默认情况下,Oracle Database 将启用自动 PGA 内存管理。
下表包括 INMEMORY_SIZE 初始化参数和 MEMOPTIMIZE_POOL_SIZE 初始化参数。这两个控制内存区域都是可选的。
表 3 内存管理方法
| 实例 | SGA | PGA | 说明 | 初始化参数 |
|---|---|---|---|---|
| 自动 | 不适用 | 不适用 | 数据库根据单个实例目标大小优化实例的大小。 | 您设置了:
|
| 不适用 | 自动 | 自动 | 数据库会根据 SGA 目标自动优化 SGA。 数据库会根据 PGA 目标自动优化 PGA。 |
您设置了:
数据库自动配置 |
| 不适用 | 自动 | 手动 | 数据库会根据 SGA 目标自动优化 SGA。 您可以手动控制 PGA,为每种类型的 SQL 运算符设置最大工作区大小。 |
您设置了:
|
| 不适用 | 手动 | 自动 | 您可以通过设置单个组件大小来手动控制 SGA。 数据库会根据 PGA 目标自动优化 PGA。 |
您设置了:
数据库自动配置 |
| 不适用 | 手动 | 手动 | 必须手动配置 SGA 组件大小。 您可以手动控制 PGA,为每种类型的 SQL 运算符设置最大工作区大小。 |
必须手动配置 SGA 组件大小。您设置了:
|
脚注 1
数据库自动配置 PGA_AGGREGATE_LIMIT 初始化参数。您还可以选择手动设置此参数。
脚注 2
数据库自动配置 PGA_AGGREGATE_LIMIT 初始化参数。您还可以选择手动设置此参数。
另请参阅:Oracle AI Database Administrator’s Guide,因为并非所有平台都提供自动内存管理
Resource Management 和任务计划
Oracle AI Database 提供了各种工具来帮助您管理资源和安排任务,以减少对用户的影响。
在具有许多活动用户的数据库中,资源管理是数据库管理的重要组成部分。消耗过多资源的会话可能会阻止其他会话执行其工作。一个相关的问题是如何安排任务,以便它们在最佳时间运行。Oracle AI Database 提供了帮助解决这些问题的工具。
-
Database Resource Manager Oracle AI Database Resource Manager(资源管理器)提供了对分配给用户帐户、应用程序和服务的数据库资源的细粒度控制。资源管理器主要充当守门员,使一些作业运行缓慢,以便其他作业可以快速运行。
-
CPU 管理 从 Oracle AI Database 26ai 开始,Oracle 提供了一种 CPU 资源管理的替代方法,可在服务器上的所有数据库实例上运行。
-
借助 Oracle Scheduler Oracle Scheduler(调度程序),数据库管理员和应用程序开发人员可以控制各种任务在数据库环境中发生的时间和位置。
数据库资源管理器
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:简单资源计划

资源管理器可以解决的一个问题是失控查询,可以使用 SQL 监视器进行监视。资源管理器允许您指定阈值来标识和响应失控的 SQL 语句。例如,您可以为使用者组中的每个前台进程指定 CPU 时间、用时、物理或逻辑 I/O 以及 PGA 使用情况的阈值。作为响应,资源管理器可以切换到优先级较低的使用者组、终止 SQL 语句或记录阈值违规。
另请参见:
-
Oracle AI Database Administrator’s Guide,了解如何使用资源管理器
-
Oracle AI Database PL/SQL Packages and Types Reference,了解如何使用
DBMS_RESOURCE_MANAGERPL/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 AI Database Administrator’s Guide,了解 CPU 管理选项。
Oracle Scheduler
借助 Oracle Scheduler(调度程序),数据库管理员和应用程序开发人员可以控制各种任务在数据库环境中发生的时间和位置。
排程引擎提供复杂的企业排程功能,您可以使用这些功能:
-
根据时间或事件调度作业执行
-
以符合业务需求的方式安排作业处理
-
管理和监视作业
-
在集群环境中执行和管理作业
程序对象(程序)包含有关调度程序将运行的命令的元数据,包括任何参数的默认值。计划对象(计划)包含有关运行日期、时间和重复模式的信息。任务对象(任务)将计划与计划关联。要定义执行的内容以及执行时间,请在方案、计划和任务之间分配关系。
调度程序在 DBMS_SCHEDULER PL/SQL 程序包中作为一组函数和过程实现。可以使用此程序包或 Enterprise Manager 创建和处理调度程序对象。由于调度程序对象是标准数据库对象,因此可以使用系统和对象权限控制对它们的访问。图 22-8 显示了调度器的基本体系结构。作业表是所有作业的容器,每个数据库有一个表。作业协调器后台进程将根据需要自动启动和停止。当必须运行作业时,协调程序会唤醒作业子进程。子进程从作业表中收集元数据并运行作业。
图 8:调度程序组件

另请参见:
性能和优化
作为 DBA,您需要负责 Oracle 数据库的性能。通常,性能问题由不可接受的响应时间(即完成指定工作量的时间)或吞吐量(即在指定时间内可以完成的工作量)导致。
典型问题包括:
-
CPU 瓶颈
-
内存结构大小不足
-
I/O 容量问题
-
低效率或高负载 SQL 语句
-
优化 SQL 语句后意外的性能衰退
-
并发和争用问题
-
数据库配置问题
调优的一般目标是提高响应时间、提高吞吐量或两者兼而有之。一个具体且可衡量的目标可能是“将指定的 SELECT 语句的响应时间缩短到不到 5 秒”。此目标是否可实现取决于 DBA 可能控制或可能不控制的因素。一般来说,优化是通过尽可能高效地使用数据库资源来实现具体、可衡量和可实现的优化目标。
Oracle 性能方法基于识别和消除数据库中的瓶颈,以及开发高效的 SQL 语句。应用 Oracle 性能方法涉及以下任务:
-
执行预调优准备
-
主动优化数据库,定期
-
用户报告性能问题时,以反应方式优化数据库
-
标识、优化和优化高负载 SQL 语句
本节介绍 Oracle AI Database 性能调优的基本方面,包括指导的使用。Oracle AI Database 顾问就如何解决关键数据库管理难点提供了具体建议,这些管理难点涵盖了广泛的领域,包括空间、性能和还原管理。
-
数据库自我监视 在数据库执行常规操作时进行自我监视,确保数据库在出现问题时能够识别问题。Oracle AI Database 可以发送服务器生成的预警,以通知您即将出现的问题。
-
自动工作量资料档案库 (Automatic Workload Repository,AWR) 自动工作量资料档案库 (Automatic Workload Repository,AWR) 是历史性能数据的资料档案库,其中包含系统、会话、单个 SQL 语句、段和服务的累积统计信息。
-
Automatic Database Monitor (ADDM)(自动数据库监视器 (Automatic Workload Repository,ADDM))使用在 AWR(Automatic Workload Repository,自动工作量资料档案库)中捕获的统计信息,ADDM 会自动主动诊断数据库性能并确定可以如何解决已确定的问题。也可以手动运行 ADDM。
-
活动会话历史记录 (Active Session History,ASH) 活动会话历史记录 (Active Session History,ASH) 每秒对活动数据库会话进行抽样,将数据写入内存和持久性存储。ASH 是数据库自我管理框架的一个组成部分,可用于诊断性能问题。
-
应用和 SQL 优化 Oracle Database 可完全自动执行 SQL 优化过程。另请参阅:Oracle AI Database Get Started with Performance Tuning 和 Oracle AI Database SQL Tuning Guide,了解如何实施 Oracle 性能方法
数据库自我监视
自我监视是在数据库执行常规操作时进行的,这样可确保数据库在出现问题时了解问题。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)

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 报告用于:
-
自动数据库诊断监视器 (Automatic Database Diagnostic Monitor,ADDM) 未识别的短暂性能问题的分析
-
按不同维或其组合(如时间、会话、模块、操作或 SQL ID)执行限定了范围或目标的性能分析
例如,用户会通知您数据库在晚上 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 Statement(EXPLAIN PLAN 语句)工具(如
EXPLAIN PLAN语句)可用于查看优化程序选择的执行计划。 -
优化程序统计信息指导优化程序统计信息指导是诊断软件,用于分析您当前如何收集统计信息、现有统计信息收集作业的有效性以及收集的统计信息的质量。优化程序统计信息指导使用与自动数据库诊断监视器 (Automatic Database Diagnostic Monitor,ADDM)、SQL 性能分析程序和其他指导相同的指导框架。
-
SQL 优化指导 自动 SQL 优化的界面是 SQL 优化指导,它将在系统维护窗口期间作为维护任务自动运行。
-
SQL 访问指导 使用 SQL 访问指导可帮助您分析 SQL 查询,并确定优化方案对象或优化查询的方式。
-
SQL 计划管理 使用 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 性能分析程序和其他指导相同的指导框架。
优化程序统计信息指导与传统方法相比具有以下优势,传统方法依赖于最佳做法:
-
提供易于理解的报告
-
提供脚本以实施必要的修复,无需更改应用程序代码
-
在维护窗口中每天运行一次名为
AUTO_STATS_ADVISOR_TASK的预定义任务 -
在
DBMS_STATS程序包中提供 API,使您可以手动创建和运行任务,在数据字典视图中存储查找结果和建议,为任务生成报表,并在必要时实施更正 -
与现有工具(例如 Oracle Enterprise Manager (Enterprise Manager))集成
优化程序统计信息指导维护规则,这些规则是 Oracle 提供的用于指导执行检查的标准。这些规则体现了基于当前功能集的 Oracle 优秀实践。如果最佳实践从发行版更改为发行版,则优化程序统计信息指导规则也会发生更改。这样,指导始终会提供最新的建议。
优化程序统计信息指导将检查统计信息收集过程,然后生成查找结果报告,这些查找结果违反了规则。如果指导提出建议,并且根据这些建议提出操作,则可以自动实施这些操作,也可以生成可编辑的可执行 PL/SQL 脚本。
指导任务在维护窗口中自动运行,但您也可以根据需要运行。
另请参见:
-
Oracle AI Database SQL Tuning Guide(了解有关优化程序统计信息指导的更多信息)
-
《Oracle AI Database PL/SQL Packages and Types Reference 》,了解
DBMS_STATS程序包
SQL 优化指导
用于自动 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 计划基线,而无需依赖后台任务来执行此操作。
另请参见:
-
Oracle AI Database SQL Tuning Guide,了解 SQL 计划管理