乐于分享
好东西不私藏

Oracle官方文档翻译《Database Concepts 26ai》第20章-管理员与开发者主题

Oracle官方文档翻译《Database Concepts 26ai》第20章-管理员与开发者主题

20 Topics for Database Administrators and Developers(20 数据库管理员与开发者主题)

本章总结了那些对数据库管理员和开发者都至关重要的常见数据库主题,并提供了指向其他手册的指引,而非数据库特性的详尽说明。

  • • Overview of Database Security(数据库安全概述)通常,数据库安全涉及用户认证、加密、访问控制和监控。
  • • Overview of High Availability(高可用性概述)可用性是指应用程序、服务或功能按需可用的程度。
  • • Overview of Grid Computing(网格计算概述)被称为网格计算的计算架构能有效地将大量服务器和存储池化为灵活、按需的资源,以满足所有企业计算需求。
  • • Overview of Data Warehousing and Business Intelligence(数据仓库与商业智能概述)数据仓库是为查询和分析而设计的关系型数据库,而非用于事务处理。
  • • Overview of Oracle Information Integration(Oracle 信息集成概述)随着组织的发展,在多个数据库和应用程序之间共享信息变得越来越重要。

另请参见Concepts for Database Administrators(数据库管理员概念)了解特定于 DBA 的主题,以及 Concepts for Database Developers(数据库开发者概念)了解特定于数据库开发者的主题。

Overview of Database Security(数据库安全概述)

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

本节包含以下主题:

  • • User Accounts(用户账户)
  • • Database Authentication(数据库认证)
  • • Encryption(加密)
  • • Oracle Data Redaction(Oracle 数据编校)
  • • Access Control(访问控制)
  • • Data Access Monitoring(数据访问监控)

User Accounts(用户账户)

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

数据库包含几个默认账户,包括默认的管理账户SYSTEM。您可以按需创建用户账户。您还可以配置应用程序用户来访问 Oracle 数据库。

要访问数据库,用户必须提供有效的用户名和认证凭据。凭据可以是密码、Kerberos 票据或公钥基础设施(PKI)证书。您可以将数据库安全配置为基于失败的登录尝试来锁定账户。

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

  • • Privileges(权限)用户权限是运行特定 SQL 语句的权利。
  • • Roles(角色)角色是相关权限的命名组,用户可以将其授予其他用户或角色。角色有助于管理数据库应用程序或用户组的权限。
  • • Privilege Analysis(权限分析)权限分析机制根据指定条件捕获数据库的权限使用情况。
  • • User Profiles(用户配置文件)在系统资源的上下文中,用户配置文件是一组命名的资源限制和密码参数,用于限制用户的数据库使用和数据库实例资源。

另请参见

  • • "SYS and SYSTEM Accounts"(SYS 和 SYSTEM 账户)
  • • Oracle AI Database Administrator’s GuideOracle AI 数据库管理员指南)了解管理用户账户
  • • Oracle AI Database Real Application Security Administrator's and Developer's GuideOracle AI 数据库 Real Application Security 管理员和开发者指南)了解如何配置应用程序用户

Privileges(权限)

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

权限分为以下几类:

  • • 系统权限:这是执行数据库中特定操作,或对特定类型的所有对象执行操作的权利。例如,CREATE USERCREATE SESSION是系统权限。
  • • 模式权限:这是在特定模式内的所有对象上使用系统权限的权利。此权限适用于该模式中所有当前和未来的对象。
  • • 对象权限:这是对某个对象执行特定操作的权利,例如,查询employees表。权限类型由数据库定义。

权限由其他用户酌情授予用户。管理员应授予用户权限,以便他们能够完成工作所需的任务。良好的安全实践包括仅将权限授予需要该权限来完成必要工作的用户。

另请参见Oracle AI Database ReferenceOracle AI 数据库参考)了解SESSION_PRIVS视图

Roles(角色)

角色是相关权限的命名组,用户可以将其授予其他用户或角色。角色有助于管理数据库应用程序或用户组的权限。

图 20-1 描述了角色的常见用途。角色PAY_CLERKMANAGERREC_CLERK被分配给不同的用户。包含执行ACCTS_PAY应用程序权限的应用程序角色ACCTS_PAY,被分配给具有PAY_CLERKMANAGER角色的用户。包含执行ACCTS_REC应用程序权限的应用程序角色ACCTS_REC,被分配给具有REC_CLERKMANAGER角色的用户。

Figure 20-1 Common Uses for Roles(图20-1 角色的常见用途)

另请参见

  • • Oracle AI Database Security GuideOracle AI 数据库安全指南)了解如何使用角色进行安全保护
  • • Oracle AI Database Administrator’s GuideOracle AI 数据库管理员指南)了解如何管理角色

Privilege Analysis(权限分析)

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

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

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

另请参见Oracle AI Database Security GuideOracle AI 数据库安全指南)了解权限分析。

User Profiles(用户配置文件)

在系统资源的上下文中,用户配置文件是一组命名的资源限制和密码参数,用于限制用户的数据库使用和数据库实例资源。

配置文件可以限制用户的并发会话数、每个会话可用的 CPU 处理时间以及可用的逻辑 I/O 量。例如,clerk配置文件可以将用户限制为执行文书任务所需的系统资源。

注意:最好使用 Database Resource Manager 来限制资源,并使用配置文件来管理密码。

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

另请参见

  • • "Buffer I/O"(缓冲区 I/O)
  • • Oracle AI Database Security GuideOracle AI 数据库安全指南)了解如何使用配置文件管理资源
  • • Oracle AI Database SQL Language ReferenceOracle AI 数据库 SQL 语言参考)了解CREATE PROFILE语法和语义

Database Authentication(数据库认证)

在 Oracle AI 数据库中,数据库认证是用户向数据库提交凭据,数据库验证凭据并允许访问数据库的过程。

验证身份会为后续交互建立信任关系。认证还通过使访问和操作能够关联到特定身份来实现问责制。

Oracle AI 数据库提供了不同的认证方法,包括以下几种:

  • • 由数据库进行认证Oracle 数据库可以使用密码、Kerberos 票据或 PKI 证书来认证用户。Oracle 还支持符合 RADIUS 标准的设备进行其他形式的认证,包括生物特征识别。在 Oracle 数据库中创建用户时,必须指定认证类型。
  • • 由操作系统进行认证某些操作系统允许 Oracle AI 数据库使用它们维护的信息来认证用户。在通过操作系统认证后,用户无需指定用户名或密码即可连接到数据库。

非管理数据库用户账户不得执行数据库操作,例如关闭或启动数据库。这些操作需要SYSDBASYSOPERSYSBACKUPSYSDG权限。

另请参见

  • • "Connection with Administrator Privileges"(使用管理员权限进行连接)
  • • Oracle AI Database Security GuideOracle AI 数据库安全指南)了解认证方法
  • • Oracle AI Database Administrator’s GuideOracle AI 数据库管理员指南)了解管理认证

Encryption(加密)

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

加密通常用于满足法规遵从性要求,例如与支付卡行业数据安全标准(PCI-DSS)或违规通知法律相关的要求。例如,信用卡号、社会安全号码或患者健康信息必须被加密。

  • • Network Encryption(网络加密)在数据通过网络在客户端和服务器之间传输时对其进行加密,称为网络加密。
  • • Transparent Data Encryption(透明数据加密)Oracle Advanced Security Transparent Data Encryption 使您能够加密单个表列或整个表空间。

Network Encryption(网络加密)

在数据通过网络在客户端和服务器之间传输时对其进行加密,称为网络加密。

入侵者可以使用网络数据包嗅探器捕获在网络上传输的信息,然后将其存入文件以用于恶意目的。对网络上的数据进行加密可以防止此类活动。

Transparent Data Encryption(透明数据加密)

Oracle Advanced Security Transparent Data Encryption 使您能够加密单个表列或整个表空间。

当用户向加密列中插入数据时,数据库会自动加密数据。当用户选择该列时,数据会被解密。这种加密形式是透明的、提供高性能且易于实现。

Transparent Data Encryption 包括行业标准的加密算法,如高级加密标准(AES)以及内置的密钥管理。

另请参见Oracle AI Database Transparent Data Encryption GuideOracle AI 数据库透明数据加密指南

Oracle Data Redaction(Oracle 数据编校)

Oracle Data Redaction 是 Oracle Advanced Security 的一部分,使您能够对低权限用户或应用程序查询的数据进行掩码(编校)。当用户查询数据时,编校会实时发生。

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

  • • Full data redaction(完全数据编校)在这种情况下,数据库会对表或视图中指定列的全部内容进行编校。例如,用于姓氏的VARCHAR2列显示为一个空格。
  • • Partial data redaction(部分数据编校)在这种情况下,数据库会对显示输出的部分内容进行编校。例如,应用程序可以将以 1234 结尾的信用卡号显示为 xxxx-xxxx-xxxx-1234。您可以对完全和部分编校使用正则表达式。正则表达式可以基于搜索模式对数据进行编校。例如,您可以使用正则表达式对特定的电话号码或电子邮件地址进行编校。
  • • Random data redaction(随机数据编校)在这种情况下,数据库根据列的数据类型,将数据显示为随机生成的值。例如,数字 1234567 可能显示为 83933895

数据编校并非全面的安全解决方案。例如,它不能阻止具有直接连接权限的用户对已编校数据执行推理攻击。此类攻击通过识别已编校列,并通过排除法,重复执行猜测存储值的 SQL 查询来尝试反推实际数据。为检测和防止来自特权用户的推理攻击和其他攻击,Oracle 建议将 Oracle Data Redaction 与相关的数据库安全产品(如 Oracle Audit Vault and Database Firewall 和 Oracle Database Vault)配合使用。

数据编校的工作方式如下:

  • • 使用DBMS_REDACT包为指定的表创建编校策略。
  • • 在策略中,指定一个预定义的编校函数。
  • • 数据库显示列的实际值还是已编校值取决于该策略。如果数据被编校,那么编校会发生在顶层的 select 列表中,即在向用户显示之前即刻发生。

以下示例添加了一个完全数据编校策略,以对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;/

在前面的示例中,计算结果为真的表达式设置会将编校应用于未被授予EXEMPT REDACTION POLICY权限的用户。

另请参见

  • • Oracle AI Database Data Redaction GuideOracle AI 数据库数据编校指南)了解数据编校
  • • Oracle AI Database PL/SQL Packages and Types ReferenceOracle AI 数据库 PL/SQL 包和类型参考)了解DBMS_REDACT

Access Control(访问控制)

Oracle AI 数据库提供了许多技术来控制对数据的访问。本节总结了其中的一些技术。

  • • Oracle Database VaultOracle Database Vault 限制特权用户对应用程序数据的访问。
  • • Virtual Private Database (VPD)(虚拟专用数据库(VPD))Oracle Virtual Private Database (VPD) 使您能够在行和列级别实施安全性。
  • • Oracle Label Security (OLS)(Oracle 标签安全(OLS))Oracle Label Security (OLS) 使您能够分配数据分类并使用安全标签控制访问。您可以为数据或用户分配标签。

Oracle Database Vault

Oracle Database Vault 限制特权用户对应用程序数据的访问。

从 Oracle Database 12c 开始,Oracle Database Vault 扩展了标准数据库审计数据结构。此外,如果您迁移到统一审计,数据库会将审计记录写入 Oracle Secure Files 中的统一审计跟踪,从而集中管理 Oracle AI 数据库的审计记录。

您可以使用 Oracle Database Vault 来控制何时、何地以及如何访问数据库、数据和应用程序。因此,您可以解决常见的安全问题,例如防范内部威胁、满足法规要求以及强制实施职责分离。

为了使 Oracle Database Vault 管理员承担责任,数据库会强制审计对 Oracle Database Vault 元数据所做的配置更改。这些更改包括任何与 Oracle Database Vault 相关的强制措施的创建、修改和删除,受保护角色的授予和撤销,以及对诸如 Oracle Data Pump 和 Job Scheduler 等组件的授权。

另请参见

  • • Oracle AI Database Database Vault Administrator’s GuideOracle AI 数据库 Database Vault 管理员指南
  • • Oracle AI Database Security GuideOracle AI 数据库安全指南)了解 Oracle Database Vault Audit 与 Oracle Database Native Audit 的集成

Virtual Private Database (VPD)(虚拟专用数据库(VPD))

Oracle Virtual Private Database (VPD) 使您能够在行和列级别实施安全性。

安全策略确立了保护数据库免受意外或恶意数据破坏或数据库基础设施损坏的方法。

当诸如权限和角色等安全保护措施不够细粒度时,VPD 非常有用。例如,您可以允许所有用户访问 employees 表,但创建安全策略来限制用户只能访问与其同部门的员工。

本质上,数据库会向针对已应用 Oracle VPD 安全策略的表、视图或同义词发出的 SQL 语句,动态添加一个WHERE子句。WHERE子句仅允许凭据通过安全策略验证的用户访问受保护的数据。

另请参见Oracle AI Database Security GuideOracle AI 数据库安全指南

Oracle Label Security (OLS)(Oracle 标签安全(OLS))

Oracle Label Security (OLS) 使您能够分配数据分类并使用安全标签来控制访问。您可以为数据或用户分配标签。

当分配给数据时,标签可以作为隐藏列附加到表中,从而对 SQL 透明。例如,您可以将包含高度敏感数据的行标记为HIGHLY SENSITIVE,并将不太敏感的行标记为SENSITIVE。当用户尝试访问数据时,OLS 会将用户标签与数据标签进行比较,并决定是否授予访问权限。与 VPD 不同,OLS 提供了开箱即用的安全策略以及用于定义和存储标签的元数据存储库。

如果启用了统一审计,数据库将提供一个基于策略的框架来配置和管理审计选项。您可以为不同类型的操作(包括 OLS 操作)对审计选项进行分组,并将其保存为审计策略。然后,您可以启用或禁用该策略来强制执行底层的审计选项。

每当创建 OLS 策略时,数据库都会向数据库审计跟踪表中添加一个用于该策略的标签列。OLS 审计可以将审计记录(包括 OLS 管理员操作的记录)写入统一审计跟踪。

另请参见

  • • "Unified Audit Trail"(统一审计跟踪)
  • • Oracle Label Security Administrator's GuideOracle 标签安全管理员指南

Data Access Monitoring(数据访问监控)

Oracle AI 数据库提供多种工具和技术来监控用户活动。审计是监控数据访问的主要机制。

  • • Database Auditing(数据库审计)数据库审计是监控和记录选定的用户数据库操作。
  • • Unified Audit Trail(统一审计跟踪)审计记录对于检测和识别未经授权的数据访问至关重要。
  • • Enterprise Manager Auditing Support(Enterprise Manager 审计支持)Oracle Enterprise Manager(Enterprise Manager)使您能够执行大多数与审计相关的任务。
  • • Oracle Audit Vault and Database Firewall(Oracle Audit Vault 和数据库防火墙)Oracle Audit Vault and Database Firewall (Oracle AVDF) 为数据库提供第一道防线,并整合来自数据库、操作系统和目录的审计数据。

Database Auditing(数据库审计)

数据库审计是监控和记录选定的用户数据库操作。

您可以配置统一审计策略来审计以下内容:

  • • 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 开始,当您使用统一审计时,数据库审计默认启用。您通过启用审计策略来控制数据库审计。但是,在使用统一审计之前,您必须将数据库迁移到统一审计。

  • • Audit Policies(审计策略)您可以使用单个 SQL 语句创建一个命名的统一审计策略,该策略指定了一组审计选项。这些选项可以指定要在数据库内部审计的系统权限、操作或角色。
  • • Audit Administrator Roles(审计管理员角色)要执行审计,您必须被授予适当的系统权限。

另请参见

  • • Oracle AI Database Security GuideOracle AI 数据库安全指南)了解统一审计的详细信息
  • • Oracle AI Database Upgrade GuideOracle AI 数据库升级指南)了解如何迁移到统一审计

Audit Policies(审计策略)

您可以使用单个 SQL 语句创建一个命名的统一审计策略,该策略指定了一组审计选项。这些选项可以指定要在数据库内部审计的系统权限、操作或角色。

在审计策略中,您可以可选地设置一个条件,该条件可以针对每条语句、每个会话一次或每个数据库实例一次进行评估。事件的审计受限于适用审计策略的条件评估结果。如果条件评估为真,则数据库生成审计记录。

以下示例创建一个策略,用于审计对hr.employees表的操作,除非用户从受信任的终端term1term2登录:

CREATE AUDIT POLICY EmployeesTableAudit  ACTIONS updateON hr.employees, deleteON hr.employeesWHEN SYS_CONTEXT ('userenv''hostname'NOTIN                   ('term1''term2') EVALUATE PER SESSION;

以下语句为用户 hr 和 hrvp 启用该策略:

AUDIT POLICY EmployeesTableAudit BY hr, hrvp;

您可以将统一审计策略应用于任何数据库用户,包括管理用户,如SYSDBASYSOPER等。但是,审计策略只能在数据库使用ALTER DATABASE OPEN语句打开后才能被读取。因此,管理用户的顶层操作始终会被审计,直到数据库打开。数据库打开后,审计策略配置生效。

当启用统一审计时,数据库会自动审计对审计设置的更改。数据库还会审计数据库实例的启动和关闭。

另请参见Oracle AI Database Security GuideOracle AI 数据库安全指南)了解如何管理审计策略

Audit Administrator Roles(审计管理员角色)

要执行审计,您必须被授予适当的系统权限。

Oracle AI 数据库提供以下系统提供的审计管理员角色:

  • • AUDIT_ADMINAUDIT_ADMIN角色管理数据库的审计设置。具有此角色的用户拥有以下权限:
    • • 创建、更改和删除审计策略,包括细粒度审计策略
    • • 根据每个业务需求启用或禁用审计策略
    • • 查看审计记录
    • • 管理和清理审计跟踪
  • • AUDIT_VIEWERAUDIT_VIEWER角色适用于只需要查看和分析数据的用户。具有此角色的用户仅被授予查看审计跟踪内容的权限。

另请参见Oracle AI Database Security GuideOracle AI 数据库安全指南)了解有关审计的更多信息

Unified Audit Trail(统一审计跟踪)

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

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

审计跟踪是存储审计记录的位置。在 Oracle Database 12c 中新增的统一审计跟踪,为来自所有类型审计的审计记录提供统一存储。您必须从先前版本的传统审计跟踪手动迁移到统一审计。

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

  • • Oracle Data Pump
  • • SQL*Loader 直接路径加载
  • • Oracle Database Vault
  • • Oracle Label Security
  • • Recovery Manager
  • • Real Application Security

统一审计跟踪是只读的,并存储在AUDSYS模式中。默认情况下,SYSAUX表空间存储来自所有来源的审计记录。您可以使用DBMS_AUDIT_MGMT包提供一个新表空间。

UNIFIED_AUDIT_TRAIL视图从审计跟踪中检索审计记录,并以表格形式显示它们。APPLICATION_CONTEXTS列存储已配置的应用程序上下文属性的值。您可以使用AUDIT语句将上下文属性的值包含在审计记录中。例如,以下语句捕获userenv命名空间中的MODULECLIENT_INFO属性:

AUDIT CONTEXT NAMESPACE userenv ATTRIBUTES MODULE, CLIENT_INFO BY hr;

根据所审计的组件(如 Oracle Database Vault),还有其他与统一审计跟踪相关的视图可用。

另请参见

  • • Oracle AI Database Security GuideOracle AI 数据库安全指南)了解统一审计跟踪
  • • Oracle AI Database Upgrade GuideOracle AI 数据库升级指南)了解如何迁移数据库以使用统一审计
  • • Oracle AI Database ReferenceOracle AI 数据库参考)了解UNIFIED_AUDIT_TRAIL视图

Enterprise Manager Auditing Support(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 GuideOracle AI 数据库安全指南)了解其他安全资源,如 Oracle Audit Vault and Database Firewall

Overview of High Availability(高可用性概述)

可用性是指应用程序、服务或功能按需可用的程度。

例如,在线书商使用的 OLTP 数据库的可用性,取决于客户进行购买时对其的可访问程度。可靠性、可恢复性、及时的错误检测和持续运行是高可用性的主要特征。

高可用性在数据库环境中的重要性与其停机成本相关,停机是指资源不可用的时间。停机可分为计划内停机和计划外停机。设计高可用环境的主要挑战在于检查所有可能的停机原因,并制定应对计划。

  • • High Availability and Unplanned Downtime(高可用性与计划外停机)Oracle AI 数据库提供高可用性解决方案,以预防、容忍并减少所有类型的计划外故障导致的停机。
  • • High Availability and Planned Downtime(高可用性与计划内停机)计划内停机对运营的破坏性可能同样巨大,尤其是在支持多个时区用户的全球企业中。在这种情况下,设计一个能够最小化计划内中断(如例行操作、定期维护和新部署)的系统至关重要。

High Availability and Unplanned Downtime(高可用性与计划外停机)

Oracle AI 数据库提供高可用性解决方案,以预防、容忍并减少所有类型的计划外故障导致的停机。

计划外停机可根据其原因进行分类。

  • • Site Failures(站点故障)站点故障是指当一个事件导致应用程序的全部或大部分停止处理,或速度减慢到不可用的服务级别时发生的情况。
  • • Computer Failures(计算机故障)计算机故障停机是指运行数据库的系统因关闭或不再可访问而变得不可用时发生的情况。
  • • Storage Failures(存储故障)存储故障停机是指存放部分或全部数据库内容的存储因关闭或不再可访问而变得不可用时发生的情况。存储故障的示例包括磁盘驱动器或存储阵列的故障。
  • • Data Corruption(数据损坏)数据损坏是指硬件、软件或网络组件导致损坏的数据被读取或写入时发生的情况。
  • • Human Errors(人为错误)人为错误停机是指无意或恶意的操作导致数据库中的数据在逻辑上损坏或不可用时发生的情况。人为错误停机的服务级别影响可能因受影响数据的数量和关键性质而有很大差异。

Site Failures(站点故障)

站点故障是指当一个事件导致应用程序的全部或大部分停止处理,或速度减慢到不可用的服务级别时发生的情况。

站点故障可能影响数据中心的所有处理,或数据中心支持的部分应用程序。示例包括大面积站点范围的电源或网络故障、使数据中心无法运行的自然灾害,或对运营或站点的恶意攻击。

防范站点故障的最简单形式是使用 RMAN 创建数据库备份并将其存储在异地。您可以将数据库恢复到另一台主机。但是,这种方法可能非常耗时,而且备份可能不是最新的。在 Data Guard 环境中维护一个或多个备用数据库,使您能够在生产站点发生故障时提供连续的数据库服务。

另请参见

  • • Oracle AI Database Backup and Recovery User’s GuideOracle AI 数据库备份和恢复用户指南)了解 RMAN 及备份恢复解决方案
  • • Oracle Data Guard Concepts and AdministrationOracle Data Guard 概念与管理)了解备用数据库

Computer Failures(计算机故障)

计算机故障停机是指运行数据库的系统因关闭或不再可访问而变得不可用时发生的情况。

计算机故障的示例包括硬件和操作系统故障。下表中的 Oracle 特性可防范或帮助应对计算机故障。

Table 20-1 Protection Against Computer Failures(表 20-1 防范计算机故障)

特性(Feature)
描述(Description)
了解更多(To Learn More)
Enterprise Grids(企业网格)
在 Oracle Real Applications Cluster(Oracle RAC)环境中,Oracle AI 数据库运行在集群中的两个或更多系统上,同时并发访问一个共享数据库。单个数据库系统跨多个硬件系统,但对应用程序而言表现为单个数据库。
"Overview of Grid Computing"(网格计算概述)
Oracle Data Guard
Data Guard 使您能够维护生产数据库的一个或多个副本,称为备用数据库,这些副本可以位于不同的大洲或同一个数据中心。如果主数据库因故障而不可用,Data Guard 可以将任何备用数据库切换为主角色,从而最大限度地减少停机时间。
Oracle Data Guard Concepts and Administration
Oracle Data Guard 概念与管理
Global Data Services(全局数据服务)
Global Data Services 框架自动化并集中管理数据库云的配置、维护和监控。Global Data Services 为云提供的服务提供负载均衡和故障转移。本质上,Global Data Services 为一组数据库提供的好处,类似于 Oracle Real Application Clusters (Oracle RAC) 为单个数据库提供的好处。
Oracle AI Database Global Data Services Concepts and Administration Guide
Oracle AI 数据库全局数据服务概念和管理指南
Fast Start Fault Recovery(快速启动故障恢复)
计划外停机的常见原因是系统故障。Oracle AI 数据库中的快速启动故障恢复技术会自动限制数据库实例恢复时间。
Oracle AI Database Performance Tuning Guide
Oracle AI 数据库性能调优指南

Storage Failures(存储故障)

存储故障停机是指存放部分或全部数据库内容的存储因关闭或不再可访问而变得不可用时发生的情况。存储故障的示例包括磁盘驱动器或存储阵列的故障。

下表显示了除 Oracle Data Guard 之外的存储故障解决方案。

Table 20-2 Solutions for Storage Failures(表 20-2 存储故障的解决方案)

解决方案(Solution)
描述(Description)
了解更多(To Learn More)
Oracle Automatic Storage Management (Oracle ASM)
Oracle ASM 是一个用于 Oracle 数据库文件的卷管理器和文件系统,支持单实例 Oracle AI 数据库和 Oracle RAC 配置。Oracle ASM 是 Oracle 推荐的存储管理解决方案,可替代传统的卷管理器和文件系统。
"Oracle Automatic Storage Management (Oracle ASM)"
Backup and recovery(备份与恢复)
Recovery Manager (RMAN) 实用程序可以备份数据、从先前的备份还原数据,并将数据恢复到故障发生前的那个时间点。
"Backup and Recovery"(备份与恢复)

另请参见Oracle Automatic Storage Management Administrator's GuideOracle 自动存储管理管理员指南)了解有关 Oracle ASM 的更多信息

Data Corruption(数据损坏)

数据损坏是指硬件、软件或网络组件导致损坏的数据被读取或写入时发生的情况。

数据损坏的一个示例是卷管理器错误,该错误导致错误的磁盘读取或写入。数据损坏虽然罕见,但可能对数据库乃至业务产生灾难性影响。

除了 Data Guard 和 Recovery Manager,Oracle AI 数据库还支持以下形式的数据损坏防护:

  • • 丢失写入问题的解决方案当 I/O 子系统确认数据块写入完成,但实际上写入并未发生时,就会发生丢失写入。在后续读取该块时,I/O 子系统返回该数据块的旧版本,该旧版本可能被用于更新数据库的其他块,从而导致数据库损坏。Oracle AI 数据库的解决方案如下:
    • • 使用备用数据库进行丢失写入保护在 Oracle Database 11g 中引入的标准丢失写入保护中,您可以在主数据库和备用数据库上启用DB_LOST_WRITE_PROTECT初始化参数。每个数据库都会在在线重做日志中记录缓冲区高速缓存块读取。当备用数据库在托管恢复期间应用重做时,它会读取相应的块,并将 SCN 与重做日志中的 SCN 进行比较,从而检测差异。
    • • 使用影子表空间进行丢失写入保护对于影子丢失写入保护,您需要创建一个影子表空间。影子表空间为每个被跟踪的数据文件中的每个数据块,包含一个简短的描述记录,包括 SCN。如果启用了影子丢失写入保护(ALTER DATABASE ENABLE LOST WRITE TRACKING),并且数据库更新了被跟踪的数据块,则数据库会将 SCN 写入相应的影子表空间。当读取被跟踪的数据块时,数据库会查找影子条目,然后将其与被跟踪的块进行比较。如果影子条目的 SCN 大于被跟踪的块,则发生了丢失写入。影子丢失写入保护的优点是无需使用备用数据库即可检测到丢失写入。此外,由于备用库丢失写入保护固有的延迟,当检测到丢失写入时,该块可能已经损坏了数据库的其他部分。为了防止数据损坏,影子丢失写入保护会在损坏被使用前检测到丢失写入。
  • • 数据块损坏检测块损坏是指数据块不是可识别的 Oracle 格式,或其内容内部不一致。包括 RMAN 在内的多个数据库组件和实用程序可以检测到损坏的块,并将其记录在V$DATABASE_BLOCK_CORRUPTION中。如果环境使用 Active Data Guard 备用数据库,则可以自动修复损坏。
  • • Transaction Guard and Application Continuity(事务卫士和应用程序连续性)数据库会话中断,无论是计划内还是计划外,都可能使最终用户不确定其工作的状态。在某些情况下,用户可能会重新提交已提交的事务,从而导致逻辑数据损坏。Transaction Guard 提供事务幂等性,使数据库能够保证提交结果,指示事务是否已提交并完成。Application Continuity 包含 Transaction Guard,使应用程序能够在发生可恢复错误后,针对数据库重放事务,并从事务中断的地方继续。

另请参见

  • • "Overview of Transaction Guard"(事务卫士概述)
  • • Oracle AI Database Backup and Recovery User’s GuideOracle AI 数据库备份和恢复用户指南)了解 RMAN 及备份恢复解决方案

Human Errors(人为错误)

人为错误停机是指无意或恶意的操作导致数据库中的数据在逻辑上损坏或不可用时发生的情况。人为错误停机的服务级别影响可能因受影响数据的数量和关键性质而有很大差异。

许多研究都将人为错误列为停机的最大原因。Oracle AI 数据库提供了强大的工具,帮助管理员快速诊断并从这些错误中恢复。它还包括使最终用户能够在无需管理员介入的情况下从问题中恢复的功能。

Oracle AI 数据库推荐以下防范人为错误的形式:

  • • 限制用户访问防止错误的最佳方法是限制用户对数据和服务的访问。Oracle AI 数据库提供了广泛的安全工具,通过认证用户,然后允许管理员仅授予用户履行其职责所需的权限,来控制对应用程序数据的访问。
  • • Oracle Flashback Technology(Oracle 闪回技术)Oracle 闪回技术是 Oracle AI 数据库中一系列人为错误修正功能。Oracle 闪回提供了一个 SQL 接口,用于快速分析和修复人为错误。例如,您可以执行:
    • • 针对局部损坏进行精细的外科手术式分析和修复
    • • 快速纠正更广泛的损坏
    • • 在行、事务、表、表空间和数据库级别进行恢复
  • • Oracle LogMinerOracle LogMiner 是一个关系型工具,使您能够使用 SQL 读取、分析和解释在线文件。

另请参见

  • • "Oracle LogMiner"
  • • "Overview of Database Security"(数据库安全概述)
  • • Oracle AI Database Backup and Recovery User’s GuideOracle AI 数据库备份和恢复用户指南)和 Oracle AI Database Development GuideOracle AI 数据库开发指南)了解有关 Oracle 闪回特性的更多信息
  • • Oracle AI Database UtilitiesOracle AI 数据库实用程序)了解有关 Oracle LogMiner 的更多信息

High Availability and Planned Downtime(高可用性与计划内停机)

计划内停机对运营的破坏性可能同样巨大,尤其是在支持多个时区用户的全球企业中。在这种情况下,设计一个能够最小化计划内中断(如例行操作、定期维护和新部署)的系统至关重要。

计划内停机可根据其原因进行分类。

  • • System and Database Changes(系统和数据库变更)计划内系统变更发生在您执行例行和定期维护操作以及新部署时,包括在数据库的组织数据结构之外进行的、对操作环境的计划性变更。
  • • Data Changes(数据变更)计划内数据变更发生在对 Oracle AI 数据库对象的逻辑结构或物理组织进行更改时。这些更改的主要目标是提高性能或可管理性。示例包括表重定义、添加表分区以及创建或重建索引。
  • • Application Changes(应用程序变更)计划内应用程序变更可能包括对数据、模式和程序的更改。这些更改的主要目标是提高性能、可管理性和功能性。例如应用程序升级。

System and Database Changes(系统和数据库变更)

计划内系统变更发生在您执行例行和定期维护操作以及新部署时,包括在数据库的组织数据结构之外进行的、对操作环境的计划性变更。

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

Oracle AI 数据库提供动态资源供应作为应对计划内系统和数据库变更的解决方案:

  • • Dynamic reconfiguration of the database(数据库的动态重新配置)Oracle AI 数据库动态地适应硬件和数据库配置的各种变化,包括向 SMP 服务器添加和移除处理器,以及使用 Oracle ASM 添加和移除存储阵列。例如,Oracle AI 数据库监控操作系统以检测 CPU 数量的变化。如果CPU_COUNT初始化参数设置为默认值,数据库工作负载可以动态地利用新增的处理器。
  • • Autotuning memory management(自动调优内存管理)Oracle AI 数据库使用非集中式策略在 SGA 和 PGA 的每个子组件中释放和获取内存。Oracle AI 数据库通过提示操作系统将内存颗粒传输给需要它的组件来自动调优内存。
  • • Automated distributions of data files, control files, and online redo log files(数据文件、控制文件和在线重做日志文件的自动分布)Oracle ASM 通过自动将数据文件、控制文件和日志文件分布在所有可用磁盘上,来自动化并简化这些文件的布局。

另请参见

  • • "Memory Management"(内存管理)
  • • 参见 Oracle Automatic Storage Management Administrator's GuideOracle 自动存储管理管理员指南)了解有关 Oracle ASM 的更多信息

Data Changes(数据变更)

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

Oracle AI 数据库通过在线重组和重定义来最大限度地减少数据变更的停机时间。这种架构使您能够在数据库打开时执行以下任务:

  • • 执行在线表重定义,使您能够在不显著影响表可用性的情况下修改表结构
  • • 创建、分析和重组索引
  • • 移动表分区

另请参见

  • • "Indexes and Index-Organized Tables"(索引与索引组织表)
  • • "Overview of Partitions"(分区概述)
  • • Oracle AI Database Administrator’s GuideOracle AI 数据库管理员指南)了解如何在线更改数据结构

Application Changes(应用程序变更)

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

Oracle AI 数据库支持以下解决方案,以最大限度地减少对应用程序数据库对象进行更改所需的应用程序停机时间。

Table 20-3 Solutions for Minimizing Downtime(表 20-3 最小化停机时间的解决方案)

解决方案(Solution)
描述(Description)
了解更多(To Learn More)
Rolling database patch updates(滚动数据库补丁更新)
Oracle AI 数据库支持以滚动方式将补丁应用于 Oracle RAC 系统的节点。
Rolling database release upgrades(滚动数据库版本升级)
Oracle AI 数据库支持通过使用 Data Guard SQL Apply 和逻辑备用数据库,以近乎零数据库停机时间的滚动方式安装数据库软件升级和应用补丁集。
Oracle AI Database Upgrade Guide
Oracle AI 数据库升级指南
Edition-based redefinition(基于版本的重定义)
基于版本的重定义使您能够在使用应用程序的同时升级该应用程序的数据库对象,从而最小化或消除停机时间。Oracle AI 数据库通过在称为版本(edition)的私有环境中更改(重定义)数据库对象来完成此任务。
Oracle AI Database Development Guide
Oracle AI 数据库开发指南
DDL with the default WAIT option(带有默认 WAIT 选项的 DDL)
DDL 语句需要对内部结构加排他锁(请参阅 "DDL Locks"(DDL 锁))。在先前版本中,如果 DDL 语句无法获取锁,则会失败。使用WAIT选项指定的 DDL 解决了此问题。
Creation of triggers in a disabled state(在禁用状态下创建触发器)
您可以在禁用状态下创建触发器,以便在启用触发器之前确保代码编译成功。
Oracle AI Database PL/SQL Language Reference
Oracle AI 数据库 PL/SQL 语言参考

Overview of Grid Computing(网格计算概述)

被称为网格计算的计算架构能有效地将大量服务器和存储池化为灵活、按需的资源,以满足所有企业计算需求。

数据库服务器网格是一组商用服务器,它们连接在一起以运行一个或多个数据库。数据库存储网格是一组低成本的模块化存储阵列,它们组合在一起,并由数据库服务器网格中的计算机访问。

借助数据库服务器网格和存储网格,您可以构建一个系统资源池。您可以根据业务优先级动态分配和回收这些资源。

图 20-2 说明了网格企业计算环境中的数据库服务器网格和数据库存储网格。

Figure 20-2 Grid Computing Environment(图20-2 网格计算环境)
  • • Database Server Grid(数据库服务器网格)Oracle Real Application Clusters (Oracle RAC) 使多个实例能够共享对 Oracle 数据库的访问。这些实例通过互连(Interconnect)连接。
  • • Oracle Flex Clusters从 Oracle Database 12c 开始,您可以在大型集群中配置 Oracle Clusterware 和 Oracle Real Application Clusters。
  • • Database Storage Grid(数据库存储网格)

另请参见http://www.globalgridforum.org/ 了解标准组织 Global Grid Forum (GGF)

Database Server Grid(数据库服务器网格)

Oracle Real Application Clusters (Oracle RAC) 使多个实例能够共享对 Oracle 数据库的访问。这些实例通过互连(Interconnect)连接。

在 Oracle RAC 环境中,Oracle AI 数据库运行在集群中的两个或更多系统上,同时并发访问一个共享数据库。Oracle RAC 通过提供一个跨越多个低成本服务器,但对应用程序而言表现为单个统一数据库系统的数据库,来实现数据库服务器网格。

Oracle Clusterware 是一款软件,它使服务器能够像一台服务器一样协同工作。每台服务器看起来都像任何独立的服务器。但是,每台服务器都有额外的、相互通信的进程,以便独立的服务器能够像一台服务器一样协同工作。Oracle Clusterware 提供了运行集群所需的所有功能,包括节点成员资格和消息传递服务。

  • • Scalability(可扩展性)在数据库服务器网格中,Oracle RAC 使您能够随着容量需求的增长向集群添加节点。
  • • Fault Tolerance(容错性)在高可用性架构中,容错是针对架构中某个组件故障所提供的保护。
  • • Services(服务)Oracle RAC 支持服务,这些服务可以对数据库工作负载进行分组,并将工作路由到被分配来提供这些服务的最佳实例。

另请参见

  • • Oracle Real Application Clusters Administration and Deployment GuideOracle Real Application Clusters 管理和部署指南)了解如何管理 Oracle RAC 数据库
  • • Oracle Clusterware Administration and Deployment GuideOracle Clusterware 管理和部署指南)了解如何管理和部署 Oracle Clusterware

Scalability(可扩展性)

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

Oracle RAC 中实现的缓存融合技术使您能够在不更改应用程序的情况下扩展容量。因此,您可以增量地扩展系统以节省成本,并消除用更大的单节点系统替换较小系统的需要。

您可以增量地向集群添加节点,而不是用更大的节点替换现有系统。Grid Plug and Play 简化了在集群中添加和移除节点的过程,使在动态供应的环境中部署集群变得更加容易。Grid Plug and Play 还支持以与位置无关的方式管理数据库和服务。SCAN 使客户端能够连接到数据库服务,而无需关心其在网格中的位置。

另请参见Oracle Real Application Clusters Administration and Deployment GuideOracle Real Application Clusters 管理和部署指南)了解有关缓存融合的更多信息

Fault Tolerance(容错性)

在高可用性架构中,容错是针对架构中某个组件故障所提供的保护。

Oracle RAC 架构的一个关键优势是由多个节点提供的固有容错性。因为物理节点是独立运行的,所以一个或多个节点的故障不会影响集群中的其他节点。

故障转移可以发生在网格中的任何节点上。在极端情况下,即使只有一个节点正常运行,Oracle RAC 系统也能提供数据库访问。这种架构使一组节点能够在不影响集群其余部分继续提供数据库访问的情况下,透明地上线或下线以进行维护。

Oracle RAC 提供与 Oracle 客户端和连接池的内置集成。凭借此功能,应用程序通过终止连接的池,立即收到任何故障通知。应用程序无需等待 TCP 超时,并可立即采取适当的恢复操作。Oracle RAC 将监听器与 Oracle 客户端和连接池集成,以创建最佳的应用程序吞吐量。Oracle RAC 可以根据事务发生时的负载来平衡集群工作负载。

另请参见

  • • "Database Resident Connection Pooling"(数据库驻留连接池)
  • • Oracle Real Application Clusters Administration and Deployment GuideOracle Real Application Clusters 管理和部署指南)了解有关自动工作负载管理的更多信息

Services(服务)

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

服务代表了具有共同属性、性能阈值和优先级的应用程序的工作负载。您可以为这些服务定义并应用业务策略,以执行诸如为峰值处理时段分配节点或自动处理服务器故障等任务。使用服务可确保在需要的时间和地点应用系统资源,以实现业务目标。

服务与 Database Resource Manager 集成,使您能够限制某个实例内的服务可以使用的资源。此外,Oracle Scheduler 作业可以使用服务来运行,而不是使用特定的实例。

另请参见

  • • "Database Resource Manager"(数据库资源管理器)
  • • Oracle AI Database Administrator’s GuideOracle AI 数据库管理员指南)了解 Database Resource Manager 和 Oracle Scheduler

Oracle Flex Clusters

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

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

另请参见

  • • Oracle Clusterware Administration and Deployment GuideOracle Clusterware 管理和部署指南)了解有关 Oracle Flex Clusters 的更多信息
  • • Oracle Grid Infrastructure Installation and Upgrade GuideOracle 网格基础设施安装和升级指南)了解有关 Oracle Flex Cluster 部署的更多信息

Database Storage Grid(数据库存储网格)

DBA 或存储管理员可以使用 Oracle ASM 接口来指定数据库存储网格中应由 Oracle ASM 跨所有服务器和存储平台管理的磁盘。Oracle ASM 会分区磁盘空间,并将数据均匀分布到提供给 Oracle ASM 的磁盘上。此外,当从数据库存储网格中添加或移除存储阵列中的磁盘时,Oracle ASM 会自动重新分布数据。

另请参见

  • • "Oracle Automatic Storage Management (Oracle ASM)"(Oracle 自动存储管理(Oracle ASM))
  • • Oracle Automatic Storage Management Administrator's GuideOracle 自动存储管理管理员指南)了解有关集群化 Oracle ASM 的更多信息

Overview of Data Warehousing and Business Intelligence(数据仓库与商业智能概述)

数据仓库是为查询和分析而设计的关系型数据库,而非用于事务处理。

例如,一个数据仓库可以追踪历史股票价格或所得税记录。仓库通常包含源自历史事务数据的数据,但也可以包含来自其他来源的数据。

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

  • • Data Warehousing and OLTP(数据仓库与 OLTP)介绍数据仓库的一种常见方式是引用 William Inmon 提出的数据仓库的特征。
  • • Data Warehouse Architecture(数据仓库架构)数据仓库及其架构因业务需求而异。
  • • Overview of Extraction, Transformation, and Loading (ETL)(提取、转换和加载 (ETL) 概述)从源系统提取数据并将其带入数据仓库的过程通常称为 ETL:提取、转换和加载。ETL 指的是一个宽泛的过程,而非三个严格定义的步骤。
  • • Business Intelligence(商业智能)商业智能是对组织信息的分析,以辅助制定业务决策。

Data Warehousing and OLTP(数据仓库与 OLTP)

介绍数据仓库的一种常见方式是引用 William Inmon 提出的数据仓库的特征。

其特征如下:¹

  • • Subject-Oriented(面向主题的)数据仓库使您能够按主题(例如销售)来定义数据库。
  • • Integrated(集成的)数据仓库必须将来自不同来源的数据统一为一致的格式。它们必须解决命名冲突和度量单位不一致等问题。当它们实现这一目标时,就被认为是集成的。
  • • Nonvolatile(非易失的)数据仓库的目的是使您能够分析已发生的事情。因此,在数据进入仓库之后,数据不应再更改。
  • • Time-Variant(随时间变化的)数据仓库的重点是随时间发生的变化。

数据仓库和 OLTP 数据库有不同的需求。例如,为了发现业务趋势,数据仓库必须维护大量的数据。相比之下,为了获得良好的性能,则需要定期将历史数据从 OLTP 系统移至归档中。

表 20-4 列出了数据仓库和 OLTP 之间的区别。

Table 20-4 Data Warehouses and OLTP Systems(表 20-4 数据仓库与 OLTP 系统)

特征(Characteristics)
数据仓库(Data Warehouse)
OLTP
工作负载(Workload)
设计用于适应即席查询。您可能无法提前预知数据仓库的工作负载,因此应优化其以对各种可能的查询都表现良好。
仅支持预定义的操作。您的应用程序可能是专门调优或设计的,以仅支持这些操作。
数据修改(Data modifications)
由 ETL 过程使用批量数据修改技术定期更新。数据仓库的最终用户不直接更新数据库。
受最终用户例行发出的单个 DML 语句影响。OLTP 数据库始终保持最新,并反映每个业务事务的当前状态。
模式设计(Schema design)
使用非规范化或部分非规范化的模式(例如星型模式)来优化查询性能。
使用完全规范化的模式来优化 DML 性能并保证数据一致性。
典型操作(Typical operations)
典型查询会扫描数千行或数百万行。例如,用户可能会请求上个月所有客户的总销售额。
典型操作仅访问少量记录。例如,用户可能会检索单个客户的当前订单。
历史数据(Historical data)
存储数月或数年的数据以支持历史分析。
仅存储数周或数月的数据。历史数据根据需要保留,以满足当前事务的要求。

¹ Building the Data Warehouse,John Wiley and Sons,1996。

另请参见

  • • Oracle AI Database Data Warehousing GuideOracle AI 数据库数据仓库指南)了解对数据仓库的更详细描述
  • • Oracle AI Database VLDB and Partitioning GuideOracle AI 数据库 VLDB 和分区指南)了解对 OLTP 系统的更详细描述

Data Warehouse Architecture(数据仓库架构)

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

  • • Data Warehouse Architecture (Basic)(数据仓库架构(基本))在一个简单的数据仓库架构中,最终用户直接访问从多个源系统传输到数据仓库的数据。
  • • Data Warehouse Architecture (with a Staging Area)(数据仓库架构(带暂存区))某些数据仓库使用暂存区,这是在数据进入仓库之前对其进行预处理的地方。暂存区简化了构建汇总和管理仓库的任务。
  • • Data Warehouse Architecture (with a Staging Area and Data Marts)(数据仓库架构(带暂存区和数据集市))您可能希望为组织内的不同群体定制您的仓库架构。您可以通过将仓库中的数据传输到数据集市来实现此目标,数据集市是为特定业务或项目设计的独立数据库。通常,数据集市包含许多汇总表。

Data Warehouse Architecture (Basic)(数据仓库架构(基本))

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

下图显示了一个示例架构。

Figure 20-3 Architecture of a Data Warehouse(图20-3 数据仓库架构)

上图显示了传统 OLTP 系统的元数据和原始数据,以及汇总数据。汇总是一种聚合视图,它通过预先计算昂贵的连接和聚合操作并将结果存储在表中,来提高查询性能。例如,一个汇总表可以包含按区域和产品划分的销售额总和。

汇总也被称为物化视图。

另请参见Oracle AI Database Data Warehousing GuideOracle AI 数据库数据仓库指南)了解基本的物化视图

Data Warehouse Architecture (with a Staging Area)(数据仓库架构(带暂存区))

某些数据仓库使用暂存区,这是在数据进入仓库之前对其进行预处理的地方。暂存区简化了构建汇总和管理仓库的任务。

下图描绘了一个暂存区。

Figure 20-4 Architecture of a Data Warehouse with a Staging Area(图20-4 带暂存区的数据仓库架构)

另请参见Oracle AI Database Data Warehousing GuideOracle AI 数据库数据仓库指南)了解不同的传输机制

Data Warehouse Architecture (with a Staging Area and Data Marts)(数据仓库架构(带暂存区和数据集市))

您可能希望为组织内的不同群体定制您的仓库架构。您可以通过将仓库中的数据传输到数据集市来实现此目标,数据集市是为特定业务或项目设计的独立数据库。通常,数据集市包含许多汇总表。

图 20-5 将采购、销售和库存信息分离到独立的数据集市中。财务分析师可以查询数据集市,获取关于采购和销售的历史信息。

Figure 20-5 Architecture of a Data Warehouse with a Staging Area and Data Marts(图20-5 带暂存区和数据集市的数据仓库架构)

另请参见Oracle AI Database Data Warehousing GuideOracle AI 数据库数据仓库指南)了解转换机制

Overview of Extraction, Transformation, and Loading (ETL)(提取、转换和加载 (ETL) 概述)

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

在典型场景中,来自一个或多个操作系统的数据被提取,然后被物理传输到目标系统或中间系统进行处理。根据传输方法的不同,某些转换可以在此过程中发生。例如,通过网关直接访问远程目标的 SQL 语句,可以将串联两列作为SELECT语句的一部分。

Oracle AI 数据库本身并非 ETL 工具。然而,Oracle AI 数据库提供了一套丰富的功能,可供 ETL 工具和定制的 ETL 解决方案使用。Oracle AI 数据库提供的 ETL 功能包括:

  • • Transportable tablespaces(可传输表空间)您可以在不同的计算机架构和操作系统之间传输表空间。可传输表空间是在两个 Oracle 数据库之间移动大量数据的最快方式。
  • • Table functions(表函数)表函数是用户定义的 PL/SQL 函数,它返回一个行集合(嵌套表或 varray)。表函数可以生成一组行作为输出,也可以接受一组行作为输入。表函数为在 PL/SQL、C 或 Java 中实现的转换提供流水线和并行执行支持,而无需中间暂存表。
  • • External tables(外部表)外部表使外部数据能够直接并行连接,而无需首先将其加载到数据库中。因此,外部表实现了加载阶段与转换阶段的流水线化。
  • • Table Compression(表压缩)为了减少磁盘使用和内存使用,您可以以压缩格式存储表和分区表。使用表压缩通常会为只读操作带来更好的扩展性,并加快查询执行速度。

另请参见

  • • "Table Compression"(表压缩)
  • • "Overview of External Tables"(外部表概述)
  • • Oracle AI Database Data Warehousing GuideOracle AI 数据库数据仓库指南)了解 ETL 概述
  • • Oracle AI Database Administrator’s GuideOracle AI 数据库管理员指南

Business Intelligence(商业智能)

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

分析应用程序和商业智能主要以在层次结构中上钻和下钻以及比较聚合值为特征。Oracle AI 数据库提供了多种技术来支持此类操作。

  • • Analytic SQL(分析 SQL)Oracle AI 数据库引入了许多用于执行分析操作的 SQL 操作。这些操作包括排名、移动平均、累积和、比率报告以及同期比较。
  • • Analytic Views(分析视图)分析视图扩展了数据集的内容,并简化了商业智能应用程序的开发。
  • • Oracle Advanced AnalyticsOracle Advanced Analytics Option 将 Oracle AI 数据库扩展为一个用于大数据分析的综合性高级分析平台。

Analytic SQL(分析 SQL)

Oracle AI 数据库引入了许多用于执行分析操作的 SQL 操作。这些操作包括排名、移动平均、累积和、比率报告以及同期比较。

例如,Oracle AI 数据库支持以下形式的分析 SQL。

Table 20-5 Analytic SQL(表 20-5 分析 SQL)

分析 SQL 类型(Type of Analytic SQL)
描述(Description)
了解更多(To Learn More)
SQL for aggregation(用于聚合的 SQL)
聚合函数(如COUNT)基于一组行返回单个结果行。聚合是数据仓库的基础。为了提高仓库中的聚合性能,数据库对GROUP BY子句进行了扩展,使查询和报告更容易、更快速。
Oracle AI Database Data Warehousing Guide
Oracle AI 数据库数据仓库指南)了解聚合
SQL for analysis(用于分析的 SQL)
分析函数(如MAX)聚合一组行(称为窗口)以返回多行作为结果集。Oracle 使用一系列分析 SQL 函数,拥有先进的 SQL 分析处理能力。例如,这些分析函数使您能够计算排名、百分位和移动窗口。
Oracle AI Database Data Warehousing Guide
Oracle AI 数据库数据仓库指南)了解用于分析和报告的 SQL
SQL for modeling(用于建模的 SQL)
使用MODEL子句,您可以根据查询结果创建多维数组,并对该数组应用规则来计算新值。例如,您可以按国家/地区对销售视图中的数据进行分区,并对每个国家/地区执行一个模型计算,该计算由多个规则定义。一条规则可以计算 2008 年某个产品的销售额为 2006 年和 2007 年销售额的总和。
Oracle AI Database Data Warehousing Guide
Oracle AI 数据库数据仓库指南)了解 SQL 建模

另请参见Oracle AI Database SQL Language ReferenceOracle AI 数据库 SQL 语言参考)了解 SQL 函数

Analytic Views(分析视图)

分析视图扩展了数据集的内容,并简化了商业智能应用程序的开发。

分析视图具有以下特征:

  • • 数据使用层次结构和维度概念进行组织。
  • • 连接、聚合和度量计算规则嵌入在分析视图中。
  • • 可以使用 SQL DDL 分层在数据库中的现有表、视图和其他对象之上。
  • • 可以使用简单的 SQL 进行查询。

另请参见Oracle AI Database Data Warehousing GuideOracle AI 数据库数据仓库指南)了解分析视图概述

Oracle Advanced Analytics

Oracle Advanced Analytics Option 将 Oracle AI 数据库扩展为一个用于大数据分析的综合性高级分析平台。

Oracle Advanced Analytics 在数据库内部提供预测分析、数据挖掘、文本挖掘、统计分析、高级数值计算和交互式图形功能。

Oracle Advanced Analytics 包含以下组件:

  • • Oracle Data Mining(Oracle 数据挖掘)在商业智能中,数据挖掘是使用复杂的数学算法来细分数据并评估未来事件的可能性。
  • • Oracle Machine Learning for R(Oracle R 机器学习)R 是一种用于统计计算和图形的开源语言和环境。Oracle Machine Learning for R 使 R 为企业和大数据做好准备。
Oracle Data Mining(Oracle 数据挖掘)

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

数据挖掘的典型应用包括呼叫中心、ATM、电子商务关系管理(ERM)和业务规划。Oracle Data Miner 使数据分析师能够快速分析数据,定位最佳客户,打击欺诈,并发现有助于其业务更好竞争的重要关联和模式。

Oracle Data Mining 提供数据挖掘算法,这些算法作为原生 SQL 函数运行,用于高性能的数据库内模型构建和模型部署。Oracle Data Mining 可以挖掘表、视图、星型模式、事务数据和非结构化数据。

Oracle Data Mining 支持 PL/SQL API 和用于模型评分的 SQL 函数。因此,Oracle AI 数据库为应用程序开发者提供了一个基础架构,使其能将数据挖掘与数据库应用程序无缝集成。

Oracle Data Miner 是 SQL Developer 的一个扩展,为 Oracle Data Mining 提供了一个图形用户界面。

另请参见Oracle Machine Learning for SQL ConceptsOracle 机器学习的 SQL 概念

Oracle Machine Learning for R(Oracle R 机器学习)

R 是一种用于统计计算和图形的开源语言和环境。Oracle Machine Learning for R 使 R 为企业和大数据做好准备。

Oracle Machine Learning for R 专为涉及大量数据的问题而设计,它将 R 与 Oracle AI 数据库集成在一起。您可以对存储在 Oracle AI 数据库中的数据运行 R 命令和脚本,以进行统计和图形分析。您还可以开发、优化和部署 R 脚本,利用数据库的并行性和可扩展性来自动化数据分析。数据分析师可以一步到位地运行 R 包并开发用于分析应用程序的 R 脚本,而无需学习 SQL。

另请参见Oracle Machine Learning for R User’s GuideOracle R 机器学习用户指南

Overview of Oracle Information Integration(Oracle 信息集成概述)

随着组织的发展,在多个数据库和应用程序之间共享信息变得越来越重要。

共享信息的基本方法如下:

  • • Consolidation(整合)您可以将信息整合到单个数据库中,从而消除进一步集成的需要。Oracle RAC、网格计算、多租户架构和 Oracle VPD 可以使您将信息整合到单个数据库中。
  • • Federation(联邦)您可以保持信息的分布式状态,并提供工具来联合这些信息,使其看起来像是在单个虚拟数据库中。
  • • Sharing(共享)您可以共享信息,这样就可以在多个数据存储和应用程序中维护信息。

本节重点介绍用于联合和共享信息的 Oracle 解决方案。

  • • Federated Access(联邦访问)联邦访问的基础是分布式环境,即由无缝相互通信的异构系统组成的网络。
  • • Information Sharing(信息共享)任何集成的核心都在于企业中应用程序之间的数据共享。

Federated Access(联邦访问)

联邦访问的基础是分布式环境,即由无缝相互通信的异构系统组成的网络。

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

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

  • • Distributed SQL(分布式 SQL)分布式 SQL 同步访问和更新分布在多个数据库中的数据。Oracle 分布式数据库系统可以对用户透明,使其看起来像是单个 Oracle 数据库。
  • • Database Links(数据库链接)数据库链接是两个物理数据库之间的连接,它使客户端能够将它们作为一个逻辑数据库进行访问。

Distributed SQL(分布式 SQL)

分布式 SQL 同步访问和更新分布在多个数据库中的数据。Oracle 分布式数据库系统可以对用户透明,使其看起来像是单个 Oracle 数据库。

分布式 SQL 包括分布式查询和分布式事务。Oracle 分布式数据库架构提供了查询和事务透明性。例如,标准的 DML 语句的工作方式与在非分布式数据库环境中完全一样。此外,应用程序使用标准的 SQL 语句COMMITSAVEPOINTROLLBACK来控制事务。

另请参见

  • • "Overview of Distributed Transactions"(分布式事务概述)
  • • Oracle AI Database Administrator’s GuideOracle AI 数据库管理员指南)了解如何管理分布式事务

Database Links(数据库链接)

数据库链接是两个物理数据库之间的连接,它使客户端能够将它们作为一个逻辑数据库进行访问。

Oracle AI 数据库使用数据库链接来允许一个数据库上的用户访问远程数据库中的对象。本地用户可以访问指向远程数据库的链接,而无需成为远程数据库上的用户。

图 20-6 展示了一个示例,用户 hr 正在通过全局名称为 hq.example.com 的远程数据库访问 employees 表。employees 同义词隐藏了远程模式对象的身份和位置。

Figure 20-6 Database Link(图20-6 数据库链接)

另请参见Oracle AI Database Administrator’s GuideOracle AI 数据库管理员指南)了解数据库链接

Information Sharing(信息共享)

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

  • • Oracle GoldenGateOracle GoldenGate 是一个异步、基于日志的实时数据复制产品。
  • • Oracle AI Database Transactional Event Queues and Advanced Queuing (AQ)(Oracle AI 数据库事务事件队列和高级队列 (AQ))Oracle AI Database Transactional Event Queues and Advanced Queuing (AQ) 是一个强大且功能丰富的消息队列系统,与 Oracle AI 数据库集成在一起。

Oracle GoldenGate

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

Oracle GoldenGate 以最小的开销,跨异构数据库、硬件和操作系统环境,实时移动大量事务数据。它优化了实时信息访问和可用性,因为它可以:

  • • 支持涉及 Oracle AI 数据库与非 Oracle 数据库的异构混合复制
  • • 维持关键任务系统的持续可用性,从而在计划内维护期间最大限度地减少停机时间
  • • 实现跨企业的实时数据集成
  • • 自动配置分片表中各分片之间的双向复制

典型环境包括捕获、抽取和交付过程。每个过程都可以在大多数流行的操作系统和数据库上运行,包括 Oracle 数据库和非 Oracle 数据库。可以复制部分或全部数据。在这些过程中的任何数据都可以被处理,以适应异构环境和不同的数据库模式。

Oracle GoldenGate 支持多主复制、中心辐射型部署、数据整合和数据转换。因此,Oracle GoldenGate 使您能够确保关键系统 7x24 小时运行,并且相关数据分布在整个企业中,以优化决策。

另请参见

  • • Oracle Globally Distributed AI DatabaseOracle 全局分布式 AI 数据库)了解如何使用 Oracle 分片
  • • http://www.oracle.com/technetwork/middleware/goldengate/documentation/index.html

Oracle AI Database Transactional Event Queues and Advanced Queuing (AQ)(Oracle AI 数据库事务事件队列和高级队列 (AQ))

Oracle AI Database Transactional Event Queues and Advanced Queuing (AQ) 是一个强大且功能丰富的消息队列系统,与 Oracle AI 数据库集成在一起。

当一个组织拥有必须相互通信的不同系统时,消息传递环境可以提供一种标准、可靠的方式在这些系统之间传输关键信息。

一个示例用例是,一家企业在总部的 Oracle 数据库中输入订单。当订单被录入时,该企业使用 AQ 将订单 ID 和订单日期发送到仓库中的一个数据库。这些消息提醒仓库的员工有订单,以便他们能够履行并发货。

  • • Message Queuing and Dequeuing(消息入队和出队)Oracle AI Database Transactional Event Queues and Advanced Queuing 将用户消息存储在称为队列的抽象存储单元中。
  • • Oracle AI Database Transactional Event Queues and Advanced Queuing Advanced Features(Oracle AI 数据库事务事件队列和高级队列高级特性)Oracle AI Database Transactional Event Queues and Advanced Queuing (AQ) 支持消息排队系统的所有标准特性。
Message Queuing and Dequeuing(消息入队和出队)

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

入队是生产者将消息放入队列的过程。出队是消费者从队列中检索消息的过程。

对显式出队的支持允许开发人员使用 XStream 和 Oracle GoldenGate 可靠地交换消息。他们还可以通过利用 Oracle GoldenGate 的变更捕获和传播特性,将更改通知给应用程序。

图 20-7 显示了一个示例应用程序,它通过 Advanced Queuing 显式地入队和出队消息,从而能够与使用不同消息系统的合作伙伴共享信息。在入队之后,消息可以在出队到合作伙伴的应用程序之前被转换和传播。

Figure 20-7 Oracle Message Queuing(图20-7 Oracle 消息队列)
Oracle AI Database Transactional Event Queues and Advanced Queuing Advanced Features(Oracle AI 数据库事务事件队列和高级队列高级特性)

Oracle AI Database Transactional Event Queues and Advanced Queuing (AQ) 支持消息排队系统的所有标准特性。

特性包括:

  • • Asynchronous application integration(异步应用程序集成)Transactional Event Queues and Advanced Queuing 提供了多种消息入队的方式。捕获进程或同步捕获可以隐式捕获消息,或者应用程序和用户可以显式捕获消息。
  • • Extensible integration architecture(可扩展的集成架构)许多应用程序都使用以 Oracle AI 数据库为中心的中心辐射型模型进行集成。Oracle 数据库上的分布式应用程序与同一中心中的队列进行通信。多个应用程序共享同一个队列,从而无需添加队列来支持其他应用程序。
  • • Heterogeneous application integration(异构应用程序集成)Transactional Event Queues and Advanced Queuing 为应用程序提供了 Oracle 类型系统的全部功能。它包括对标量数据类型、具有继承性的 Oracle AI 数据库对象类型、带有针对 XML 数据的附加运算符的 XMLType 以及 ANYDATA 的支持。
  • • Legacy application integration(遗留应用程序集成)Oracle Messaging Gateway 将 Oracle AI 数据库应用程序与其他消息队列系统(如 Websphere MQ 和 Tibco)集成在一起。
  • • Standards-Based API support(基于标准的 API 支持)Transactional Event Queues and Advanced Queuing 支持行业标准 API:SQL、JMS 和 SOAP。使用 SQL 所做的更改会自动捕获为消息。

另请参见Oracle AI Database Transactional Event Queues and Advanced Queuing User's GuideOracle AI 数据库事务事件队列和高级队列用户指南


基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-03 16:28:53 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/705911.html
  2. 运行时间 : 0.127424s [ 吞吐率:7.85req/s ] 内存消耗:4,792.27kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=363c5c50b0dd2e10a90914f7c9bc92d8
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000491s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000863s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.008786s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000288s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000673s ]
  6. SELECT * FROM `set` [ RunTime:0.000265s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000660s ]
  8. SELECT * FROM `article` WHERE `id` = 705911 LIMIT 1 [ RunTime:0.001428s ]
  9. UPDATE `article` SET `lasttime` = 1780475333 WHERE `id` = 705911 [ RunTime:0.006400s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000291s ]
  11. SELECT * FROM `article` WHERE `id` < 705911 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000482s ]
  12. SELECT * FROM `article` WHERE `id` > 705911 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002182s ]
  13. SELECT * FROM `article` WHERE `id` < 705911 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000829s ]
  14. SELECT * FROM `article` WHERE `id` < 705911 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.020835s ]
  15. SELECT * FROM `article` WHERE `id` < 705911 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003934s ]
0.129112s