在 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) |
支持:
|
Oracle Real Application Testing |
SQL Performance Analyzer 和 Database Replay 是 Oracle Real Application Testing (RAT) 的关键组件。可以使用其中一个或两个组件来执行测试,具体取决于所测试的系统更改的性质和影响以及测试系统的类型。
|
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 PROFILE :
|
|
只允许使用以下子句:
有关可以在 Oracle Autonomous Database on Dedicated Exadata Infrastructure 中设置的初始化参数的列表,请参阅修改数据库初始化参数。请注意,您无法在会话级别设置其中的某些参数。要确定是否可以使用 |
|
只允许使用 |
|
Autonomous Database 不支持使用 Autonomous Database 块大小固定在 8K。 |
|
将忽略以下子句:
有关 |
|
在 数据库链接只能用于 TCP 连接,因为 TCPS 连接需要 wallet。 |
|
有关 |
|
不允许使用基于 XML 方案的存储的 将忽略以下子句:
有关 |
|
Autonomous Database 不支持使用 Autonomous Database 块大小固定在 8K。 |
|
以下子句不能与 CREATE USER 语句一起使用:
|
|
仅当以以下格式使用时,才支持此命令:
如果在语法中没有
|
数据类型
Autonomous Database on Dedicated Exadata Infrastructure 支持 Oracle Database 中提供的大多数数据类型。为了确保 Autonomous Database 的安全性和性能,某些数据类型受到限制。
Autonomous Database 不支持或仅部分支持以下 Oracle Database 数据类型:
-
默认情况下,专用 Exadata 基础结构部署中不启用
ROWID
和UROWID
数据类型。创建表时不能指定ROWID
或UROWID
列,也不能将ROWID
或UROWID
列添加到现有表中。但是,可以通过将
ALLOW_ROWID_COLUMN_TYPE
初始化参数设置为 true 来启用ROWID
或UROWID
。有关启用它的更多信息,请参见 Database 19c Reference 或 Database 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_LOADER
和ORACLE_BIGDATA
访问驱动程序。不支持ORACLE_DATAPUMP
、ORACLE_HDFS
和ORACLE_HIVE
访问驱动程序。 -
当前不支持分区的外部表和分区的混合表。
-
如果要将存储在云对象存储中的文件指定为数据源位置,则必须使用云对象存储 URI 格式中所述的 URI 格式之一。
Oracle LogMiner
LogMiner 是 Oracle Database 的一部分,可用于通过 SQL 接口查询联机和归档重做日志文件。重做日志文件包含有关数据库操作历史记录的信息。
对用户数据或数据库字典所做的所有更改都记录在 Oracle 重做日志文件中以执行数据库恢复操作。由于 LogMiner 为重做日志文件提供了一个定义明确、易于使用且全面的关系接口,因此可以用作强大的数据审计工具和复杂的数据分析工具。有关 LogMiner 的主要功能,请参阅 Oracle Database 19c Utilities 或 Oracle Database 23ai Utilities 中的 LogMiner Benefits 。
-
无法从 an Autonomous Database 使用
DBMS_LOGMNR.ADD_LOGFILE
和DBS_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 报告
ORA-1285: "error reading file"
。
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 19c 或 Oracle Database 23ai 中的 QUERY_LOG_SUMMARY |
文件和 URL 数据存储 | 不支持 | 请参阅 Oracle Database 19c 或 Oracle Database 23ai 中的 Datastore Type |
带 BIG_IO 选项的 CREATE INDEX
|
默认情况下不支持。英尺 1 | 请参阅 Oracle Database 19c 或 Oracle Database 23ai 中的使用 CONTEXT 索引的 BIG_IO 选项缩短响应时间 |
OPTIMIZE_INDEX 处于重建模式
|
默认情况下不支持。(请参阅脚注 1)。 | Oracle Database 19c 或 Oracle Database 23ai 中的 OPTIMIZE_INDEX |
脚注 1 如果您将创建触发器的权限授予用户 (GRANT CREATE TRIGGER
),则支持此操作。还必须在会话级别 (ALTER SESSION DISABLE PARALLEL DML
) 禁用并行 DML。
有关 Oracle Text 的详细信息,请参见Oracle Text 19c Application Developer's Guide 或 Oracle Text 23ai Application Developer's Guide 。
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 19c 或 Oracle Database 23ai 中的 Oracle XML DB Repository Resources |
资料档案库 | XML DB ACL | 无 | 请参阅 Oracle Database 19c 或 Oracle Database 23ai 中的 Repository Access Control |
存储 | XML 方案注册 | 无 | 请参阅 XML 方案注册以及 Oracle XML DB 19c 或 Oracle XML DB 23ai |
存储 | CLOB | 无 | 已过时 |
存储 | 对象关系型 | 无 | 请参见 Oracle Database 19c 或 Oracle Database 23c 中的 XML Schema and Object-Relational XMLType |
存储 | 二进制 XML | 是(仅限非基于方案的) | 请参阅 XMLType Storage Models in Oracle Database 19c 或 Oracle Database 23ai |
指数 | 结构性 XML 索引 | 是 | 请参阅 XMLIndex Structured Component in Oracle Database 19c or Oracle Database 23ai |
指数 | XQuery 全文索引 | 是 | 请参阅 Oracle Database 19c 或 Oracle Database 23ai 中的为全文查询编制 XML 数据索引 |
指数 | 非结构化 XMLIndex | 无 | 请参阅 XMLIndex Unstructured Component in Oracle database 19c or Oracle Database 23ai |
程序包 | XML DOM 程序包 | 是 | 请参阅 Oracle Database 19c 或 Oracle Database 23ai 中的 PL/SQL DOM API for XMLType (DBMS_XMLDOM) |
程序包 | XML 解析器包 | 是 | 请参阅 Oracle Database 19c 或 Oracle Database 23ai 中的 PL/SQL Parser API for XMLType (DBMS_XMLPARSER) |
程序包 | XSL 处理器 (DBMS_XSLPROCESSOR) | 是 | 请参阅 Oracle Database 19c 或 Oracle 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 过程除外。
|
闪存时间移动 |
是,但使用带有 |
闪回删除 | 是 |
闪回查询 | 是 |
闪回表 | 是 |
闪回事务处理 | 是 |
闪回事务处理查询 | 是 |
闪回版本查询 | 是 |
还原点 | 无 |
保证的还原点 | 无 |
有关使用闪回功能的信息,请参阅关于 Oracle Database 19c 闪回技术或关于 Oracle Database 23ai 闪回技术。
数据库重放
您可以使用“数据库重放”来捕获生产系统上的工作量,并使用原始工作量的精确计时、并行性和事务处理特征在测试系统上重放该工作量。这样可以测试系统更改的效果而不会影响生产系统。
使用捕获生产工作量这一方法,将不必开发模拟工作量或脚本,从而显著地降低成本并节约大量时间。在数据库重放的帮助下,可以在几天内完成对需要数月使用负载模拟工具的复杂应用程序的实际测试。这使您可以快速测试更改并以更高的信心和更低的风险来采用新技术。有关数据库重放的更多信息,请参见Oracle 19c Testing Guide 或 Oracle 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 。
- Oracle 建议使用连接到 Autonomous Database 的网络文件系统 (Network File System,NFS) 或文件存储系统 (File Storage System,FSS) 来存储捕获和重放文件。有关指导,请参阅 Attach Network File System 和 Attach External File System 。
- 对于数据库重放,重放客户机 (wrc) 可以与重放数据库相同,也可以是重放数据库较低的版本。但是,重放客户机支持的最低版本为 19.24 。
- Autonomous Database 不支持
dbms_workload_capture.import_awr
和dbms_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 程序包。
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 。
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 Reference 或 Oracle 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 表。