在 Autonomous Database on Dedicated Exadata Infrastructure 中提供有限支持的 Oracle Database 功能

Autonomous Database on Dedicated Exadata Infrastructure 支持 Oracle Database Enterprise Edition 中的大部分功能。为了确保 Autonomous Database 的安全性和性能,某些功能的支持有限。

Autonomous Database 中的以下 Oracle Database 功能、选项和包支持有限。

功能、选件或包装 限制
数据库内存中 请参见 Database In-Memory
快速摄取 请参见 Fast Ingest
按索引组织的表 (IOT) 不支持索引表,但尝试创建一个索引表不会生成错误。而是创建一个具有主键索引的堆表。因此,如果使用按索引组织的表,则应测试使用按索引组织的表的应用程序,以确认它们使用带主键索引的按堆组织的表。
Oracle Database 中的 Java(有时称为 OJVM 或数据库嵌入式 JVM) 在数据库上执行服务维护操作时,在 Oracle Database 中使用 Java 的数据库会话将降低数据库端性能。
LogMiner 请参见 Oracle LogMiner
Oracle 数据泵 不支持可传输表空间模式(TRANSPORT_TABLESPACES 参数)。
Oracle Database Advanced Queuing

仅支持 PL/SQL 高级排队 API。

不支持用于高级排队的 Oracle Call Interface (OCI) 通知。

Oracle Flashback 和还原点 请参见Oracle Flashback and Restore Points
Oracle Label Security 不能在策略中指定标签函数。
Oracle Machine Learning (OML)
支持:
  • 所有数据库版本上的 OML4SQL。
  • Oracle Data Miner。
有关 OML 产品文档,请参阅 Oracle 帮助中心上的 Oracle Machine Learning
Oracle Real Application Testing
SQL Performance AnalyzerDatabase Replay 是 Oracle Real Application Testing (RAT) 的关键组件。可以使用其中一个或两个组件来执行测试,具体取决于所测试的系统更改的性质和影响以及测试系统的类型。
  • 数据库重放:有关更多详细信息,请参见 Database Replay

  • SQL 性能分析程序 (SQL Performance Analyzer,SPA):有关 SPA 的详细信息,请参阅 Oracle Database 19c 中的测试指南Oracle Database 23ai

    提示:

    可以使用 Enterprise Manager (EM) 中的 SPA 功能。有关详细信息,请参阅 Administrator's Guide for Oracle Autonomous Databases 中的 Monitoring and Administration Tasks
Oracle Text 请参阅 Oracle Text
Oracle XML DB 请参阅 Oracle XML DB

SQL 命令

Autonomous Database on Dedicated Exadata Infrastructure 支持 Oracle Database 中提供的大多数 SQL 命令。为了确保 Autonomous Database 的安全性和性能,某些 SQL 命令受到限制。

本节提供了在 Autonomous Database on Dedicated Exadata Infrastructure 中保护安全性和性能完整性所需的 SQL 命令限制列表。与 Oracle Database 一起使用的大多数标准 SQL 和 PL/SQL 语法和构造都可以在 Autonomous Database 中运行。

注意:

如果尝试使用受限 SQL 命令,系统将生成以下错误:

ORA-01031: insufficient privileges

此错误表示不允许您在 Autonomous Database 中运行 SQL 命令。

Autonomous Database 不支持以下 SQL 命令和 PL/SQL 程序包:

  • ADMINISTER KEY MANAGEMENT
  • SYS.DBMS_SHARED_POOL
  • CREATE_LIBRARY

Autonomous Database 中具有限制的 SQL 命令

Autonomous Database 中提供了以下 DDL 命令,但存在一些限制:

SQL 命令 限制

ALTER PLUGGABLE DATABASEALTER DATABASE

只允许使用以下子句:

DATAFILE AUTOEXTEND ON

DATAFILE AUTOEXTEND OFF

DATAFILE RESIZE

DEFAULT EDITION

SET TIME_ZONE

ALTER PROFILE

使用 ALTER PROFILE

ALTER SESSION

只允许使用以下子句:

ADVISE COMMIT, ADVISE ROLLBACK, ADVISE NOTHING

CLOSE DATABASE LINK

ENABLE COMMIT IN PROCEDURE, DISABLE COMMIT IN PROCEDURE

ENABLE PARALLEL <QUERY|DDL|DML>, DISABLE PARALLEL <QUERY|DDL|DML>, FORCE PARALLEL <QUERY|DDL|DML>

ENABLE RESUMABLE, DISABLE RESUMABLE

SET DEFAULT_COLLATION

SET EDITION

SET ISOLATION_LEVEL

SET ROW ARCHIVAL VISIBILITY

SET init-param = value

有关可以在 Oracle Autonomous Database on Dedicated Exadata Infrastructure 中设置的初始化参数的列表,请参阅修改数据库初始化参数。请注意,您无法在会话级别设置其中的某些参数。要确定是否可以使用 ALTER SESSION SET 更改给定参数,请查询 V$PARAMETER 动态性能视图的 ISSES_MODIFIABLE 列。

ALTER SYSTEM

只允许使用 ALTER SYSTEM SETALTER SYSTEM KILL SESSIONSET 只能用于设置 Modifying Database Initialization Parameters 中列出的参数。

ALTER TABLESPACE

Autonomous Database 不支持使用 SMALLFILE 表空间。

Autonomous Database 块大小固定在 8K。BIGFILE 表空间仅包含一个数据文件或临时文件,具有 8K 块的表空间的文件最大大小为 32 TB。

ALTER TABLE

将忽略以下子句:

allocate_extent

alter_iot

deallocate_unused

ilm

inmemory_table

logging

modify_LOB_storage

physical_attributes

shrink

有关 ALTER TABLE 的更多信息,请参见 Oracle Database 19c SQL Language ReferenceOracle Database 23ai SQL Language Reference

CREATE DATABASE LINK

USING 'connect string' 子句中,必须使用 Easy Connect 语法或提供完整的描述符。无法使用网络服务名称,因为 tnsnames.ora 文件不可用于查找。

数据库链接只能用于 TCP 连接,因为 TCPS 连接需要 wallet。

CREATE PROFILE

有关 Password Verify Function 要求,请参阅管理 Autonomous Database 上的密码复杂性

CREATE TABLE

不允许使用基于 XML 方案的存储的 XMLType 表。请参阅 Oracle XML DB

将忽略以下子句:
  • cluster

  • ilm_clause

  • inmemory_table_clause

  • LOB_storage_clause

  • logging_clause

  • organization external:使用此子句具有某些限制,如手动创建的外部表中所述。

  • organization index:使用此子句不会创建按索引组织的表。创建一个具有主键的常规表。您应该测试并验证为应用程序生成的表的性能。

  • physical_properties

有关 CREATE TABLE 的更多信息,请参见 Oracle Database 19c SQL Language ReferenceOracle Database 23ai SQL Language Reference

CREATE TABLESPACE

Autonomous Database 不支持使用 SMALLFILE 表空间。

Autonomous Database 块大小固定在 8K。BIGFILE 表空间仅包含一个数据文件或临时文件,具有 8K 块的表空间的文件最大大小为 32 TB。

CREATE USER

以下子句不能与 CREATE USER 语句一起使用:
  • IDENTIFIED EXTERNALLY
  • IDENTIFIED BY VALUES

DROP TABLESPACE

仅当以以下格式使用时,才支持此命令:

DROP TABLESPACE <tablespace_name> INCLUDING CONTENTS AND DATAFILES;

如果在语法中没有 INCLUDING CONTENTS AND DATAFILES 的情况下执行此命令,则会收到以下错误:

ORA-01031: insufficient privileges

数据类型

Autonomous Database on Dedicated Exadata Infrastructure 支持 Oracle Database 中提供的大多数数据类型。为了确保 Autonomous Database 的安全性和性能,某些数据类型受到限制。

Autonomous Database 不支持或仅部分支持以下 Oracle Database 数据类型:

  • 默认情况下,专用 Exadata 基础结构部署中不启用 ROWIDUROWID 数据类型。创建表时不能指定 ROWIDUROWID 列,也不能将 ROWIDUROWID 列添加到现有表中。

    但是,可以通过将 ALLOW_ROWID_COLUMN_TYPE 初始化参数设置为 true 来启用 ROWIDUROWID。有关启用它的更多信息,请参见 Database 19c ReferenceDatabase 23ai Reference

  • 大对象 (LOB) 数据类型:仅支持 SecureFiles LOB 存储。
  • 不支持多媒体数据类型。(Oracle Multimedia 在 Oracle Database 中不受支持。)

有关 Oracle 数据类型的列表,请参见 Oracle Database 19c SQL Language Reference Oracle Database 23ai SQL Language Reference

数据库内存中

Oracle Database In-Memory(Database In-Memory,数据库内存)是一套功能,可显著提高实时分析和混合工作负载的性能。

内存中列存储(In-Memory Column Store,IM 列存储)是 Database In-Memory 的主要功能。IM 列存储以专为快速扫描而优化的压缩列格式维护表、分区和单个列的副本。IM 列存储位于内存中区域,这是系统全局区域 (system global area,SGA) 的可选部分。有关此功能的更多信息,请参阅 Database 19c In-Memory Guide Database 23ai In-Memory Guide

通过 Autonomous Database on Dedicated Exadata Infrastructure ,您可以在预配数据库时将其系统全局区 (System Global Area,SGA) 的百分比分配给内存中列存储(IM 列存储),为 Autonomous Database 启用 Database In-memory。您还可以从 Oracle Cloud Infrastructure (OCI) 控制台上的 Details 页面为现有 Autonomous Database 启用或禁用 Database In-Memory。

下面介绍了为 Autonomous Database 启用 Database In-Memory 之前和之后要注意的注意事项:

  • 仅在启用了至少 16 个 ECPU 或 4 个 OCPU 的 Autonomous Database 上支持打开或关闭内存中数据库。
  • an Autonomous Database 扩展到少于 16 个 ECPU 或 4 个 OCPU 会自动禁用该数据库的内存中数据库。
  • 还可以对从数据库实例或备份克隆的数据库启用数据库内存中功能,无论克隆源是否启用了数据库内存中功能。由于这些设置不是从克隆继承的,因此可以在克隆时或以后手动启用内存中数据库。
  • 在以下情况下,您的性能可能会降低:
    • 在启用数据库内存中时导致重新引导数据库的任何打补丁活动。
    • 在启用了 Database In-Memory 的 Autonomous Database 上重新启动自治容器数据库。
  • 如果您为 Autonomous Data Guard 设置中的主 Autonomous Database 启用了 Database In-Memory,则备用数据库也会采用相同的设置。但是,您无法在备用数据库上更改这些设置。
  • 为了更好地管理和共享底层 SGA/内存资源,Oracle 建议为 Database In-Memory 配置的所有 Autonomous Database 都位于同一自治容器数据库中。

有关详细说明,请参阅启用或禁用内存中数据库在专用 Exadata 基础结构上创建 Autonomous Database

手动创建的外部表

您可以使用 SQL CREATE TABLE...ORGANIZATION EXTERNAL 语句手动创建外部表,而不使用 DBMS_CLOUD.CREATE_EXTERNAL_TABLE 过程。当您这样做时,会有一些限制。

  • 支持 ORACLE_LOADERORACLE_BIGDATA 访问驱动程序。不支持 ORACLE_DATAPUMPORACLE_HDFSORACLE_HIVE 访问驱动程序。

  • 当前不支持分区的外部表和分区的混合表。

  • 如果要将存储在云对象存储中的文件指定为数据源位置,则必须使用云对象存储 URI 格式中所述的 URI 格式之一。

Oracle LogMiner

LogMiner 是 Oracle Database 的一部分,可用于通过 SQL 接口查询联机和归档重做日志文件。重做日志文件包含有关数据库操作历史记录的信息。

对用户数据或数据库字典所做的所有更改都记录在 Oracle 重做日志文件中以执行数据库恢复操作。由于 LogMiner 为重做日志文件提供了一个定义明确、易于使用且全面的关系接口,因此可以用作强大的数据审计工具和复杂的数据分析工具。有关 LogMiner 的主要功能,请参阅 Oracle Database 19c UtilitiesOracle Database 23ai Utilities 中的 LogMiner Benefits

Autonomous Database on Dedicated Exadata Infrastructure 支持 LogMiner,但存在以下限制:
  • 无法从 an Autonomous Database 使用 DBMS_LOGMNR.ADD_LOGFILEDBS_LOGMNR.REMOVE_LOGFILE 过程。

  • 只能使用 SCN 或时间范围参数调用 dbms_logmnr.start_logmnr 过程。随后,查询 V$LOGMNR_CONTENTS 视图将返回所连接 Autonomous Database 的指定 SCN 或时间范围中的数据。

  • 每个 Autonomous Database 只允许一个 LogMiner 会话。

  • 默认情况下,Autonomous Database 归档日志文件会保留最多
    • 对于未设置 GoldenGate 捕获和 Autonomous Data Guard 的数据库,需要 3 天时间。
    • 对于未启用 GoldenGate 捕获的 Autonomous Data Guard 数据库,需要 7 天的时间。
    • 启用了 GoldenGate 捕获的数据库需要 15 天。
    因此,根据上述列表,LogMiner 最多只能访问 3 天、7 天或 15 天的归档日志文件。

    日志文件保留期取决于数据库事务处理速率,并不总是保证达到上述指定的天数。尝试挖掘不可用日志文件时可能存在实例。在这种情况下,LogMiner 报告 ORA-1285: "error reading file"

注意:

您必须具有 GGADMIN 角色才能运行 LogMiner。有关更多详细信息,请参见 Unlock GGADMIN user

Oracle Text

下面介绍了 Autonomous Database on Dedicated Exadata Infrastructure 中对 Oracle Text 功能的支持。为了确保 Autonomous Database 的安全性和性能,某些 Oracle Text 功能受到限制。

Oracle Text 功能 Autonomous Database 支持 更多信息
执行日志记录的所有日志记录以及 API,例如 ctx_report.query_log_summary 不支持 请参阅 Oracle Database 19cOracle Database 23ai 中的 QUERY_LOG_SUMMARY
文件和 URL 数据存储 不支持 请参阅 Oracle Database 19cOracle Database 23ai 中的 Datastore Type
BIG_IO 选项的 CREATE INDEX 默认情况下不支持。英尺 1 请参阅 Oracle Database 19cOracle Database 23ai 中的使用 CONTEXT 索引的 BIG_IO 选项缩短响应时间
OPTIMIZE_INDEX 处于重建模式 默认情况下不支持。(请参阅脚注 1)。 Oracle Database 19cOracle Database 23ai 中的 OPTIMIZE_INDEX

脚注 1 如果您将创建触发器的权限授予用户 (GRANT CREATE TRIGGER),则支持此操作。还必须在会话级别 (ALTER SESSION DISABLE PARALLEL DML) 禁用并行 DML。

Oracle XML DB

下面介绍了 Autonomous Database on Dedicated Exadata Infrastructure 中对 Oracle XML DB 功能的支持。为了确保 Autonomous Database 的安全性和性能,某些 Oracle XML DB 受到限制。

注意:

如果使用 Oracle Data Pump 将包含 XMLType 列的表迁移到 Autonomous Database on Dedicated Exadata Infrastructure ,则在使用 Oracle Data Pump 导出 (expdp) 之前,需要转换为非方案二进制 XML。

支持以下功能:

  • 完全支持 XMLQuery、XMLTable 和其他 SQL/XML 标准函数

  • 索引方案,包括使用 SQL/XML 表达式的功能索引、结构化 XMLIndex 和 XQuery 全文索引

不支持或仅部分支持以下功能。

面积图 XML DB 功能 Autonomous Database 支持 更多信息
资料档案库 XML DB 协议 请参见 Repository Access Using Protocols in Oracle Database 19c or Oracle Database 23ai
资料档案库 XML DB 资源 请参阅 Oracle Database 19cOracle Database 23ai 中的 Oracle XML DB Repository Resources
资料档案库 XML DB ACL 请参阅 Oracle Database 19cOracle Database 23ai 中的 Repository Access Control
存储 XML 方案注册 请参阅 XML 方案注册以及 Oracle XML DB 19cOracle XML DB 23ai
存储 CLOB 已过时
存储 对象关系型 请参见 Oracle Database 19cOracle Database 23c 中的 XML Schema and Object-Relational XMLType
存储 二进制 XML 是(仅限非基于方案的) 请参阅 XMLType Storage Models in Oracle Database 19cOracle Database 23ai
指数 结构性 XML 索引 请参阅 XMLIndex Structured Component in Oracle Database 19c or Oracle Database 23ai
指数 XQuery 全文索引 请参阅 Oracle Database 19cOracle Database 23ai 中的为全文查询编制 XML 数据索引
指数 非结构化 XMLIndex 请参阅 XMLIndex Unstructured Component in Oracle database 19c or Oracle Database 23ai
程序包 XML DOM 程序包 请参阅 Oracle Database 19cOracle Database 23ai 中的 PL/SQL DOM API for XMLType (DBMS_XMLDOM)
程序包 XML 解析器包 请参阅 Oracle Database 19cOracle Database 23ai 中的 PL/SQL Parser API for XMLType (DBMS_XMLPARSER)
程序包 XSL 处理器 (DBMS_XSLPROCESSOR) 请参阅 Oracle Database 19cOracle Database 23ai 中的 PL/SQL XSLT Processor for XMLType (DBMS_XSLPROCESSOR)

有关 Oracle XML DB 的详细信息,请参见Oracle XML DB 19c Developer's Guide Oracle XML DB 23ai Developer's Guide

Oracle Flashback 和还原点

下面介绍了 Autonomous Database on Dedicated Exadata Infrastructure 中对 Oracle Flashback 和还原点的支持。为了确保 Autonomous Database 的安全性和性能,某些 Oracle Flashback 和还原点功能受到限制。

要将数据库还原并恢复到某个时间点,请参见 Restore and Recover

闪回和恢复点功能 Autonomous Database on Dedicated Exadata Infrastructure 中支持
DBMS_FLASHBACK 是,但 DBMS_FLASHBACK.TRANSACTION_BACKOUT 过程除外。
闪存时间移动

是,但使用带有 CREATE FLASHBACK ARCHIVEALTER FLASHBACK ARCHIVE 语句的 SET DEFAULT 子句指定默认闪回数据归档除外。

闪回删除
闪回查询
闪回表
闪回事务处理
闪回事务处理查询
闪回版本查询
还原点
保证的还原点

有关使用闪回功能的信息,请参阅关于 Oracle Database 19c 闪回技术关于 Oracle Database 23ai 闪回技术

数据库重放

您可以使用“数据库重放”来捕获生产系统上的工作量,并使用原始工作量的精确计时、并行性和事务处理特征在测试系统上重放该工作量。这样可以测试系统更改的效果而不会影响生产系统。

使用捕获生产工作量这一方法,将不必开发模拟工作量或脚本,从而显著地降低成本并节约大量时间。在数据库重放的帮助下,可以在几天内完成对需要数月使用负载模拟工具的复杂应用程序的实际测试。这使您可以快速测试更改并以更高的信心和更低的风险来采用新技术。有关数据库重放的更多信息,请参见Oracle 19c Testing GuideOracle 23ai Testing Guide 中的 Introduction to Database Replay

Oracle Autonomous Database on Dedicated Exadata Infrastructure 中使用 Real Application Testing (RAT) 的数据库重放组件与其在 Oracle Database 中的实施相同。有关将数据库重放与数据库一起使用的过程,请参见 Oracle Database 19c 中的数据库重放Oracle Database 23ai

将 Database Replay 与 Autonomous Database on Dedicated Exadata Infrastructure 一起使用时,存在一些限制和建议:
  • Oracle 建议使用连接到 Autonomous Database 的网络文件系统 (Network File System,NFS) 或文件存储系统 (File Storage System,FSS) 来存储捕获和重放文件。有关指导,请参阅 Attach Network File SystemAttach External File System
  • 对于数据库重放,重放客户机 (wrc) 可以与重放数据库相同,也可以是重放数据库较低的版本。但是,重放客户机支持的最低版本为 19.24
  • Autonomous Database 不支持 dbms_workload_capture.import_awrdbms_workload_replay.import_awr。也就是说,无法通过数据库重放导入自动工作量资料档案库 (Automatic Workload Repository,AWR) 数据。因此,建议在非自治数据库(最好是 Oracle Database 23c 实例)上生成 AWR 比较报告,以提高兼容性。

数据库 PL/SQL 程序包

下面介绍了在 Autonomous Database on Dedicated Exadata Infrastructure 中使用 PL/SQL 程序包之前、期间和之后要注意的注意事项。

列出 Autonomous Database on Dedicated Exadata Infrastructure 中包含限制和说明的 Oracle Database PL/SQL 程序包。

已删除 PL/SQL 程序包
  • DBMS_DEBUG_JDWP
  • DBMS_DEBUG_JDWP_CUSTOM
  • UTL_TCP

    注意:

    虽然 Autonomous Database on Dedicated Exadata Infrastructure 不支持 UTL_TCP 程序包,但 UTL_TCP.CRLF 常量可以与其他程序包一起用于特定实例。有关使用 UTL_TCP.CRLF 的示例,请参见 SMTP Send Email Sample Code
PL/SQL 程序包说明
  • UTL_HTTP 说明
    • 允许通过 IP 地址建立连接。
    • 缺省情况下,会启用出站端口 80 和 443。
    • 允许 HTTP、HTTPS 和 HTTP_PROXY 连接。
    • APEX_WEB_SERVICE PL/SQL 程序包在 UTL_HTTP 上分层。
    • 在调用 UTL_HTTP 子程序之前,必须先使用 SET_WALLET 子程序设置 wallet 位置。由于这是会话级别设置,因此必须在每个会话之前进行设置。有关详细信息,请参阅 Oracle Database 19c PL/SQL Packages and Types ReferenceOracle Database 23ai PL/SQL Packages and Types Reference 中的 UTL_HTTP
      BEGIN
        UTL_HTTP.SET_WALLET(path => 'file:/var/opt/oracle/dbaas_acfs/grid/tcps_wallets');
      END;
      /
  • UTL_SMTP 说明
    • 允许通过 IP 地址建立连接。
    • 默认情况下启用出站端口 25、465、587 和 2525。
    • 简单和安全 (SSL) SMTP 端点均可访问。
    • Oracle Cloud Infrastructure (OCI) 电子邮件传送服务和第三方 SMTP 服务器都支持作为电子邮件提供商。有关在第三方服务器与 Autonomous Database 租户之间建立连接的详细信息,请参阅 Oracle Cloud Infrastructure - Networking and Connectivity
    • 但是,与 Oracle Enterprise Edition 内部部署数据库不同,不能将 localhost 设置为 SMTP 服务器。平台上也禁用了 sendmail() 服务。
    • APEX_MAIL PL/SQL 程序包在 UTL_SMTP 上分层。
  • DBMS_AQADM 说明
    • DBMS_AQADM.MOVE_QUEUE_TABLE 只能在 ONLINE 模式下用于将高级队列 (Advanced Queuing,AQ) 表从一个表空间移动到另一个表空间或在同一表空间中。有关使用 19c 及更高版本上的 DBMS_AQADM.MOVE_QUEUE_TABLE 在表空间之间移动 AQ 表的指导,请参见 My Oracle Support (MOS) 简讯:文档 ID 2867445.1
    • 即使在 ONLINE 模式下,当表或方案名称区分大小写并且包含特殊标识符时,也无法使用 DBMS_AQADM.MOVE_QUEUE_TABLE 来移动 AQ 表。