Oracle Database 在专用 Exadata 基础结构上的自治 AI 数据库中的支持有限
基于专用 Exadata 基础结构的自治 AI 数据库支持 Oracle Database Enterprise Edition 中的大多数功能。为了确保自治 AI 数据库的安全性和性能,某些功能的支持有限。
以下 Oracle Database 功能、选件和包对自治 AI 数据库的支持有限。
| 功能、选项或包 | 限制 |
|---|---|
| 数据库内存中 | 请参见 Database In-Memory 。 |
| 快速摄取 | 请参阅快速摄取。 |
| 按指数组织的表 (IOT) | 不支持索引表,但尝试创建索引表不会生成错误。而是创建具有主键索引的按堆组织的表。因此,如果使用按索引组织的表,则应测试使用按索引组织的表的应用程序,以确认它们使用具有主键索引的按堆组织的表。 |
| Oracle Database 中的 Java(有时称为 OJVM 或数据库嵌入式 JVM) | 在 Oracle Database 中使用 Java 的数据库会话在数据库上执行服务维护操作时,数据库端性能会降低。 |
| LogMiner | 请参见 Oracle Log Miner 。 |
| 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 性能分析程序和数据库重放是 Oracle Real Application Testing (RAT) 的关键组件。根据所测试系统更改的性质和影响以及测试系统的类型,您可以使用其中一个或两个组件来执行测试,
|
| Oracle Text | 请参阅 Oracle Text 。 |
| Oracle XML DB | 请参阅 Oracle XML DB 。 |
SQL 命令
专用 Exadata 基础结构上的自治 AI 数据库允许使用 Oracle Database 中提供的大多数 SQL 命令。为了确保自治 AI 数据库的安全性和性能,某些 SQL 命令受到限制。
本节列出了在专用 Exadata 基础结构上的自治 AI 数据库中保护安全性和性能完整性所需的 SQL 命令限制。与 Oracle Database 一起使用的大多数标准 SQL 和 PL/SQL 语法和结构都在自治 AI 数据库中工作。
注:如果尝试使用受限 SQL 命令,系统将生成以下错误:
ORA-01031: insufficient privileges
此错误指示您不允许在自治 AI 数据库中运行 SQL 命令。
自治 AI 数据库不支持以下 SQL 命令和 PL/SQL 程序包:
-
ADMINISTER KEY MANAGEMENT -
SYS.DBMS_SHARED_POOL -
CREATE_LIBRARY
自治 AI 数据库中存在限制的 SQL 命令
自治 AI 数据库中提供了以下 DDL 命令,但存在限制:
| SQL 命令 | 限制 |
|---|---|
ALTER PLUGGABLE DATABASE 和 ALTER DATABASE |
仅允许使用以下条款:
|
ALTER PROFILE |
使用 ALTER PROFILE:
|
ALTER SESSION |
仅允许使用以下条款:
有关可以在专用 Exadata 基础结构上的 Oracle Autonomous AI Database 中设置的初始化参数的列表,请参阅修改数据库初始化参数。请注意,无法在会话级别设置其中一些参数。要确定是否可以使用 |
ALTER SYSTEM |
只允许使用 ALTER SYSTEM SET 和 ALTER SYSTEM KILL SESSION。SET 只能用于设置 Modifying Database Initialization Parameters 中列出的参数。 |
ALTER TABLESPACE |
自治 AI 数据库不支持使用 自治 AI 数据库块大小固定为 8K。 |
ALTER TABLE |
将忽略以下子句:
有关 |
CREATE DATABASE LINK |
在 数据库链接只能用于 TCP 连接,因为 TCPS 连接需要 wallet。 |
CREATE PROFILE |
有关 Password Verify Function 的要求,请参阅管理自治 AI 数据库上的密码复杂性。 |
CREATE TABLE |
不允许使用基于 XML 方案的存储的 将忽略以下子句:
有关 |
CREATE TABLESPACE |
自治 AI 数据库不支持使用 自治 AI 数据库块大小固定为 8K。 |
CREATE USER |
以下子句不能与 CREATE USER 语句一起使用:
|
DROP TABLESPACE |
仅当以以下格式使用时才支持此命令:
如果在语法中没有
|
数据类型
基于专用 Exadata 基础结构的自治 AI 数据库允许使用 Oracle Database 中提供的大多数数据类型。为了确保自治 AI 数据库的安全性和性能,某些数据类型受到限制。
自治 AI 数据库不支持以下 Oracle Database 数据类型或仅部分支持这些数据类型:
-
默认情况下,专用 Exadata 基础结构部署中未启用
ROWID和UROWID数据类型。在创建表时不能指定ROWID或UROWID列,也不能向现有表添加ROWID或UROWID列。但是,可以通过将
ALLOW_ROWID_COLUMN_TYPE初始化参数设置为 true 来启用ROWID或UROWID。有关启用数据库 19c 的更多信息,请参见 Database 19c Reference 或 Database 26ai Reference 。 -
大对象 (LOB) 数据类型:仅支持 SecureFile LOB 存储。
-
不支持多媒体数据类型。(Oracle Database 中不支持 Oracle Multimedia。)
有关 Oracle 数据类型的列表,请参阅 Oracle Database 19c SQL Language Reference 或 Oracle Database 26ai SQL Language Reference。
数据库内存中
Oracle Database In-Memory(Database In-Memory,数据库内存中)是一套功能,可显著提高实时分析和混合工作负载的性能。
内存中列存储(IM 列存储)是数据库内存中的关键功能。IM 列存储以专为快速扫描而优化的特殊压缩列格式维护表、分区和单个列的副本。IM 列存储位于内存区中,内存区是系统全局区 (system global area,SGA) 的可选部分。有关此功能的更多信息,请参阅 Database 19c In-Memory Guide 或 Database 26ai In-Memory Guide 。
通过基于专用 Exadata 基础结构的自治 AI 数据库,您可以在预配数据库或更高版本时将一部分系统全局区 (System Global Area,SGA) 分配给内存中列存储(IM 列存储),从而为自治 AI 数据库启用数据库内存中数据库。您还可以从 Oracle Cloud Infrastructure (OCI) 控制台上的 Details 页面为现有自治 AI 数据库启用或禁用 Database In-Memory。
下面介绍了为自治 AI 数据库启用数据库内存中之前和之后要考虑的注意事项:
-
仅在启用了至少 16 个 ECPU 或 4 个 OCPU 的自治 AI 数据库上支持打开或关闭数据库内存中。
-
将自治 AI 数据库缩减至少于 16 个 ECPU 或 4 个 OCPU 会自动为该数据库禁用内存中数据库。
-
还可以从数据库实例或备份克隆的数据库上启用数据库内存中,而不管克隆源是否启用了数据库内存中。由于这些设置不会从克隆继承,因此您可以在克隆时或以后手动启用数据库内存中。
-
在以下情况下,您可能会遇到性能下降:
-
在启用了数据库内存中的情况下导致重新引导数据库的任何打补丁活动。
-
使用启用了数据库内存中功能的自治 AI 数据库重新启动自治容器数据库。
-
-
如果在 Autonomous Data Guard 设置中为主自治 AI 数据库启用 Database In-Memory,则备用数据库也将具有相同的设置。但是,您无法在备用数据库上更改这些设置。
-
为了更好地管理和共享底层 SGA/内存资源,Oracle 建议为数据库内存中配置的所有自治 AI 数据库都位于同一自治容器数据库中。
有关详细说明,请参阅启用或禁用 Database In-Memory 或在专用 Exadata 基础结构上创建 Autonomous AI 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 AI Database 26ai Utilities 中的 LogMiner Benefits 。
专用 Exadata 基础结构上的自治 AI 数据库支持 LogMiner,但存在以下限制:
-
无法从自治 AI 数据库使用
DBMS_LOGMNR.ADD_LOGFILE和DBS_LOGMNR.REMOVE_LOGFILE过程。 -
只能使用 SCN 或时间范围参数调用
dbms_logmnr.start_logmnr过程。查询V$LOGMNR_CONTENTS视图后,将返回所连接的自治 AI 数据库的指定 SCN 或时间范围中的数据。 -
每个自治 AI 数据库仅允许一个 LogMiner 会话。
-
默认情况下,自治 AI 数据库归档日志文件保留为最多:
-
没有 GoldenGate 捕获和自治数据卫士设置的数据库需要 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
下面介绍了在专用 Exadata 基础结构上的 Autonomous AI Database 中对 Oracle Text 功能的支持。为了确保自治 AI 数据库的安全性和性能,Oracle Text 的某些功能受到限制。
| Oracle Text 功能 | Autonomous AI Database 支持 | 更多信息 |
|---|---|---|
所有日志记录以及执行日志记录的 API,例如 ctx_report.query_log_summary |
不支持 | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的 QUERY_LOG_SUMMARY |
| 文件和 URL 数据存储 | 不支持 | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的 Datastore Type |
CREATE INDEX,带有 BIG_IO 选项 |
默认情况下不支持。(请参见脚注 1) | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的使用 CONTEXT 索引的 BIG_IO 选项缩短响应时间 |
OPTIMIZE_INDEX 处于重建模式 |
缺省情况下不支持。(请参见脚注 1)。 | Oracle Database 19c 或 Oracle Database 26ai 中的 OPTIMIZE_INDEX |
脚注 1 如果您向用户授予创建触发器的权限 (GRANT CREATE TRIGGER),则支持此操作。您还必须在会话级别 (ALTER SESSION DISABLE PARALLEL DML) 禁用并行 DML。
有关 Oracle Text 的详细信息,请参阅 Oracle Text 19c Application Developer’s Guide 或 Oracle Text 26ai Application Developer’s Guide 。
Oracle XML DB
下面介绍了在专用 Exadata 基础结构上的 Autonomous AI Database 中对 Oracle XML DB 功能的支持。为了确保自治 AI 数据库的安全性和性能,一些 Oracle XML DB 受到限制。
注:如果使用 Oracle Data Pump 将包含 XMLType 列的表迁移到专用 Exadata 基础结构上的 Autonomous AI Database,则在使用 Oracle Data Pump 导出 (expdp) 之前需要先转换为非模式二进制 XML。
支持以下功能:
-
完全支持 XMLQuery、XMLTable 和其他 SQL/XML 标准函数
-
索引方案,包括使用 SQL/XML 表达式的功能索引、结构化 XMLIndex 和 XQuery 全文本索引
不支持以下功能或仅部分支持以下功能。
| 面积图 | XML DB 功能 | Autonomous AI Database 支持 | 更多信息 |
|---|---|---|---|
| 资料档案库 | XML DB 协议 | 无 | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的 Repository Access Using Protocols |
| 资料档案库 | XML DB 资源 | 无 | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的 Oracle XML DB Repository Resources |
| 资料档案库 | XML DB ACL | 无 | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的 Repository Access Control |
| 存储 | XML 模式注册 | 无 | 请参阅使用 Oracle XML DB 19c 或 Oracle XML DB 26ai 进行 XML 模式注册 |
| 存储 | CLOB | 无 | 已过时 |
| 存储 | 对象关系型 | 无 | 请参阅 Oracle Database 19c 或 Oracle Database 26c 中的 XML 方案和对象关系 XMLType |
| 存储 | 二进制 XML | 是(仅限非基于模式) | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的 XMLType Storage Models |
| 指数 | 结构化 XML 索引 | 是 | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的 XMLIndex Structured Component |
| 指数 | XQuery 全文指数 | 是 | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的为全文查询的 XML 数据编制索引 |
| 指数 | 非结构化 XMLIndex | 无 | 请参阅 Oracle database 19c 或 Oracle Database 26ai 中的 XMLIndex Unstructured Component |
| 程序包 | XML DOM 程序包 | 是 | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的 PL/SQL DOM API for XMLType (DBMS_XMLDOM) |
| 程序包 | XML 语法分析器程序包 | 是 | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的 PL/SQL Parser API for XMLType (DBMS_XMLPARSER) |
| 程序包 | XSL 处理器 (DBMS_XSLPROCESSOR) | 是 | 请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的 PL/SQL XSLT Processor for XMLType (DBMS_XSLPROCESSOR) |
有关 Oracle XML DB 的详细信息,请参阅 Oracle XML DB 19c Developer’s Guide 或 Oracle XML DB 26ai Developer’s Guide 。
Oracle Flashback 和还原点
下面介绍了在专用 Exadata 基础结构上自治 AI 数据库中对 Oracle Flashback 和还原点的支持。为了确保自治 AI 数据库的安全性和性能,Oracle Flashback 和 Restore Point 的某些功能受到限制。
要将数据库还原并恢复到某个时间点,请参见 Restore and Recover 。
| 闪回和恢复点功能 | 专用 Exadata 基础结构上的自治 AI 数据库中支持 |
|---|---|
DBMS_FLASHBACK |
是,但 DBMS_FLASHBACK.TRANSACTION_BACKOUT 过程除外。 |
| 闪回时间行程 | 可以,但使用带有 CREATE FLASHBACK ARCHIVE 和 ALTER FLASHBACK ARCHIVE 语句的 SET DEFAULT 子句指定默认闪回数据归档除外。 |
| 闪回删除 | 是 |
| 闪回查询 | 是 |
| 闪回表格 | 是 |
| 闪回事务处理 | 是 |
| 闪回事务处理查询 | 是 |
| 闪回版本的查询 | 是 |
| 还原点 | 无 |
| 保证的还原点 | 无 |
有关使用闪回功能的信息,请参阅关于 Oracle Database 19c 闪回技术或关于 Oracle Database 26ai 闪回技术。
数据库重放
可以使用“数据库重放”来捕获生产系统上的工作量,并使用原始工作量精确确定时、并行性和事务处理特征在测试系统中重放该工作量,这样可以测试系统更改的效果而不会影响生产系统。
使用捕获生产工作量这一方法,将不必开发模拟工作量或脚本,从而显著地降低成本并节约大量时间。在数据库重放的帮助下,可以在几天内完成对使用负载模拟工具耗时数月的复杂应用的真实测试。这使您可以快速测试更改并以更高的置信度和更低风险来采用新技术。有关数据库重放的更多信息,请参阅 Oracle 19c Testing Guide 或 Oracle 26ai Testing Guide 中的 Introduction to Database Replay 。
在 Oracle Autonomous AI Database on Dedicated Exadata Infrastructure 中使用 Real Application Testing (RAT) 的数据库重放组件与它在 Oracle Database 中的实施相同。有关将数据库重放与数据库一起使用的过程,请参阅 Oracle Database 19c 或 Oracle Database 26ai 中的 Database Replay 。
在专用 Exadata 基础结构上将 Database Replay 与 Autonomous AI Database 一起使用存在某些限制和建议:
-
Oracle 建议使用连接到自治 AI 数据库的网络文件系统 (Network File System,NFS) 或文件存储系统 (File Storage System,FSS) 来存储捕获和重放文件。有关指导,请参阅 Attach Network File System 和 Attach External File System 。
-
对于数据库重放,重放客户机 (wrc) 可以与重放数据库相同,也可以是重放数据库较低的版本。但是,重放客户机支持的最低版本为 19.24 。
-
自治 AI 数据库不支持
dbms_workload_capture.import_awr和dbms_workload_replay.import_awr。也就是说,无法使用数据库重放导入自动工作量资料档案库 (AWR) 数据。因此,建议您在非自治数据库(最好是 Oracle Database 26c instance )上生成 AWR 比较报告,以实现更好的兼容性。
数据库 PL/SQL 程序包
下面介绍了在专用 Exadata 基础结构上的 Autonomous AI Database 中使用 PL/SQL 程序包之前、期间和之后要考虑的注意事项。
列出在专用 Exadata 基础结构上的 Autonomous AI Database 中存在限制和附注的 Oracle Database PL/SQL 程序包。
已删除 PL/SQL 程序包
-
DBMS_DEBUG_JDWP -
DBMS_DEBUG_JDWP_CUSTOM -
UTL_TCP
注:虽然在专用 Exadata 基础结构上的自治 AI 数据库上不支持 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_SERVICEPL/SQL 程序包分层在UTL_HTTP上。 -
在调用
UTL_HTTP子程序之前,必须先使用SET_WALLET子程序设置 wallet 位置。由于这是期次级别的设置,因此必须在每个期次之前对其进行设置。有关更多信息,请参见《Oracle Database 19c PL/SQL Packages and Types Reference 》或《Oracle Database 26ai 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) Email Delivery Service 和第三方 SMTP 服务器均受电子邮件提供商支持。有关在第三方服务器与自治 AI 数据库租户之间建立连接的详细信息,请参阅 Oracle Cloud Infrastructure - 网络和连接。
-
但是,与 Oracle Enterprise Edition 内部部署数据库不同,无法将 localhost 设置为 SMTP 服务器。平台上也禁用了
sendmail()服务。 -
APEX_MAILPL/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) Note:Doc ID 2867445.1 。 -
即使在
ONLINE模式下,如果表或方案名称区分大小写并且包含特殊标识符,也无法使用DBMS_AQADM.MOVE_QUEUE_TABLE来移动 AQ 表。
-