面向数据库管理员和开发人员的主题

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

本章概述了对于数据库管理员和开发人员都很重要的常见数据库主题,并提供了指向其他手册(而非详尽的数据库功能说明)的指针。

Database Security 概述

通常,数据库安全性涉及用户验证、加密、访问控制和监视。

本部分涵盖以下主题:

用户帐户

每个 Oracle 数据库有一个有效数据库用户列表。

数据库包含多个默认帐户,包括默认管理帐户 SYSTEM。您可以根据需要创建用户帐户。您还可以将应用程序用户配置为访问 Oracle 数据库。

要访问数据库,用户必须提供有效的用户名和验证身份证明。凭证可以是密码、Kerberos 票证或公钥基础结构 (Public Key Infrastructure,PKI) 证书。您可以根据失败的登录尝试将数据库安全性配置为锁定帐户。

通常,数据库访问控制涉及限制数据访问和数据库活动。例如,可以限制用户查询指定的表或执行指定的数据库语句。

另请参见:

权限

用户权限是运行特定 SQL 语句的权限。

权限分为以下类别:

权限由其他用户自行决定授予给用户。管理员应向用户授予权限,以便他们可以完成其作业所需的任务。好的安全惯例是仅向需要该权限才能完成必要工作的用户授予权限。

另请参见:

角色

角色是用户可以向其他用户或角色授予的相关权限的命名组。角色可帮助管理数据库应用程序或用户组的权限。图 20-1 描述了角色的常见用法。角色 PAY_CLERK、MANAGER 和 REC_CLERK 分配给不同的用户。将应用程序角色 ACCTS_PAY(包括执行 ACCTS_PAY 应用程序的权限)分配给具有 PAY_CLERK 和 MANAGER 角色的用户。将应用程序角色 ACCTS_REC(包括执行 ACCTS_REC 应用程序的权限)分配给具有 REC_CLERK 和 MANAGER 角色的用户。

图 1:角色的常见用途

插图 cncpt082.gif 的说明

另请参见:

权限分析

特权分析机制根据指定的条件捕获数据库的特权使用情况。

通过这种方式,可以捕获运行应用程序模块或执行特定 SQL 语句所需的权限。例如,可以查找用户在特定数据库会话期间行使的权限。

在生产数据库中,权限与角色、角色和角色以及角色与用户之间的关系可能很复杂。使用权限分析,可以确定在复杂系统中不必要地授予的权限。根据对捕获结果的分析,可以删除不必要的授权或重新配置权限授权,以使数据库更加安全。

另请参阅:Oracle AI Database Security Guide 以了解权限分析。

用户概要信息

在系统资源的上下文中,用户配置文件是一组指定的资源限制和口令参数,用于限制用户的数据库使用情况和数据库实例资源。

配置文件可以限制用户的并发会话数、每个会话可用的 CPU 处理时间以及可用的逻辑 I/O 量。例如,clerk 配置文件可以将用户限制为文书任务所需的系统资源。注:最好使用数据库资源管理器来限制资源,并使用配置文件来管理密码。

配置文件为共享一组属性的用户提供单点参考。您可以将概要信息分配给一组用户,将默认概要信息分配给所有其他用户。每个用户在任何时间点最多分配一个配置文件。

另请参见:

数据库验证

在 Oracle AI Database 中,数据库验证是用户向数据库提供身份证明的过程,用于验证身份证明并允许访问数据库。

验证身份可为进一步的交互建立信任关系。验证还可以通过将访问和操作链接到特定身份来实现责任。

Oracle AI Database 提供了不同的验证方法,包括:

非管理数据库用户帐户不能执行数据库操作,例如关闭或启动数据库。这些操作需要 SYSDBA、SYSOPER、SYSBACKUP 或 SYSDG 特权。

另请参见:

加密

Oracle AI Database 加密是使用密钥和加密算法将数据转换为不可读格式的过程。

加密通常用于满足法规合规性要求,例如与支付卡行业数据安全标准 (Payment Card Industry Data Security Standard,PCI-DSS) 关联的要求或违规通知法律。例如,必须加密信用卡号码、社会保险编号或患者健康信息。

网络加密

当数据传输到客户机与服务器之间的网络时对其进行加密称为网络加密。

入侵者可能使用网络包检测器捕获网络上传输的信息,然后将数据假脱机到一个文件供恶意使用。对网络中的数据进行加密可预防此类活动。

透明数据加密

使用 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 的一部分,可用于屏蔽低权限用户或应用程序查询的(编写)数据。用户查询数据时,将实时进行编写。

数据编写支持以下编写函数类型:

数据校订不是一个全面的安全解决方案。例如,它不会阻止直接连接的特权用户对编写的数据执行推断攻击。此类攻击识别编写的列,通过消除过程,通过重复猜测存储值的 SQL 查询来尝试返回到实际数据。为了检测和防止特权用户的推断和其他攻击,Oracle 建议将 Oracle Data Redaction 与相关数据库安全产品(例如 Oracle Audit Vault and Database Firewall 和 Oracle Database Vault)配对。

数据编写工作如下:

以下示例添加了完整的数据编写策略来编写 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 提供了多种技术来控制数据访问。本节总结了其中一些技术。

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 和作业调度器等组件的授权。

另请参见:

虚拟专用数据库 (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 提供多种工具和技术来监视用户活动。审计是监视数据访问的主要机制。

数据库审计

数据库审计是指对所选用户数据库操作进行监视和记录。

可以配置 unified audit policy 来审计以下内容:

统一审计线索可以捕获 Recovery Manager 事件,您可以在 UNIFIED_AUDIT_TRAIL 数据字典视图中查询这些事件。您没有为 Recovery Manager 事件创建统一审计策略。

您还可以使用细粒度审计来审计特定的表列,并在创建策略期间关联事件处理程序。对于统一和细粒度审计,您可以创建策略来测试捕获特定数据库操作的条件或活动发生的时间。例如,可以审计在晚上 9:00 之后访问的表。

审计的原因包括:

从 Oracle Database 12c 开始,使用统一审计时,默认情况下会启用数据库审计。可以通过启用审计策略来控制数据库审计。但是,您必须先将数据库迁移到统一审计,然后才能使用统一审计。

另请参见:

审计策略

可以使用单个 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 提供了以下系统提供的审计管理员角色:

另请参阅:Oracle AI Database Security Guide 以了解有关审计的更多信息

统一审计线索

审计记录对于检测和识别未经授权的数据访问至关重要。

Oracle AI Database 可以配置指定事件的审计。如果事件发生在用户会话期间,则数据库将生成审计记录。

审计迹是用于存储审计记录的位置。统一审计线索是 Oracle Database 12c 中的新特性,它为所有审计类型的审计记录提供统一存储。您必须手动从以前的发行版的传统审计线索迁移到统一审计。

审计包括标准和细粒度审计,还包括对以下事件的审计,包括管理用户执行这些事件:

统一审计线索是只读的,存储在 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),可以使用其他与审计线索相关的统一视图。

另请参见:

Enterprise Manager 审计支持

使用 Oracle 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 提供高可用性解决方案,可防止、容忍和减少所有类型的计划外故障的停机时间。

计划外停机时间可以按其原因进行分类。

站点故障

站点故障发生在事件导致应用程序的所有或大部分停止处理或减慢到不可用的服务级别时。

站点故障可能会影响数据中心的所有处理,或者影响数据中心支持的部分应用程序。例如,扩展站点范围的电源或网络故障、导致数据中心无法运行的自然灾害,或者对操作或站点的恶意攻击。

防止站点故障的最简单形式是使用 RMAN 创建数据库备份并将其存储在异地。可以将数据库还原到其他主机。但是,此技术可能非常耗时,并且备份可能不是最新的。通过在 Data Guard 环境中维护一个或多个备用数据库,您可以在生产站点发生故障时提供连续数据库服务。

另请参见:

计算机故障

当运行数据库的系统因其已关闭或不再可访问而变得不可用时,会发生计算机故障中断。

计算机故障的示例包括硬件和操作系统故障。下表中的 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 还支持以下形式的保护,以防数据损坏:

另请参见:

人为错误

提交导致数据库中的数据在逻辑上损坏或无法使用的无意或恶意操作时,会发生人为错误中断。人为错误中断的服务级别影响可能因受影响数据的数量和严重性而异。

许多研究将人为错误列为停机的最大原因。Oracle AI Database 提供了强大的工具,可帮助管理员快速诊断这些错误并从中恢复。它还包括使最终用户能够从问题中恢复而无需管理员参与的功能。

Oracle AI Database 建议使用以下形式来防止人为错误:

另请参见:

高可用性和计划停机时间

计划停机可能会对运营造成同样的破坏,特别是在支持多个时区用户的全球企业中。在这种情况下,设计一个系统以最大限度地减少计划的中断(如常规操作、定期维护和新部署)非常重要。

计划停机时间可以按其原因进行分类。

系统和数据库更改

在执行常规和定期维护操作以及新部署(包括对数据库中的组织数据结构外部发生的操作环境的计划更改)时,会发生计划内系统更改。

示例包括添加或删除 CPU 和群集节点(节点是数据库实例所在的计算机)、升级系统硬件或软件以及迁移系统平台。

Oracle AI Database 提供动态资源预配,作为计划内系统和数据库更改的解决方案:

另请参见:

数据更改

当 Oracle AI Database 对象的逻辑结构或物理组织发生更改时,会发生计划的数据更改。这些变化的主要目标是提高性能或可管理性。示例包括表重新定义、添加表分区以及创建或重建索引。

Oracle AI Database 通过联机重组和重新定义,尽可能缩短数据更改停机时间。使用此体系结构可以在数据库打开时执行以下任务:

另请参见:

应用程序变更

计划内应用程序更改可能包括对数据、方案和程序的更改。这些更改的主要目标是提高性能、可管理性和功能。例如应用程序升级。

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:网格计算环境

插图 haovw004.gif 的说明

数据库服务器网格

Oracle Real Application Clusters (Oracle RAC) 支持多个实例共享对 Oracle 数据库的访问。实例通过互连进行链接。

在 Oracle RAC 环境中,Oracle AI Database 在集群中的两个或更多系统上运行,同时并发访问单个共享数据库。Oracle RAC 通过提供跨多个低成本服务器的单个数据库来启用数据库服务器网格,这些服务器仍显示为单个统一的数据库系统。Oracle Clusterware 是使服务器可以像一个服务器一样一起运行的软件。每个服务器看起来像任何独立的服务器。但是,每台服务器都具有相互通信的其他进程,因此单独的服务器可以像一个服务器一样协同工作。Oracle Clusterware 提供了运行集群所需的所有功能,包括节点成员资格和消息传送服务。

另请参见:

可扩展性

在数据库服务器网格中,Oracle RAC 允许您随着对容量需求的增加向集群添加节点。

通过在 Oracle RAC 中实施的高速缓存融合技术,您可以在不更改应用的情况下扩展容量。因此,您可以逐步扩展系统以节省成本,并且无需用较大的单节点系统替换较小的单节点系统。

您可以增量地向集群添加节点,而不是将现有系统替换为更大的节点。Grid Plug and Play 简化了集群中节点的添加和删除,从而更轻松地在动态预配的环境中部署集群。Grid Plug and Play 还支持以与位置无关的方式管理数据库和服务。SCAN 使客户机能够连接到数据库服务,而不考虑它在网格中的位置。

另请参见:

容错

在高可用性体系结构中,容错是针对体系结构中组件故障提供的保护。

Oracle RAC 体系结构的一个关键优势是由多个节点提供的固有容错能力。由于物理节点独立运行,因此一个或多个节点的故障不会影响群集中的其他节点。

可能会对网格上的任何节点进行故障转移。在极端情况下,即使除一个节点之外的所有节点都已关闭,Oracle RAC 系统也会提供数据库访问。此体系结构允许一组节点透明地联机或脱机进行维护,而群集的其余部分则继续提供数据库访问。

Oracle RAC 提供与 Oracle 客户端和连接池的内置集成。通过此功能,将立即向应用程序通知通过池终止连接的任何故障。应用程序可以避免等待 TCP 超时,并可以立即执行相应的恢复操作。Oracle RAC 将监听程序与 Oracle 客户端和连接池集成,以创建最佳应用吞吐量。Oracle RAC 可以根据事务处理时的负载平衡集群工作负载。

另请参见:

服务

Oracle RAC 支持服务,这些服务可以对数据库工作负载进行分组并将工作负载路由到分配给提供服务的最佳实例。

服务代表着应用程序的工作量,具有常见属性、性能阈值和优先级。您可以定义业务策略并将其应用于这些服务,以执行任务,例如为峰值处理时间分配节点或自动处理服务器故障。使用服务可确保系统资源在实现业务目标所需的时间和地点的应用。

服务与数据库资源管理器集成,使您能够限制服务在实例中可以使用的资源。此外,Oracle Scheduler 作业可以使用服务运行,而不可以使用特定实例运行。

另请参见:

Oracle Flex 集群

从 Oracle Database 12c 开始,您可以在大型集群中配置 Oracle Clusterware 和 Oracle Real Application Clusters。

这些称为 Oracle Flex Clusters 的大型集群包含两种类型的节点,这些节点排列在中心辐射型体系结构中:Hub 节点和叶节点。Hub 节点紧密连接,可以直接访问共享存储,并充当一个或多个叶节点的锚点。叶节点与 Hub 节点松散连接,可能无法直接访问共享存储。

另请参见:

数据库存储网格

DBA 或存储管理员可以使用 Oracle ASM 接口指定数据库存储网格中 Oracle ASM 应在所有服务器和存储平台上管理的磁盘。Oracle ASM 对磁盘空间进行分区,并在提供给 Oracle ASM 的磁盘之间平均分配数据。此外,在从数据库存储网格中添加或删除存储阵列中的磁盘时,Oracle ASM 会自动重新分配数据。

另请参见:

数据仓库和业务智能概览

数据仓库是一个关系数据库,设计用于查询和分析,而不是事务处理。

例如,数据仓库可以跟踪历史股票价格或所得税记录。仓库通常包含从历史事务处理数据派生的数据,但可以包含来自其他来源的数据。

数据仓库环境除了包含关系数据库外,还包括多个工具。典型环境包括 ETL 解决方案、 OLAP 引擎、客户机分析工具以及收集数据并将其交付给用户的其他应用程序。

数据仓库和 OLTP

引入数据仓库的一种常见方法是参考 William Inmon 所描述的数据仓库的特性。

特点如下:脚 1

数据仓库和 OLTP 数据库有不同的要求。例如,要发现业务趋势,数据仓库必须维护大量数据。相比之下,良好的性能要求定期将历史数据从 OLTP 系统移动到归档。表 20-4 列出了数据仓库与 OLTP 之间的差异。

表 4 数据仓库和 OLTP 系统

特征 数据仓库 OLTP
工作量 专门用于满足即席查询。您可能无法提前知道数据仓库的工作量,因此应该对其进行优化,以便能够很好地执行各种可能的查询。 仅支持预定义的操作。您的应用程序可能会专门进行优化或设计,以便仅支持这些操作。
数据更改 ETL 流程使用批量数据修改技术定期更新。数据仓库的最终用户不会直接更新数据库。 受最终用户例行发出的各个 DML 语句约束。OLTP 数据库始终是最新的,反映了每个业务事务处理的当前状态。
模式设计 使用非规范化方案或部分非规范化方案(例如星型方案)来优化查询性能。 使用完全规范化的方案来优化 DML 性能并保证数据一致性。
典型操作 典型的查询会扫描数千或数百万行。例如,用户可以请求上个月所有客户的销售总额。 典型操作仅访问少数记录。例如,用户可以检索单个客户的当前订单。
历史资料 存储数月或数年的数据以支持历史分析。 仅存储几周或几个月的数据。根据需要保留的历史数据,以满足当前事务处理的要求。

另请参见:

数据仓库体系结构

数据仓库及其架构因业务需求而异。

数据仓库体系结构(基本)

在简单的数据仓库架构中,最终用户可以直接访问从多个源系统传输到数据仓库的数据。

下图显示了示例体系结构。

图 3:数据仓库的架构

插图 cncpt170.gif 的说明

上图显示了传统 OLTP 系统的元数据和原始数据以及汇总数据。摘要是一个聚合视图,通过预先计算昂贵的联接和聚合操作并将结果存储在表中来提高查询性能。例如,汇总表可以包含按区域和产品列出的销售总和。汇总也称为实体化视图。

另请参阅:Oracle AI Database Data Warehousing Guide 以了解基本实体化视图

数据仓库体系结构(具有暂存区域)

某些数据仓库使用临时区域,在进入仓库之前预处理数据。暂存区域简化了构建汇总和管理仓库的任务。

下图描述了暂存区域。

图 4:具有暂存区域的数据仓库的体系结构

插图 cncpt171.gif 的说明

另请参阅:Oracle AI Database Data Warehousing Guide 以了解不同的运输机制

数据仓库架构(具有暂存区和数据集市)

您可能需要为组织内的不同组自定义仓库体系结构。您可以通过将仓库中的数据传输到数据集市来实现此目标,数据集市是专为特定业务或项目设计的独立数据库。通常,数据集市包含许多汇总表。图 20-5 将采购、销售和库存信息分成独立的数据集市。财务分析师可以查询数据集市,获取有关采购和销售的历史信息。

图 5:具有暂存区和数据集市的数据仓库的体系结构

插图 cncpt172.gif 的说明

另请参阅:Oracle AI Database Data Warehousing Guide 以了解转换机制

提取、转换和加载 (ETL) 概览

从源系统提取数据并将其带入仓库的过程通常称为 ETL:提取、转换和加载。ETL 是指一个广泛的过程,而不是三个明确定义的步骤。

在典型情况下,从一个或多个操作系统中提取数据,然后以物理方式传输到目标系统或中间系统进行处理。根据运输方法,在此过程中可能会发生一些转换。例如,通过网关直接访问远程目标的 SQL 语句可以将两列联接起来作为 SELECT 语句的一部分。

Oracle AI Database 本身不是 ETL 工具。但是,Oracle AI Database 提供了 ETL 工具和定制 ETL 解决方案可使用的丰富功能。Oracle AI Database 提供的 ETL 功能包括:

另请参见:

Business Intelligence

商务智能是对组织信息的分析,有助于制定业务决策。

分析应用和商务智能主要依靠向上和向下钻取层次结构以及比较汇总值。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 函数

分析视图

分析视图可以扩展数据集的内容并简化商务智能应用的开发。

分析视图具有以下特征:

另请参阅: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

在商务智能中,数据挖掘使用复杂的数学算法来细分数据并评估未来事件的概率。

数据挖掘的典型应用包括呼叫中心、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 解决方案。

联合访问

联合访问的基础是一个分布式环境,它是一个由不同系统组成的网络,可以无缝地相互通信。

环境中的每个系统都称为节点。用户直接连接到的系统称为本地系统。此用户访问的其他系统是远程系统。

通过分布式环境,应用程序可以访问和交换来自本地和远程系统的数据。可以同时访问和修改所有数据。

分布式 SQL

分布式 SQL 同步访问和更新分布在多个数据库中的数据。Oracle 分布式数据库系统可对用户透明,使其显示为单个 Oracle 数据库。

分布式 SQL 包括分布式查询和分布式事务处理。Oracle 分布式数据库架构提供查询和事务透明度。例如,标准 DML 语句的工作方式与非分布式数据库环境中的工作方式相同。此外,应用程序使用标准 SQL 语句 COMMIT、SAVEPOINT 和 ROLLBACK 来控制事务处理。

另请参见:

数据库链接

数据库链接是两个物理数据库之间的连接,客户机可以使用它作为一个逻辑数据库访问它们。

Oracle AI Database 使用数据库链接来实现一个数据库上的用户访问远程数据库内的对象。本地用户可以访问到远程数据库的链接,而无需成为远程数据库上的用户。图 20-6 显示了用户 hr 访问远程数据库上全局名为 hq.example.com 的 employees 表的示例。employees 同义词隐藏远程方案对象的身份和位置。

图 6:数据库链接

插图 cncpt243.gif 的说明

另请参阅:Oracle AI Database Administrator’s Guide 以了解数据库链接

信息共享

任何集成的核心都是在企业中的应用程序之间共享数据。

Oracle GoldenGate

Oracle GoldenGate 是一个基于日志的异步实时数据复制产品。

Oracle GoldenGate 可在异构数据库、硬件和操作系统环境中实时移动大量事务数据,且影响极小。它优化了实时信息访问和可用性,因为它:

典型的环境包括捕获、泵和交付流程。每个流程都可以在大多数常用操作系统和数据库上运行,包括 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 和订单日期发送到仓库中的数据库。这些消息会提醒仓库员工接收这些订单,以便可以履行订单并发货。

消息排队和出队

Oracle AI Database Transactional Event Queues 和 Advanced Queuing 将用户消息存储在称为队列的抽象存储单元中。

入队是生成器将消息放入队列的过程。出队是使用者从队列中检索消息的过程。

支持显式出队,开发人员可以使用 XStream 和 Oracle GoldenGate 来可靠地交换消息。他们还可以利用 Oracle GoldenGate 的更改捕获和传播功能,向应用通知更改。图 20-7 显示了一个示例应用程序,该应用程序通过“高级队列”显式入队和取消消息排队,使它能够使用不同的消息传递系统与合作伙伴共享信息。入队后,可以在将消息出队到合作伙伴的应用程序之前对消息进行转换和传播。

图 7:Oracle Message Queuing

插图 cncpt310.gif 的说明

Oracle AI Database Transactional Event Queues 和 Advanced Queuing 高级功能

Oracle AI Database Transactional Event Queues 和 Advanced Queuing (AQ) 支持消息队列系统的所有标准功能。

功能包括:

另请参阅:《 Oracle AI Database Transactional Event Queues and Advanced Queuing User’s Guide 》


脚注图例

脚注 1:

Building the Data Warehouse ,John Wiley 和 Sons,1996 年。