面向数据库管理员和开发人员的主题
此页上的脚本内容仅用于导航目的,不会以任何方式变更该内容。
本章概述了对于数据库管理员和开发人员都很重要的常见数据库主题,并提供了指向其他手册(而非详尽的数据库功能说明)的指针。
-
数据库安全性概览:一般而言,数据库安全性涉及用户验证、加密、访问控制和监视。
-
高可用性概览 可用性是指应用程序、服务或功能按需提供的程度。
-
网格计算概览 称为网格计算的计算体系结构有效地将大量服务器和存储池化为灵活的按需资源,以满足所有企业计算需求。
-
数据仓库和商务智能概览 数据仓库是一个关系数据库,设计用于查询和分析,而不是事务处理。
-
Oracle Information Integration 概览随着组织的发展,在多个数据库和应用程序之间共享信息变得越来越重要。另请参阅:面向数据库管理员的概念(适用于 DBA 的主题)和面向数据库开发人员的概念(适用于特定于数据库开发者的主题)。
Database Security 概述
通常,数据库安全性涉及用户验证、加密、访问控制和监视。
本部分涵盖以下主题:
-
用户帐户 每个 Oracle 数据库都有一个有效数据库用户列表。
-
数据库验证 在 Oracle AI Database 中,数据库验证是用户向数据库提供身份证明的过程,用于验证身份证明并允许访问数据库。
-
加密 Oracle AI Database 加密是使用密钥和加密算法将数据转换为不可读格式的过程。
-
Oracle Data Redaction Oracle Data Redaction 是 Oracle Advanced Security 的一部分,可用于屏蔽低权限用户或应用程序查询的 (redact) 数据。用户查询数据时,将实时进行编写。
-
访问控制 Oracle AI Database 提供了多种技术来控制对数据的访问。本节总结了其中一些技术。
-
数据访问监视 Oracle AI Database 提供了多种工具和技术来监视用户活动。审计是监视数据访问的主要机制。
用户帐户
每个 Oracle 数据库有一个有效数据库用户列表。
数据库包含多个默认帐户,包括默认管理帐户 SYSTEM。您可以根据需要创建用户帐户。您还可以将应用程序用户配置为访问 Oracle 数据库。
要访问数据库,用户必须提供有效的用户名和验证身份证明。凭证可以是密码、Kerberos 票证或公钥基础结构 (Public Key Infrastructure,PKI) 证书。您可以根据失败的登录尝试将数据库安全性配置为锁定帐户。
通常,数据库访问控制涉及限制数据访问和数据库活动。例如,可以限制用户查询指定的表或执行指定的数据库语句。
-
权限 用户权限是运行特定 SQL 语句的权限。
-
角色 角色是指定的一组相关权限,用户可以将其授予其他用户或角色。角色可帮助管理数据库应用程序或用户组的权限。
-
特权分析 特权分析机制根据指定的条件捕获数据库的特权使用。
-
用户配置文件在系统资源的上下文中,用户配置文件是一组指定的资源限制和口令参数,用于限制用户的数据库使用情况和数据库实例资源。
另请参见:
权限
用户权限是运行特定 SQL 语句的权限。
权限分为以下类别:
-
系统权限
这是对数据库中执行特定操作或对特定类型的任何对象执行操作的权利。例如,
CREATE USER和CREATE SESSION是系统特权。 -
模式权限
这是对特定方案内的所有对象使用系统权限的权利。此权限适用于方案中的所有当前和将来对象。
-
对象权限
这是对对象执行特定操作(例如查询
employees表)的权利。权限类型由数据库定义。
权限由其他用户自行决定授予给用户。管理员应向用户授予权限,以便他们可以完成其作业所需的任务。好的安全惯例是仅向需要该权限才能完成必要工作的用户授予权限。
另请参见:
- Oracle AI Database Reference,了解
SESSION_PRIVS视图
角色
角色是用户可以向其他用户或角色授予的相关权限的命名组。角色可帮助管理数据库应用程序或用户组的权限。图 20-1 描述了角色的常见用法。角色 PAY_CLERK、MANAGER 和 REC_CLERK 分配给不同的用户。将应用程序角色 ACCTS_PAY(包括执行 ACCTS_PAY 应用程序的权限)分配给具有 PAY_CLERK 和 MANAGER 角色的用户。将应用程序角色 ACCTS_REC(包括执行 ACCTS_REC 应用程序的权限)分配给具有 REC_CLERK 和 MANAGER 角色的用户。
图 1:角色的常见用途

另请参见:
-
Oracle AI Database Security Guide,了解如何使用角色实现安全性
权限分析
特权分析机制根据指定的条件捕获数据库的特权使用情况。
通过这种方式,可以捕获运行应用程序模块或执行特定 SQL 语句所需的权限。例如,可以查找用户在特定数据库会话期间行使的权限。
在生产数据库中,权限与角色、角色和角色以及角色与用户之间的关系可能很复杂。使用权限分析,可以确定在复杂系统中不必要地授予的权限。根据对捕获结果的分析,可以删除不必要的授权或重新配置权限授权,以使数据库更加安全。
另请参阅:Oracle AI Database Security Guide 以了解权限分析。
用户概要信息
在系统资源的上下文中,用户配置文件是一组指定的资源限制和口令参数,用于限制用户的数据库使用情况和数据库实例资源。
配置文件可以限制用户的并发会话数、每个会话可用的 CPU 处理时间以及可用的逻辑 I/O 量。例如,clerk 配置文件可以将用户限制为文书任务所需的系统资源。注:最好使用数据库资源管理器来限制资源,并使用配置文件来管理密码。
配置文件为共享一组属性的用户提供单点参考。您可以将概要信息分配给一组用户,将默认概要信息分配给所有其他用户。每个用户在任何时间点最多分配一个配置文件。
另请参见:
-
“缓冲区 I/O ”
-
Oracle AI Database Security Guide,了解如何使用配置文件管理资源
-
Oracle AI Database SQL Language Reference(了解
CREATE PROFILE语法和语义)
数据库验证
在 Oracle AI Database 中,数据库验证是用户向数据库提供身份证明的过程,用于验证身份证明并允许访问数据库。
验证身份可为进一步的交互建立信任关系。验证还可以通过将访问和操作链接到特定身份来实现责任。
Oracle AI Database 提供了不同的验证方法,包括:
-
由数据库进行验证
Oracle 数据库可以使用口令、Kerberos 票证或 PKI 证书对用户进行验证。Oracle 还支持符合 RADIUS 的设备进行其他形式的验证,包括生物识别技术。在 Oracle 数据库中创建用户时,必须指定验证类型。
-
操作系统的验证
某些操作系统允许 Oracle AI Database 使用其维护的信息来验证用户。操作系统进行验证后,用户无需指定用户名或密码即可连接到数据库。
非管理数据库用户帐户不能执行数据库操作,例如关闭或启动数据库。这些操作需要 SYSDBA、SYSOPER、SYSBACKUP 或 SYSDG 特权。
另请参见:
加密
Oracle AI Database 加密是使用密钥和加密算法将数据转换为不可读格式的过程。
加密通常用于满足法规合规性要求,例如与支付卡行业数据安全标准 (Payment Card Industry Data Security Standard,PCI-DSS) 关联的要求或违规通知法律。例如,必须加密信用卡号码、社会保险编号或患者健康信息。
-
网络加密在客户机与服务器之间的网络中传输数据时对其进行加密称为网络加密。
-
Transparent Data Encryption Oracle Advanced Security Transparent Data Encryption 可用于加密单个表列或表空间。
网络加密
当数据传输到客户机与服务器之间的网络时对其进行加密称为网络加密。
入侵者可能使用网络包检测器捕获网络上传输的信息,然后将数据假脱机到一个文件供恶意使用。对网络中的数据进行加密可预防此类活动。
透明数据加密
使用 Oracle Advanced Security Transparent Data Encryption ,可以加密单个表列或表空间。
当用户将数据插入到加密列时,数据库会自动加密数据。当用户选择该列时,数据会解密。这种加密形式是透明的,提供高性能,并且易于实施。
透明数据加密包括行业标准的加密算法,例如高级加密标准 (Advanced Encryption Standard,AES) 和内置密钥管理。
另请参阅:Oracle AI Database Transparent Data Encryption Guide
Oracle Data Redaction
Oracle Data Redaction 是 Oracle Advanced Security 的一部分,可用于屏蔽低权限用户或应用程序查询的(编写)数据。用户查询数据时,将实时进行编写。
数据编写支持以下编写函数类型:
-
完整数据编写
在这种情况下,数据库对表或视图中指定列的整个内容进行编写。例如,姓氏的
VARCHAR2列显示单个空格。 -
部分数据校订
在这种情况下,数据库将编辑所显示输出的部分。例如,应用程序可以将以
1234结尾的信用卡号显示为xxxx-xxxx-xxxx-1234。可以将正则表达式用于完全编写和部分编写。正则表达式可以基于搜索模式对数据进行编写。例如,可以使用正则表达式编写特定的电话号码或电子邮件地址。 -
随机数据编写
在这种情况下,数据库会根据列的数据类型,将数据显示为随机生成的值。例如,数字
1234567可以显示为83933895。
数据校订不是一个全面的安全解决方案。例如,它不会阻止直接连接的特权用户对编写的数据执行推断攻击。此类攻击识别编写的列,通过消除过程,通过重复猜测存储值的 SQL 查询来尝试返回到实际数据。为了检测和防止特权用户的推断和其他攻击,Oracle 建议将 Oracle Data Redaction 与相关数据库安全产品(例如 Oracle Audit Vault and Database Firewall 和 Oracle Database Vault)配对。
数据编写工作如下:
-
使用
DBMS_REDACT程序包为指定表创建编写策略。 -
在策略中,指定预定义的编写函数。
-
数据库显示列的实际值还是编写的值取决于策略。如果对数据进行了编写,则在向用户显示之前,该编写将立即出现在顶层选择列表中。
以下示例添加了完整的数据编写策略来编写 hr.employees 表中的员工 ID (employee_id) 列:
BEGIN
DBMS_REDACT.ADD_POLICY(
object_schema => 'hr'
, object_name => 'employees'
, column_name => 'employee_id'
, policy_name => 'mask_emp_ids'
, function_type => DBMS_REDACT.FULL
, expression => '1=1'
);
END;
/
在前面的示例中,计算结果为 true 的表达式设置将编写应用于未授予 EXEMPT REDACTION POLICY 特权的用户。
另请参见:
-
Oracle AI Database PL/SQL Packages and Types Reference(了解
DBMS_REDACT)
访问控制
Oracle AI Database 提供了多种技术来控制数据访问。本节总结了其中一些技术。
-
Oracle Database Vault 限制授权用户对应用数据的访问。
-
通过 Virtual Private Database (VPD) Oracle Virtual Private Database (VPD) ,您可以在行和列级别强制实施安全性。
-
使用 Oracle Label Security (OLS) Oracle Label Security (OLS) ,您可以使用安全标签分配数据分类和控制访问权限。您可以为数据或用户分配标签。
Oracle Database Vault
Oracle Database Vault 限制授权用户对应用数据的访问。
从 Oracle Database 12c 开始,Oracle Database Vault 扩展了标准数据库审计数据结构。此外,如果您迁移到统一审计,则数据库会将审计记录写入 Oracle Secure Files 中的统一审计线索,该文件集中了 Oracle AI Database 的审计记录。
您可以使用 Oracle Database Vault 来控制数据库、数据和应用访问的时间、位置以及访问方式。因此,您可以解决常见的安全问题,例如防止内部威胁、遵守法规要求以及执行职责分离。
为了使 Oracle Database Vault 管理员承担责任,数据库将强制审计对 Oracle Database Vault 元数据所做的配置更改。这些更改包括创建、修改和删除任何与 Oracle Database Vault 相关的强制执行、授予和撤销受保护角色,以及对 Oracle Data Pump 和作业调度器等组件的授权。
另请参见:
-
Oracle AI Database Security Guide,了解 Oracle Database Vault Audit 与 Oracle Database Native Audit 的集成
虚拟专用数据库 (VPD)
借助 Oracle Virtual Private Database (VPD) ,您可以在行和列级别强制实施安全性。
安全策略用于建立保护数据库免受数据意外或恶意破坏或数据库基础结构损坏的方法。
当安全保护(如特权和角色)没有足够细粒度时,VPD 非常有用。例如,可以允许所有用户访问 employees 表,但可以创建安全策略来限制对用户所在部门中的员工的访问。
本质上,数据库实际上为对表、视图或应用 Oracle VPD 安全策略的同义词发出的 SQL 语句添加了一条动态的 WHERE 子句。WHERE 子句仅允许其凭证通过安全策略访问受保护数据的用户。
另请参阅:Oracle AI Database Security Guide
Oracle Label Security (OLS)
使用 Oracle Label Security (OLS) ,您可以使用安全标签分配数据分类和控制访问权限。您可以为数据或用户分配标签。
分配给数据时,标签可以作为隐藏列附加到表中,从而为 SQL 提供透明度。例如,可以将包含高度敏感数据的行标记为 HIGHLY SENSITIVE,将不那么敏感的行标记为 SENSITIVE。当用户尝试访问数据时,ORS 会将用户标签与数据标签进行比较,并确定是否授予访问权限。与 VPD 不同,OSS 提供了现成的安全策略和用于定义和存储标签的元数据资料档案库。
如果启用了统一审计,则数据库将提供一个基于策略的框架来配置和管理审计选项。可以对不同类型的操作(包括 OLS 操作)的审计选项进行分组,并将它们另存为审计策略。然后,您可以启用或禁用策略以强制实施底层审计选项。
每当创建 OLS 策略时,数据库都会将策略的标签列添加到数据库审计线索表。OLS 审计可以将审计记录(包括 OLS 管理员操作的记录)写入统一审计线索。
数据访问监视
Oracle AI Database 提供多种工具和技术来监视用户活动。审计是监视数据访问的主要机制。
-
Database Auditing(数据库审计)是指对所选用户数据库操作执行监视和记录。
-
统一审计跟踪审计记录对于检测和识别未经授权的数据访问至关重要。
-
Enterprise Manager 审计支持 Oracle Enterprise Manager (Enterprise Manager) 使您能够执行大多数与审计相关的任务。
-
Oracle Audit Vault and Database Firewall Oracle Audit Vault and Database Firewall (Oracle AVDF) 为数据库提供一线防御,并整合来自数据库、操作系统和目录的审计数据。
数据库审计
数据库审计是指对所选用户数据库操作进行监视和记录。
可以配置 unified audit policy 来审计以下内容:
-
SQL 语句、系统权限、方案对象和角色(作为直接授予其的一组系统权限)
-
管理用户和非管理用户
-
应用程序上下文值
应用程序上下文是指定名称空间中的属性名称 - 值对。应用程序在对数据库执行操作之前设置各种上下文。例如,应用程序存储指示应用程序事件状态的模块名称和客户机 ID 等信息。应用程序可以配置上下文,以便将有关上下文的信息附加到审计记录。
-
为 Real Application Security、Oracle Database Vault、Oracle Label Security、Oracle Data Pump 和 Oracle SQL*Loader 直接路径事件创建策略
统一审计线索可以捕获 Recovery Manager 事件,您可以在 UNIFIED_AUDIT_TRAIL 数据字典视图中查询这些事件。您没有为 Recovery Manager 事件创建统一审计策略。
您还可以使用细粒度审计来审计特定的表列,并在创建策略期间关联事件处理程序。对于统一和细粒度审计,您可以创建策略来测试捕获特定数据库操作的条件或活动发生的时间。例如,可以审计在晚上 9:00 之后访问的表。
审计的原因包括:
-
为当前行动实现未来的问责制
-
根据用户的责任,阻止用户(或其他人,如入侵者)采取不当行动
-
调查、监控和记录可疑活动
-
满足合规性审计要求
从 Oracle Database 12c 开始,使用统一审计时,默认情况下会启用数据库审计。可以通过启用审计策略来控制数据库审计。但是,您必须先将数据库迁移到统一审计,然后才能使用统一审计。
另请参见:
-
Oracle AI Database Security Guide,了解有关统一审计的详细信息
-
Oracle AI Database Upgrade Guide,了解如何迁移到统一审计
审计策略
可以使用单个 SQL 语句创建指定一组审计选项的命名统一审计策略。这些选项可以指定要在数据库中审计的系统权限、操作或角色。
在审计策略中,可以选择性地设置一个条件,可以针对每个语句求值一次,针对会话求值一次,或者针对数据库实例求值一次。事件的审计取决于对适用审计策略的条件的评估结果。如果条件的计算结果为 true,则数据库将生成审计记录。
以下示例创建一个策略,审计 hr.employees 表上的活动,除非用户从可信终端 term1 和 term2 登录:
CREATE AUDIT POLICY EmployeesTableAudit
ACTIONS update ON hr.employees, delete ON hr.employees
WHEN SYS_CONTEXT ("userenv", "hostname") NOT IN
("term1","term2") EVALUATE PER SESSION;
以下语句为用户 hr 和 hrvp 启用策略:
AUDIT POLICY EmployeesTableAudit BY hr, hrvp;
可以对任何数据库用户(包括 SYSDBA、SYSOPER 等管理用户)应用统一审计策略。但是,只能在使用 ALTER DATABASE OPEN 语句打开数据库后读取审计策略。因此,在数据库打开之前,始终会审计管理用户的顶层操作。数据库打开后,审计策略配置将生效。
启用统一审计时,数据库会自动审计对审计设置的更改。数据库还会审计数据库实例启动和关闭。
另请参阅:Oracle AI Database Security Guide,了解如何管理审计策略
审计管理员角色
要执行审计,必须已授予您合适的系统权限。
Oracle AI Database 提供了以下系统提供的审计管理员角色:
-
AUDIT_ADMINAUDIT_ADMIN角色管理数据库的审计设置。具有此角色的用户具有执行以下操作的权限:-
创建、更改和删除审计策略,包括细粒度审计策略
-
为每个业务需求启用或禁用审计策略
-
查看审计记录
-
管理和清理审计线索
-
-
AUDIT_VIEWERAUDIT_VIEWER角色适用于仅需要查看和分析数据的用户。具有此角色的用户只能查看审计线索内容。
另请参阅:Oracle AI Database Security Guide 以了解有关审计的更多信息
统一审计线索
审计记录对于检测和识别未经授权的数据访问至关重要。
Oracle AI Database 可以配置指定事件的审计。如果事件发生在用户会话期间,则数据库将生成审计记录。
审计迹是用于存储审计记录的位置。统一审计线索是 Oracle Database 12c 中的新特性,它为所有审计类型的审计记录提供统一存储。您必须手动从以前的发行版的传统审计线索迁移到统一审计。
审计包括标准和细粒度审计,还包括对以下事件的审计,包括管理用户执行这些事件:
-
Oracle 数据泵
-
SQL*Loader 直接路径加载
-
Oracle Database Vault
-
Oracle Label Security
-
恢复管理器
-
Real Application Security
统一审计线索是只读的,存储在 AUDSYS 方案中。默认情况下,SYSAUX 表空间存储来自所有源的审计记录。可以使用 DBMS_AUDIT_MGMT 程序包提供新的表空间。
UNIFIED_AUDIT_TRAIL 视图从审计追踪中检索审计记录,并以表格形式显示这些记录。APPLICATION_CONTEXTS 列存储已配置应用程序上下文属性的值。可以使用 AUDIT 语句在审计记录中包括上下文属性的值。例如,以下语句从 userenv 名称空间捕获 MODULE 和 CLIENT_INFO 属性:
AUDIT CONTEXT NAMESPACE userenv ATTRIBUTES MODULE, CLIENT_INFO BY hr;
根据审计的组件(例如 Oracle Database Vault),可以使用其他与审计线索相关的统一视图。
另请参见:
-
Oracle AI Database Security Guide,了解统一审计线索
-
Oracle AI Database Upgrade Guide,了解如何迁移数据库以使用统一审计
-
Oracle AI Database Reference,了解
UNIFIED_AUDIT_TRAIL视图
Enterprise Manager 审计支持
使用 Oracle Enterprise Manager (Enterprise Manager) 可以执行大多数与审计相关的任务。
任务包括以下内容:
-
启用和禁用审计
-
在审计语句和方案对象时管理对象
例如,使用 Enterprise Manager 可以显示和搜索当前审计的语句、权限和对象的属性。
-
查看和配置与审计相关的初始化参数
-
显示审计报告
另请参阅:Enterprise Manager 联机帮助
Oracle Audit Vault and Database Firewall
Oracle Audit Vault and Database Firewall (Oracle AVDF) 为数据库提供一线防御,并整合来自数据库、操作系统和目录的审计数据。
基于 SQL 语法的引擎会在未授权的 SQL 流量到达数据库之前对其进行监视和阻止。对于合规性报告和警报,Oracle AVDF 将来自网络的数据库活动数据与详细的审计数据相结合。您可以定制审计和监视控制来满足企业安全要求。
另请参阅:Oracle AI Database Security Guide 以了解其他安全资源,例如 Oracle Audit Vault and Database Firewall
高可用性概览
可用性是指应用程序、服务或功能按需提供的程度。
例如,在线书商使用的 OLTP 数据库在进行购买的客户可以访问的情况下可用。可靠性、可恢复性、及时的错误检测和持续运行是高可用性的主要特征。
高可用性在数据库环境中的重要性与停机成本(即资源不可用的时间)有关。停机时间可分为计划内或计划外。设计高可用性环境时面临的主要挑战是研究停机的所有可能原因,并制定应对这些问题的计划。
-
高可用性和计划外停机时间 Oracle AI Database 提供高可用性解决方案,可防止、容忍和减少所有类型的计划外故障的停机时间。
-
高可用性和计划停机时间 计划停机可能对运营造成同样的破坏,尤其是在支持多个时区用户的全球企业中。在这种情况下,设计一个系统以最大限度地减少计划的中断(如常规操作、定期维护和新部署)非常重要。
高可用性和计划外停机时间
Oracle AI Database 提供高可用性解决方案,可防止、容忍和减少所有类型的计划外故障的停机时间。
计划外停机时间可以按其原因进行分类。
-
站点故障 站点故障发生在事件导致应用程序全部或大部分停止处理或减慢到不可用的服务级别时。
-
计算机故障:当运行数据库的系统由于已关闭或无法再访问而变得不可用时,会发生计算机故障停机。
-
存储故障 当包含部分或全部数据库内容的存储由于已关闭或无法再访问而变为不可用时,会发生存储故障中断。存储故障的示例包括磁盘驱动器或存储阵列的故障。
-
数据损坏:当硬件、软件或网络组件导致读取或写入损坏的数据时,会出现数据损坏。
-
人为错误:提交意外或恶意操作,导致数据库中的数据在逻辑上损坏或不可用时,会出现人为错误中断。人为错误中断的服务级别影响可能因受影响数据的数量和严重性而异。
站点故障
站点故障发生在事件导致应用程序的所有或大部分停止处理或减慢到不可用的服务级别时。
站点故障可能会影响数据中心的所有处理,或者影响数据中心支持的部分应用程序。例如,扩展站点范围的电源或网络故障、导致数据中心无法运行的自然灾害,或者对操作或站点的恶意攻击。
防止站点故障的最简单形式是使用 RMAN 创建数据库备份并将其存储在异地。可以将数据库还原到其他主机。但是,此技术可能非常耗时,并且备份可能不是最新的。通过在 Data Guard 环境中维护一个或多个备用数据库,您可以在生产站点发生故障时提供连续数据库服务。
另请参见:
-
Oracle AI Database Backup and Recovery User’s Guide,了解有关 RMAN 和备份和恢复解决方案的信息
计算机故障
当运行数据库的系统因其已关闭或不再可访问而变得不可用时,会发生计算机故障中断。
计算机故障的示例包括硬件和操作系统故障。下表中的 Oracle 功能可防止或帮助响应计算机故障。
表 1 防止计算机故障
| 功能 | 说明 | 详细了解 |
|---|---|---|
| 企业网格 | 在 Oracle Real Applications Cluster (Oracle RAC) 环境中,Oracle AI Database 在集群中的两个或更多系统上运行,同时并发访问单个共享数据库。单个数据库系统跨越多个硬件系统,但仍显示为单个数据库。 | “网格计算概览” |
| Oracle Data Guard | 使用数据卫士,您可以维护生产数据库(称为备用数据库)的一个或多个副本,该数据库可以位于不同大洲或同一数据中心。如果主数据库因停机而不可用,则 Data Guard 可以将任何备用数据库切换为主数据库角色,从而最大限度地减少停机时间。 | Oracle Data Guard 概念和管理 |
| 全局数据服务 | Global Data Services 框架可自动化和集中配置、维护和监视数据库云。全局数据服务可为云提供的服务实现负载平衡和故障转移。从本质上讲,Global Data Services 提供的一组数据库与 Oracle Real Application Clusters (Oracle RAC) 提供的一组数据库具有相同的优势。 | Oracle AI Database Global Data Services Concepts and Administration Guide |
| 快速启动故障恢复 | 计划外停机的常见原因是系统故障或故障。Oracle AI Database 中的快速启动故障恢复技术可自动限制数据库实例恢复时间。 | Oracle AI Database Performance Tuning Guide |
存储故障
当存放部分或全部数据库内容的存储因已关闭或无法再访问而变为不可用时,将发生存储故障。存储故障的示例包括磁盘驱动器或存储阵列的故障。
下表显示了 Oracle Data Guard 之外的存储故障。
表 2 存储故障的解决方案
| 解决方案 | 说明 | 详细了解 |
|---|---|---|
| Oracle Automatic Storage Management (Oracle ASM) | Oracle ASM 是用于支持单实例 Oracle AI Database 和 Oracle RAC 配置的 Oracle 数据库文件的卷管理器和文件系统。Oracle ASM 是 Oracle 建议的存储管理解决方案,它提供了替代常规卷管理器和文件系统的解决方案。 | “Oracle Automatic Storage Management (Oracle ASM) ” |
| 备份和恢复 | Recovery Manager (RMAN) 实用程序可以备份数据,从以前的备份恢复数据,并在发生故障之前恢复对该数据的更改。 | “备份和恢复” |
另请参阅:Oracle Automatic Storage Management Administrator’s Guide 以了解有关 Oracle ASM 的更多信息
数据损坏
当硬件、软件或网络组件导致读取或写入损坏的数据时,会出现数据损坏。
数据损坏的一个示例是卷管理器错误,导致错误的磁盘读取或写入。数据损坏很少见,但可能会对数据库造成灾难性影响,进而对企业造成灾难性影响。
除了 Data Guard 和 Recovery Manager,Oracle AI Database 还支持以下形式的保护,以防数据损坏:
-
解决丢失的写入问题
当 I/O 子系统确认写入已完成数据块但未发生写入时,会发生丢失的写入。在执行后续块读取时,I/O 子系统会返回过时的数据块,使用其更新数据库的其他块,从而损坏数据库Oracle AI Database 解决方案如下:
-
使用备用数据库时丢失写入保护
在 Oracle Database 11g 中引入的标准丢失写入保护中,可以在主数据库和备用数据库上启用
DB_LOST_WRITE_PROTECT初始化参数。每个数据库都会在联机重做日志中记录缓冲区高速缓存块读取。备用数据库在受管恢复期间应用重做时,它先读取相应的块并将 SCN 与重做的日志中的 SCN 进行比较,然后检测差异。 -
使用影子表空间丢失写入保护
对于 shadow lost write protection ,将创建影子表空间。影子表空间包含跟踪的数据文件中每个数据块的简短说明记录,包括 SCN。
如果启用了影子丢失写入保护 (
ALTER DATABASE ENABLE LOST WRITE TRACKING),并且数据库更新了跟踪的数据块,则数据库会将 SCN 写入相应的影子表空间。读取跟踪的数据块时,数据库会查找影子条目,然后将其与跟踪的块进行比较。如果影子条目的 SCN 大于跟踪块,则会发生丢失的写入。影子丢失的写入保护具有在不使用备用数据库的情况下检测丢失的写入的优点。此外,由于备用数据库丢失写入保护固有的延迟,在检测到丢失写入时,此块可能已损坏数据库的其他部分。为了防止数据损坏,影子丢失的写入保护会在写入之前检测到丢失的写入。
-
-
数据块腐败检测
块损坏是未采用可识别的 Oracle 格式或其内容在内部不一致的数据块。多个数据库组件和实用程序(包括 RMAN)可以检测损坏的块并将其记录在
V$DATABASE_BLOCK_CORRUPTION中。如果环境使用 Active Data Guard 备用数据库,则可以自动修复损坏。 -
Transaction Guard 和应用程序连续性
无论是计划内还是计划外,数据库会话中断都可能导致最终用户无法确定其工作状态。在某些情况下,用户可以重新提交已提交的事务处理,从而导致逻辑数据损坏。Transaction Guard 提供事务处理幂等性,使数据库能够保留保证的提交结果,指明事务处理是否已提交和已完成。Application Continuity(包括 Transaction Guard)允许应用程序在可恢复的错误后针对数据库重放事务处理,并在事务处理停止的位置继续。
另请参见:
-
Oracle AI Database Backup and Recovery User’s Guide,了解有关 RMAN 和备份和恢复解决方案的信息
人为错误
提交导致数据库中的数据在逻辑上损坏或无法使用的无意或恶意操作时,会发生人为错误中断。人为错误中断的服务级别影响可能因受影响数据的数量和严重性而异。
许多研究将人为错误列为停机的最大原因。Oracle AI Database 提供了强大的工具,可帮助管理员快速诊断这些错误并从中恢复。它还包括使最终用户能够从问题中恢复而无需管理员参与的功能。
Oracle AI Database 建议使用以下形式来防止人为错误:
-
用户访问权限的限制
防止错误的最佳方法是限制用户对数据和服务的访问。Oracle AI Database 提供各种安全工具,通过验证用户来控制用户对应用程序数据的访问,然后允许管理员仅向用户授予履行其职责所需的权限。
-
Oracle Flashback 技术
Oracle Flashback Technology 是 Oracle AI Database 中的一系列人为错误更正功能。Oracle Flashback 提供了一个 SQL 界面,可快速分析和修复人为错误。例如,您可以执行以下操作:
-
针对局部损伤的细粒度手术分析和修复
-
快速校正更广泛的损坏
-
在行、事务处理、表、表空间和数据库级别进行恢复
-
-
Oracle LogMiner
Oracle LogMiner 是一种关系工具,可用于使用 SQL 读取、分析和解释联机文件。
另请参见:
-
“数据库安全性概述”
-
Oracle AI Database Backup and Recovery User’s Guide 和 Oracle AI Database Development Guide,了解有关 Oracle Flashback 功能的更多信息
-
Oracle AI Database Utilities,了解有关 Oracle LogMiner 的更多信息
高可用性和计划停机时间
计划停机可能会对运营造成同样的破坏,特别是在支持多个时区用户的全球企业中。在这种情况下,设计一个系统以最大限度地减少计划的中断(如常规操作、定期维护和新部署)非常重要。
计划停机时间可以按其原因进行分类。
-
系统和数据库更改 在执行常规和定期维护操作以及新部署(包括对数据库中的组织数据结构外部发生的操作环境的已调度更改)时,会出现计划内系统更改。
-
当 Oracle AI Database 对象的逻辑结构或物理组织发生更改时,会出现数据更改计划的数据更改。这些变化的主要目标是提高性能或可管理性。示例包括表重新定义、添加表分区以及创建或重建索引。
-
应用程序更改 计划的应用程序更改可能包括对数据、方案和程序的更改。这些更改的主要目标是提高性能、可管理性和功能。例如,应用程序升级。
系统和数据库更改
在执行常规和定期维护操作以及新部署(包括对数据库中的组织数据结构外部发生的操作环境的计划更改)时,会发生计划内系统更改。
示例包括添加或删除 CPU 和群集节点(节点是数据库实例所在的计算机)、升级系统硬件或软件以及迁移系统平台。
Oracle AI Database 提供动态资源预配,作为计划内系统和数据库更改的解决方案:
-
数据库的动态重新配置
Oracle AI Database 可动态适应各种硬件和数据库配置更改,包括从 SMP 服务器添加和删除处理器,以及使用 Oracle ASM 添加和删除存储阵列。例如,Oracle AI Database 监视操作系统以检测 CPU 数的更改。如果
CPU_COUNT初始化参数设置为默认值,则数据库工作量可以动态地利用新添加的处理器。 -
自动优化内存管理
Oracle AI Database 使用非集中策略在 SGA 和 PGA 的每个子组件中释放和获取内存。Oracle AI Database 通过提示操作系统将内存组传输到需要内存的组件来自动调整内存。
-
数据文件、控制文件和联机重做日志文件的自动分配
Oracle ASM 可自动将数据文件、控制文件和日志文件分发到所有可用磁盘,从而自动简化数据文件的布局。
另请参见:
-
“内存管理”
-
要了解有关 Oracle ASM 的更多信息,请参阅 Oracle Automatic Storage Management Administrator’s Guide
数据更改
当 Oracle AI Database 对象的逻辑结构或物理组织发生更改时,会发生计划的数据更改。这些变化的主要目标是提高性能或可管理性。示例包括表重新定义、添加表分区以及创建或重建索引。
Oracle AI Database 通过联机重组和重新定义,尽可能缩短数据更改停机时间。使用此体系结构可以在数据库打开时执行以下任务:
-
执行联机表重新定义,使您能够在不显著影响表可用性的情况下进行表结构修改
-
创建、分析和重组索引
-
移动表分区
另请参见:
-
“索引和索引组织表”
-
“分区概述”
-
Oracle AI Database Administrator’s Guide,了解如何联机更改数据结构
应用程序变更
计划内应用程序更改可能包括对数据、方案和程序的更改。这些更改的主要目标是提高性能、可管理性和功能。例如应用程序升级。
Oracle AI Database 支持以下解决方案,以尽可能缩短更改应用数据库对象所需的应用停机时间。
表 3 减少停机时间的解决方案
| 解决方案 | 说明 | 详细了解 |
|---|---|---|
| 正在滚动数据库补丁程序更新 | Oracle AI Database 支持以滚动方式将补丁程序应用于 Oracle RAC 系统的节点。 | |
| 滚动数据库发行版升级 | Oracle AI Database 支持使用 Data Guard SQL 应用和逻辑备用数据库,以滚动方式安装数据库软件升级和应用补丁程序集,数据库停机时间接近于零。 | Oracle AI Database 升级指南 |
| 基于版本的重新定义 | 通过基于版本的重新定义,您可以在使用应用程序时升级应用程序的数据库对象,从而最大限度地减少或消除停机时间。Oracle AI Database 通过在称为版本的专用环境中更改(重新定义)数据库对象来完成此任务。 | Oracle AI Database 开发指南 |
带有缺省 WAIT 选项的 DDL |
DDL 语句需要对内部结构进行独占锁定(请参见“ DDL 锁定”)。在以前的发行版中,如果 DDL 语句无法获取锁,它们将失败。使用 WAIT 选项指定的 DDL 可解决此问题。 |
|
| 创建处于禁用状态的触发器 | 您可以创建处于禁用状态的触发器,以便确保代码在启用触发器之前成功编译。 | Oracle AI Database PL/SQL 语言参考 |
网格计算概览
称为网格计算的计算体系结构有效地将大量服务器和存储池化为灵活的按需资源,以满足所有企业计算需求。
数据库服务器网格是在一个或多个数据库上运行的一组商品服务器。数据库存储网格是低成本的模块化存储阵列集合,由数据库服务器网格中的计算机组合和访问。
使用数据库服务器和存储网格,可以构建系统资源池。您可以根据业务优先级动态分配和取消分配这些资源。图 20-2 说明了网格企业计算环境中的数据库服务器网格和数据库存储网格。
图 2:网格计算环境

-
Database Server Grid Oracle Real Application Clusters (Oracle RAC) 支持多个实例共享对 Oracle 数据库的访问。实例通过互连进行链接。
-
Oracle Flex Clusters 从 Oracle Database 12c 开始,您可以在大型集群中配置 Oracle Clusterware 和 Oracle Real Application Clusters。
-
数据库存储网格 另请参见:
http://www.globalgridforum.org/以了解标准组织全球网格论坛 (Global Grid Forum,GGF)
数据库服务器网格
Oracle Real Application Clusters (Oracle RAC) 支持多个实例共享对 Oracle 数据库的访问。实例通过互连进行链接。
在 Oracle RAC 环境中,Oracle AI Database 在集群中的两个或更多系统上运行,同时并发访问单个共享数据库。Oracle RAC 通过提供跨多个低成本服务器的单个数据库来启用数据库服务器网格,这些服务器仍显示为单个统一的数据库系统。Oracle Clusterware 是使服务器可以像一个服务器一样一起运行的软件。每个服务器看起来像任何独立的服务器。但是,每台服务器都具有相互通信的其他进程,因此单独的服务器可以像一个服务器一样协同工作。Oracle Clusterware 提供了运行集群所需的所有功能,包括节点成员资格和消息传送服务。
-
可伸缩性在数据库服务器网格中,Oracle RAC 允许您随着容量需求的增加向集群添加节点。
-
容错 在高可用性体系结构中,容错是针对体系结构中的组件故障提供的保护。
-
服务 Oracle RAC 支持对数据库工作负载进行分组的服务,并将工作负载路由到分配给提供服务的最佳实例。
另请参见:
-
Oracle Real Application Clusters Administration and Deployment Guide,了解如何管理 Oracle RAC 数据库
-
Oracle Clusterware Administration and Deployment Guide,了解如何管理和部署 Oracle Clusterware
可扩展性
在数据库服务器网格中,Oracle RAC 允许您随着对容量需求的增加向集群添加节点。
通过在 Oracle RAC 中实施的高速缓存融合技术,您可以在不更改应用的情况下扩展容量。因此,您可以逐步扩展系统以节省成本,并且无需用较大的单节点系统替换较小的单节点系统。
您可以增量地向集群添加节点,而不是将现有系统替换为更大的节点。Grid Plug and Play 简化了集群中节点的添加和删除,从而更轻松地在动态预配的环境中部署集群。Grid Plug and Play 还支持以与位置无关的方式管理数据库和服务。SCAN 使客户机能够连接到数据库服务,而不考虑它在网格中的位置。
另请参见:
- Oracle Real Application Clusters Administration and Deployment Guide(了解有关高速缓存融合的更多信息)
容错
在高可用性体系结构中,容错是针对体系结构中组件故障提供的保护。
Oracle RAC 体系结构的一个关键优势是由多个节点提供的固有容错能力。由于物理节点独立运行,因此一个或多个节点的故障不会影响群集中的其他节点。
可能会对网格上的任何节点进行故障转移。在极端情况下,即使除一个节点之外的所有节点都已关闭,Oracle RAC 系统也会提供数据库访问。此体系结构允许一组节点透明地联机或脱机进行维护,而群集的其余部分则继续提供数据库访问。
Oracle RAC 提供与 Oracle 客户端和连接池的内置集成。通过此功能,将立即向应用程序通知通过池终止连接的任何故障。应用程序可以避免等待 TCP 超时,并可以立即执行相应的恢复操作。Oracle RAC 将监听程序与 Oracle 客户端和连接池集成,以创建最佳应用吞吐量。Oracle RAC 可以根据事务处理时的负载平衡集群工作负载。
另请参见:
-
“数据库驻留连接池”
-
Oracle Real Application Clusters Administration and Deployment Guide(了解有关自动工作负载管理的更多信息)
服务
Oracle RAC 支持服务,这些服务可以对数据库工作负载进行分组并将工作负载路由到分配给提供服务的最佳实例。
服务代表着应用程序的工作量,具有常见属性、性能阈值和优先级。您可以定义业务策略并将其应用于这些服务,以执行任务,例如为峰值处理时间分配节点或自动处理服务器故障。使用服务可确保系统资源在实现业务目标所需的时间和地点的应用。
服务与数据库资源管理器集成,使您能够限制服务在实例中可以使用的资源。此外,Oracle Scheduler 作业可以使用服务运行,而不可以使用特定实例运行。
另请参见:
-
“数据库资源管理器”
-
Oracle AI Database Administrator’s Guide,了解 Database Resource Manager 和 Oracle Scheduler
Oracle Flex 集群
从 Oracle Database 12c 开始,您可以在大型集群中配置 Oracle Clusterware 和 Oracle Real Application Clusters。
这些称为 Oracle Flex Clusters 的大型集群包含两种类型的节点,这些节点排列在中心辐射型体系结构中:Hub 节点和叶节点。Hub 节点紧密连接,可以直接访问共享存储,并充当一个或多个叶节点的锚点。叶节点与 Hub 节点松散连接,可能无法直接访问共享存储。
另请参见:
-
Oracle Clusterware Administration and Deployment Guide(了解有关 Oracle Flex Clusters 的更多信息)
-
Oracle Grid Infrastructure Installation and Upgrade Guide(了解有关 Oracle Flex Cluster 部署的更多信息)
数据库存储网格
DBA 或存储管理员可以使用 Oracle ASM 接口指定数据库存储网格中 Oracle ASM 应在所有服务器和存储平台上管理的磁盘。Oracle ASM 对磁盘空间进行分区,并在提供给 Oracle ASM 的磁盘之间平均分配数据。此外,在从数据库存储网格中添加或删除存储阵列中的磁盘时,Oracle ASM 会自动重新分配数据。
另请参见:
-
Oracle Automatic Storage Management Administrator’s Guide(了解有关群集 Oracle ASM 的详细信息)
数据仓库和业务智能概览
数据仓库是一个关系数据库,设计用于查询和分析,而不是事务处理。
例如,数据仓库可以跟踪历史股票价格或所得税记录。仓库通常包含从历史事务处理数据派生的数据,但可以包含来自其他来源的数据。
数据仓库环境除了包含关系数据库外,还包括多个工具。典型环境包括 ETL 解决方案、 OLAP 引擎、客户机分析工具以及收集数据并将其交付给用户的其他应用程序。
-
数据仓库和 OLTP 引入数据仓库的一种常见方法是参考 William Inmon 所描述的数据仓库的特性。
-
数据仓库架构:数据仓库及其架构因业务需求而异。
-
提取、转换和加载 (ETL) 概览从源系统提取数据并将其带入仓库的过程通常称为 ETL:提取、转换和加载。ETL 是指一个广泛的过程,而不是三个明确定义的步骤。
-
商务智能是对组织信息的分析,有助于制定业务决策。
数据仓库和 OLTP
引入数据仓库的一种常见方法是参考 William Inmon 所描述的数据仓库的特性。
特点如下:脚 1
-
面向主题
通过数据仓库,您可以按主题(例如销售)定义数据库。
-
已集成
数据仓库必须以一致的格式存储来自不同来源的数据。它们必须解决命名冲突和计量单位之间不一致等问题。当他们达到这个目标时,他们被认为是整合的。
-
非易变
仓库的用途是使您能够分析已发生的情况。因此,在数据进入仓库后,数据不应更改。
-
时间变量
数据仓库的重点是随时间变化。
数据仓库和 OLTP 数据库有不同的要求。例如,要发现业务趋势,数据仓库必须维护大量数据。相比之下,良好的性能要求定期将历史数据从 OLTP 系统移动到归档。表 20-4 列出了数据仓库与 OLTP 之间的差异。
表 4 数据仓库和 OLTP 系统
| 特征 | 数据仓库 | OLTP |
|---|---|---|
| 工作量 | 专门用于满足即席查询。您可能无法提前知道数据仓库的工作量,因此应该对其进行优化,以便能够很好地执行各种可能的查询。 | 仅支持预定义的操作。您的应用程序可能会专门进行优化或设计,以便仅支持这些操作。 |
| 数据更改 | ETL 流程使用批量数据修改技术定期更新。数据仓库的最终用户不会直接更新数据库。 | 受最终用户例行发出的各个 DML 语句约束。OLTP 数据库始终是最新的,反映了每个业务事务处理的当前状态。 |
| 模式设计 | 使用非规范化方案或部分非规范化方案(例如星型方案)来优化查询性能。 | 使用完全规范化的方案来优化 DML 性能并保证数据一致性。 |
| 典型操作 | 典型的查询会扫描数千或数百万行。例如,用户可以请求上个月所有客户的销售总额。 | 典型操作仅访问少数记录。例如,用户可以检索单个客户的当前订单。 |
| 历史资料 | 存储数月或数年的数据以支持历史分析。 | 仅存储几周或几个月的数据。根据需要保留的历史数据,以满足当前事务处理的要求。 |
另请参见:
-
Oracle AI Database Data Warehousing Guide,了解有关数据库仓库的更详细说明
-
Oracle AI Database VLDB and Partitioning Guide(了解 OLTP 系统的更详细说明)
数据仓库体系结构
数据仓库及其架构因业务需求而异。
-
数据仓库架构(基本)在简单的数据仓库架构中,最终用户可以直接访问从多个源系统传输到数据仓库的数据。
-
数据仓库体系结构(具有暂存区域)某些数据仓库使用暂存区域,该区域是在进入仓库之前预处理数据的位置。暂存区域简化了构建汇总和管理仓库的任务。
-
数据仓库体系结构(具有临时区域和数据集市)您可能需要为组织内的不同组定制仓库体系结构。您可以通过将仓库中的数据传输到数据集市来实现此目标,数据集市是专为特定业务或项目设计的独立数据库。通常,数据集市包含许多汇总表。
数据仓库体系结构(基本)
在简单的数据仓库架构中,最终用户可以直接访问从多个源系统传输到数据仓库的数据。
下图显示了示例体系结构。
图 3:数据仓库的架构

上图显示了传统 OLTP 系统的元数据和原始数据以及汇总数据。摘要是一个聚合视图,通过预先计算昂贵的联接和聚合操作并将结果存储在表中来提高查询性能。例如,汇总表可以包含按区域和产品列出的销售总和。汇总也称为实体化视图。
另请参阅:Oracle AI Database Data Warehousing Guide 以了解基本实体化视图
数据仓库体系结构(具有暂存区域)
某些数据仓库使用临时区域,在进入仓库之前预处理数据。暂存区域简化了构建汇总和管理仓库的任务。
下图描述了暂存区域。
图 4:具有暂存区域的数据仓库的体系结构

另请参阅:Oracle AI Database Data Warehousing Guide 以了解不同的运输机制
数据仓库架构(具有暂存区和数据集市)
您可能需要为组织内的不同组自定义仓库体系结构。您可以通过将仓库中的数据传输到数据集市来实现此目标,数据集市是专为特定业务或项目设计的独立数据库。通常,数据集市包含许多汇总表。图 20-5 将采购、销售和库存信息分成独立的数据集市。财务分析师可以查询数据集市,获取有关采购和销售的历史信息。
图 5:具有暂存区和数据集市的数据仓库的体系结构

另请参阅:Oracle AI Database Data Warehousing Guide 以了解转换机制
提取、转换和加载 (ETL) 概览
从源系统提取数据并将其带入仓库的过程通常称为 ETL:提取、转换和加载。ETL 是指一个广泛的过程,而不是三个明确定义的步骤。
在典型情况下,从一个或多个操作系统中提取数据,然后以物理方式传输到目标系统或中间系统进行处理。根据运输方法,在此过程中可能会发生一些转换。例如,通过网关直接访问远程目标的 SQL 语句可以将两列联接起来作为 SELECT 语句的一部分。
Oracle AI Database 本身不是 ETL 工具。但是,Oracle AI Database 提供了 ETL 工具和定制 ETL 解决方案可使用的丰富功能。Oracle AI Database 提供的 ETL 功能包括:
-
可传输的表空间
可以在不同的计算机体系结构和操作系统之间传输表空间。可传输表空间是两个 Oracle 数据库之间移动大量数据的快捷方式。
-
表函数
table 函数是用户定义的 PL/SQL 函数,用于返回行集合(嵌套表或 varray)。表函数可以生成一组行作为输出,并可以接受一组行作为输入。表函数支持在 PL/SQL、C 或 Java 中实现的转换的流水线化和并行执行,而无需中间暂存表。
-
外部表
通过外部表,可以直接并行联接外部数据,而无需先将其加载到数据库中。因此,外部表通过转换阶段启用加载阶段的流水线。
-
表压缩
为了减少磁盘使用和内存使用,可以采用压缩格式存储表和分区表。使用表压缩通常可以更好地扩展只读操作并加快查询执行。
另请参见:
Business Intelligence
商务智能是对组织信息的分析,有助于制定业务决策。
分析应用和商务智能主要依靠向上和向下钻取层次结构以及比较汇总值。Oracle AI Database 提供了多种技术来支持此类操作。
-
Analytic SQL Oracle AI Database 引入了许多 SQL 操作来执行分析操作。这些操作包括排名、移动平均值、累计总和、报告比率和期间同比比较。
-
分析视图可以扩展数据集的内容并简化商务智能应用的开发。
-
Oracle Advanced Analytics Oracle Advanced Analytics Option 可将 Oracle AI Database 扩展到一个全面的高级分析平台,用于大数据分析。
分析 SQL
Oracle AI Database 引入了许多用于执行分析操作的 SQL 操作。这些操作包括排名、移动平均值、累计总和、报告比率和期间同比比较。
例如,Oracle AI Database 支持以下形式的分析 SQL。
表 5 分析 SQL
| 分析 SQL 的类型 | 说明 | 详细了解 |
|---|---|---|
| 用于聚合的 SQL | 聚集函数(如 COUNT)可基于一组行返回一个结果行。聚合对于数据仓库至关重要。为了提高仓库中的聚合性能,数据库提供了 GROUP BY 子句的扩展,使查询和报告更轻松、更快。 |
Oracle AI Database Data Warehousing Guide ,了解聚合 |
| 用于分析的 SQL | 分析函数(如 MAX)聚合一组行(称为窗口),以将多个行作为结果集返回。Oracle 具有使用一系列分析 SQL 函数的高级 SQL 分析处理功能。例如,这些分析函数使您能够计算排名和百分位数以及移动窗口。 |
Oracle AI Database Data Warehousing Guide ,了解用于分析和报告的 SQL |
| 用于建模的 SQL | 使用 MODEL 子句,可以基于查询结果创建一个多维数组,并将规则应用于此数组以计算新值。例如,可以按国家(地区)对销售视图中的数据进行分区,并对每个国家(地区)执行由多个规则定义的模型计算。一个规则可以计算出 2008 年产品的销售量,即 2006 年和 2007 年的销售总和。 |
Oracle AI Database Data Warehousing Guide ,了解 SQL 建模 |
另请参阅:Oracle AI Database SQL Language Reference 以了解 SQL 函数
分析视图
分析视图可以扩展数据集的内容并简化商务智能应用的开发。
分析视图具有以下特征:
-
数据使用分层和维概念进行组织。
-
联接、聚合和度量计算规则嵌入到分析视图中。
-
可以使用 SQL DDL 对现有表、视图和数据库中的其他对象进行分层。
-
可以使用简单的 SQL 进行查询。
另请参阅:Oracle AI Database Data Warehousing Guide,了解分析视图概述
Oracle Advanced Analytics
Oracle Advanced Analytics Option 可将 Oracle AI Database 扩展为用于大数据分析的综合高级分析平台。
Oracle Advanced Analytics 可在数据库中提供预测分析、数据挖掘、文本挖掘、统计分析、高级数字计算和交互式图形。Oracle Advanced Analytics 包含以下组件:
-
Oracle Data Mining 在商务智能中,数据挖掘是使用复杂的数学算法对数据进行细分并评估未来事件的概率。
-
适用于 R 的 Oracle Machine Learning
R 是一种用于统计计算和图形的开源语言和环境。Oracle Machine Learning for R 为企业和大数据做好准备。
Oracle Data Mining
在商务智能中,数据挖掘使用复杂的数学算法来细分数据并评估未来事件的概率。
数据挖掘的典型应用包括呼叫中心、ATM、电子商务关系管理 (ERM) 和业务规划。借助 Oracle Data Miner,数据分析师可以快速分析数据,瞄准优秀客户,打击欺诈行为,并找到有助于企业更好地竞争的重要关联和模式。
Oracle Data Mining 提供了数据挖掘算法,可作为原生 SQL 函数运行,以实现高性能的数据库内模型构建和模型部署。Oracle Data Mining 可以挖掘表、视图、星型方案、事务数据和非结构化数据。
Oracle Data Mining 支持用于模型评分的 PL/SQL API 和 SQL 函数。因此,Oracle AI Database 提供了一个基础设施,可帮助应用开发人员将数据挖掘与数据库应用无缝集成。
Oracle Data Miner 是 SQL Developer 扩展,它为 Oracle Data Mining 提供了一个 GUI。
另请参阅:Oracle Machine Learning for SQL Concepts
适用于 R 的 Oracle Machine Learning
R 是一种用于统计计算和图形的开源语言和环境。Oracle Machine Learning for R 为企业和大数据做好准备。
Oracle Machine Learning for R 专为涉及大量数据的问题而设计,将 R 与 Oracle AI Database 集成。您可以运行 R 命令和脚本,对存储在 Oracle AI Database 中的数据进行统计和图形分析。您还可以开发、优化和部署 R 脚本,利用数据库的并行性和可扩展性来自动执行数据分析。数据分析师可以在一个步骤中运行 R 包,并为分析应用程序开发 R 脚本,而无需学习 SQL。
另请参阅:《 Oracle Machine Learning for R User’s Guide 》
Oracle Information Integration 概览
随着组织的发展,在多个数据库和应用程序之间共享信息变得越来越重要。
分享信息的基本方法如下:
-
合并
您可以将信息合并到单个数据库中,从而无需进一步集成。借助 Oracle RAC、网格计算、多租户体系结构和 Oracle VPD,您可以将信息合并到单个数据库中。
-
联盟
您可以将信息保留在分布式状态,并提供用于联合此信息的工具,使其看起来位于单个虚拟数据库中。
-
共享
您可以共享信息,从而在多个数据存储和应用程序中维护信息。
本部分重点介绍用于联合和共享信息的 Oracle 解决方案。
联合访问
联合访问的基础是一个分布式环境,它是一个由不同系统组成的网络,可以无缝地相互通信。
环境中的每个系统都称为节点。用户直接连接到的系统称为本地系统。此用户访问的其他系统是远程系统。
通过分布式环境,应用程序可以访问和交换来自本地和远程系统的数据。可以同时访问和修改所有数据。
-
分布式 SQL 分布式 SQL 同步访问和更新在多个数据库之间分布的数据。Oracle 分布式数据库系统可对用户透明,使其显示为单个 Oracle 数据库。
-
数据库链接 数据库链接是两个物理数据库之间的连接,客户机可以使用这两个物理数据库作为一个逻辑数据库来访问它们。
分布式 SQL
分布式 SQL 同步访问和更新分布在多个数据库中的数据。Oracle 分布式数据库系统可对用户透明,使其显示为单个 Oracle 数据库。
分布式 SQL 包括分布式查询和分布式事务处理。Oracle 分布式数据库架构提供查询和事务透明度。例如,标准 DML 语句的工作方式与非分布式数据库环境中的工作方式相同。此外,应用程序使用标准 SQL 语句 COMMIT、SAVEPOINT 和 ROLLBACK 来控制事务处理。
另请参见:
-
Oracle AI Database Administrator’s Guide,了解如何管理分布式事务处理
数据库链接
数据库链接是两个物理数据库之间的连接,客户机可以使用它作为一个逻辑数据库访问它们。
Oracle AI Database 使用数据库链接来实现一个数据库上的用户访问远程数据库内的对象。本地用户可以访问到远程数据库的链接,而无需成为远程数据库上的用户。图 20-6 显示了用户 hr 访问远程数据库上全局名为 hq.example.com 的 employees 表的示例。employees 同义词隐藏远程方案对象的身份和位置。
图 6:数据库链接

另请参阅:Oracle AI Database Administrator’s Guide 以了解数据库链接
信息共享
任何集成的核心都是在企业中的应用程序之间共享数据。
-
Oracle GoldenGate Oracle GoldenGate 是一个基于日志的异步实时数据复制产品。
-
Oracle AI Database Transactional Event Queues and Advanced Queuing (AQ) Oracle AI Database Transactional Event Queues and Advanced Queuing (AQ) 是一个功能强大、功能丰富的消息排队系统,与 Oracle AI Database 集成。
Oracle GoldenGate
Oracle GoldenGate 是一个基于日志的异步实时数据复制产品。
Oracle GoldenGate 可在异构数据库、硬件和操作系统环境中实时移动大量事务数据,且影响极小。它优化了实时信息访问和可用性,因为它:
-
支持复制,包括 Oracle AI Database 和非 Oracle 数据库的异构组合
-
保持关键任务系统的持续可用性,从而最大限度减少计划内维护期间的停机时间
-
在整个企业中实现实时数据集成
-
自动配置分片表中的分片之间的双向复制
典型的环境包括捕获、泵和交付流程。每个流程都可以在大多数常用操作系统和数据库上运行,包括 Oracle 数据库和非 Oracle 数据库。可以复制部分或全部数据。可以为异构环境和不同的数据库方案处理这些进程中的任何数据。
Oracle GoldenGate 支持多主复制、中心辐射部署、数据合并和数据转换。因此,借助 Oracle GoldenGate,您可以确保关键系统全天候运行,并将相关数据分布在整个企业中,从而优化决策。
另请参见:
Oracle AI Database Transactional Event Queues 和 Advanced Queuing (AQ)
Oracle AI Database Transactional Event Queues and Advanced Queuing (AQ) 是一款功能强大、功能丰富的消息排队系统,与 Oracle AI Database 集成。
当组织具有必须相互通信的不同系统时,消息传递环境可以提供一种标准、可靠的方式在这些系统之间传输关键信息。
示例用例是指在总部的 Oracle 数据库中输入订单的业务。输入订单后,业务需要使用 AQ 将订单 ID 和订单日期发送到仓库中的数据库。这些消息会提醒仓库员工接收这些订单,以便可以履行订单并发货。
-
Message Queuing and Dequeuing Oracle AI Database Transactional Event Queues 和 Advanced Queuing 将用户消息存储在称为队列的抽象存储单元中。
-
Oracle AI Database Transactional Event Queues 和 Advanced Queuing Advanced Features Oracle AI Database Transactional Event Queues 和 Advanced Queuing (AQ) 支持消息队列系统的所有标准功能。
消息排队和出队
Oracle AI Database Transactional Event Queues 和 Advanced Queuing 将用户消息存储在称为队列的抽象存储单元中。
入队是生成器将消息放入队列的过程。出队是使用者从队列中检索消息的过程。
支持显式出队,开发人员可以使用 XStream 和 Oracle GoldenGate 来可靠地交换消息。他们还可以利用 Oracle GoldenGate 的更改捕获和传播功能,向应用通知更改。图 20-7 显示了一个示例应用程序,该应用程序通过“高级队列”显式入队和取消消息排队,使它能够使用不同的消息传递系统与合作伙伴共享信息。入队后,可以在将消息出队到合作伙伴的应用程序之前对消息进行转换和传播。
图 7:Oracle Message Queuing

Oracle AI Database Transactional Event Queues 和 Advanced Queuing 高级功能
Oracle AI Database Transactional Event Queues 和 Advanced Queuing (AQ) 支持消息队列系统的所有标准功能。
功能包括:
-
异步应用程序集成
Transactional Event Queues 和 Advanced Queuing 提供了多种将消息入队的方法。捕获进程或同步捕获可以隐式捕获消息,或者应用程序和用户可以显式捕获消息。
-
可扩展的集成架构
许多应用都与以 Oracle AI Database 为中心的分布式中心辐射模型相集成。Oracle 数据库上的分布式应用程序与同一集线器中的队列进行通信。多个应用程序共享同一队列,无需添加队列来支持其他应用程序。
-
异构应用集成
Transactional Event Queues 和 Advanced Queuing 可为应用提供 Oracle 类型系统的全部功能。它支持标量数据类型、具有继承的 Oracle AI Database 对象类型、具有 XML 数据附加运算符的
XMLType以及ANYDATA。 -
旧应用集成
Oracle Messaging Gateway 将 Oracle AI Database 应用程序与其他消息排队系统(例如 Websphere MQ 和 Tibco)集成。
-
基于标准的 API 支持
Transactional Event Queues 和 Advanced Queuing 支持行业标准 API:SQL、JMS 和 SOAP。使用 SQL 所做的更改将自动捕获为消息。
另请参阅:《 Oracle AI Database Transactional Event Queues and Advanced Queuing User’s Guide 》
脚注图例
脚注 1:
Building the Data Warehouse ,John Wiley 和 Sons,1996 年。