数据库管理-第373期 23ai:变化,不支持的功能与参数(20251011)

来源:这里教程网 时间:2026-03-03 22:46:46 作者:

数据库管理-第373期 23ai:变化、不支持和不建议的内容(20251011)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE
10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著 名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809
IFClub:胖头鱼的鱼缸
除授权转载并标明出处外,均为“非法”抄袭

914fcc7ad57defa7868c3be1ca7fb4f5.jpg 话说都2025年第四季度了,Oracle Database 23ai还是只能在云上和Exadata/ODA上部署,除了内测版,线下部署版本仍然没有发布,着实让人心急啊。本期解读官方文档,Oracle 23ai中变化、不支持的一些内容,提前为Oracle 23ai到来做一些准备。

https://docs.oracle.com/en/database/oracle/oracle-database/23/upgrd/oracle-database-changes-deprecations-desupports.html

1 Oracle Database 23ai升级规划中的行为变更

1.1 Oracle数据库版本号的变更

数据库中VERSION、VERSION_LEGACY和VERSION_FULL版本号值提供的数据已更新。

1.1.1 基本版本

VERSION以主版本0.0.0.0的形式指定。主要发布版本基于Oracle数据库版本首 次发布年份的最后两位数字。例如,2023年首 次发布的Oracle数据库版本的主要发布版本为23,因此其版本发布为23.0.0.0.0。此基本版本发布号在发布过程中不会更新。您可以通过登录SQL*Plus并输入SELECT BANNER FROM V$VERSION来识别基本版本,以查看显示的版本。这是与COMPATIBLE初始化参数关联的值。 下面是19c和23ai的对比: image.png image.png

1.1.2 完整版本

VERSION_FULL版本由五个以句点分隔的数字段进行分类,这些数字段指定了基础数据库版本、版本更新、版本更新的刷新、发布月份和发布年份。此值在跟踪文件中可见。您可以在以下示例中看到差异,比较Oracle Database 23ai和19c之间的相同SQL命令输出。在Oracle数据库23ai的输出中,VERSION_FULL值提供了基本版本(23)、版本更新(8)、版本刷新更新(0)和年月(25.07),而Oracle数据库19c的VERSION_FUL输出仅表示基本版本和版本更新(19.3)。 下面是19c和23ai的对比: image.png image.png

1.2 Oracle空间对象和过时对象

如果以前对媒体对象使用过Oracle Multimedia或Oracle Locator,那么如果数据库中存在MDSYS拥有的Locator对象,则在升级到Oracle Database 23ai期间会安装Oracle Spatial。

如果不需要Oracle Spatial,那么为了避免在升级过程中触发Spatial安装,请在开始升级之前删除定位器对象。要删除Oracle Spatial,请在早期版本的Oracle主页中运行$ORACLE_HOME/md/admin/densisdo.sql。

如果需要Oracle Spatial,那么为了减少停机时间,请在开始升级之前手动安装Oracle Spatial。要安装Oracle Spatial,请在早期版本的Oracle主页中运行$Oracle_HOME/md/admin/mdinst.sql。

  • 对于Oracle Database 21c的升级,如果数据库中存在MDSYS schema,但Oracle Spatial(SDO)不存在,则将Oracle Locator(LCTR)安装到数据库注册表中。
  • 在升级到Oracle数据库23ai期间,Oracle Multimedia(ORDIM)将被删除。如果LCTR存在于数据库注册表中,它也会被删除。如果MDSYS模式中的Locator对象存在于数据库中,而SDO不存在,则安装SDO。
  • 如果从Oracle Database 23ai降级,则ORDIM不会作为降级的一部分进行恢复。
  • 如果从23ai降级到21c,则会重新安装LCTR。
  • 如果您在数据库注册表中将较低版本的non-CDB或存在ORDIM或LCTR或者二者均有的的PDB或插入到未安装SDO的目标23ai数据库CDB中,请在插件之前在23ai数据库的CDB$ROOT中安装SDO。

    1.3 用于AutoUpgrade的REST APIs

    为了便于安全可靠地远程使用AutoUpgrade实用程序进行Oracle数据库升级,AutoUpgrade现在提供REST API(ORDS和OCI)。

    Oracle REST Data Services(ORDS)数据库API是嵌入到Oracle REST Data Service中的数据库管理和监视REST API。通过将REST适配器连接配置为使用OCI签名版本1(OCI Signature Version 1)安全策略,可以启用Oracle云基础设施(OCI)REST API。现在,您可以使用这些功能通过SSH远程运行自动升级升级。AutoUpgrade 22及更高版本支持使用AutoUpgrade REST API。

    1.4 XML JSON搜索索引增强

    从Oracle Database 23ai开始,JSON搜索的增强可能是您升级计划的一个因素。

    完成升级测试后,为了利用Oracle Database 23ai中引入的XML搜索索引增强功能,您可能需要计划在将COMPATIBLE参数更新为23.0.0.0后重新创建Oracle文本索引和JSON搜索索引。但是,现有的XQuery全文索引没有功能更改。即使更新了COMPATIBLE设置,这些索引仍将可用。

    更新COMPATIBLE参数设置后,现有的JSON搜索索引将被视为包括所有可用路径。未重新创建的现有JSON搜索索引将保持可用。Oracle数据库21c中引入了路径感知JSON搜索索引,因此对JSON搜索索引的升级更改以启用路径感知已经作为Oracle数据库21c升级的一部分进行了处理。Oracle Database 23ai引入的XML搜索索引和INCLUDE路径子句功能将要求将数据库兼容设置设置为23.0.0.0.0。

    您在以前版本中使用的索引语法仍然可用。然而,即使不更改兼容性设置,Oracle Database 23ai为现有索引功能引入的语法也将可用。但是,对于JSON搜索索引,只有在JSON类型列上创建索引后,VALUE模式和路径子集功能才可用。

    将COMPATIBLE升级到23.0.0.0.0后,在以下情况下会阻止数据库降级:

  • 在存在XML搜索索引的情况下
  • 在存在XML或JSON搜索索引的情况下,使用路径子集

    1.5 具有JSON布尔值的SQL/JSON函数JSON_VALUE

    从Oracle Database 23ai开始,数据类型BOOLEAN被添加到Oracle SQL中。此功能扩展了SQL/JSON运算符,允许返回BOOLEAN值或接受一个值作为输入。

    将COMPATIBLE参数更新为23.0.0.0后,SQL/JSON路径表达式项方法boolean()和booleanOnly()现在返回一个SQL boolean值。这意味着,在具有json_value语义的查询中,默认情况下,item方法生成的值的类型为BOOLEAN:该值的处理方式就像它由BOOLEAN类型的json_value RETURNING子句控制一样。

    在早期版本中,这些方法返回VARCHAR2(20)值“true”或“false”。如果需要获取VARCHAR2值(例如出于兼容性原因),则可以用SQL函数to_char包装该值。

    1.6 升级前从FIPS中的非AES算法迁移

    如果使用透明数据加密(TDE),则必须在开始升级到Oracle database 23ai之前将源数据库迁移到AES加密。

    在Oracle Database 23ai中,当您使用为联邦信息处理标准(the Federal Information Processing Standard,FIPS)配置的透明数据加密(TDE)时,只允许使用高级加密标准(AES)密码AES-128、AES-192和AES-256。如果您的源Oracle数据库配置为FIPS模式,并且它正在使用任何其他算法来加密列或表空间,那么在升级之前,必须使用AES对列和表空间进行重新加密。

    如果您升级了源数据库,并且它使用了不支持的加密算法,那么升级后的数据库将无法启动,或者加密的表空间将不可用,因为数据库无法解密表空间密钥。在这种情况下,Oracle建议您降级数据库,将加密密钥升级到支持的AES密码,然后重新启动升级。

    1.7 Oracle OLAP弃用扩展

    分析工作区(Analytic workspaces)、OLAP DML编程语言、财务报告和OLAP Java API在23ai中继续不建议使用。

    请注意,在当前版本(Oracle Database 23ai)的首要支持期限之后,OLAP将不受支持。Oracle强烈建议您不要使用OLAP启动新项目,现在就开始将使用OLAP的应用程序迁移到替代方案。如果您的应用程序需要数据库内维度模型,那么可以考虑使用Oracle分析视图。分析视图使用Oracle数据库中的数据提供维度语义模型、计算和查询语义。当与列式表一起使用时,分析视图提供的查询性能类似于OLAP选项。如果您的应用程序需要支持高级维度分析、假设分析或预测,那么可以考虑Oracle Essbase。Oracle Essbase是一个多维数据库管理系统,支持复杂的多维业务分析。

    1.8 只读家目录

    默认情况下Oracle家目录(Home)以读/写模式可用。但是,在执行纯软件Oracle数据库安装后,您可以选择以只读模式配置Oracle家目录。只读Oracle家目录并不意味着文件系统和Oracle家目录处于只读模式。文件系统和挂载点应始终处于读/写模式。只读Oracle家目录通过实现安装和配置的分离简化了资源调配。在只读Oracle家目录中,配置数据和日志文件位于只读Oracle家目录之外。 除了传统的ORACLE_BASE和ORACLE_HOME目录外,以下目录还包含以前在ORACLE_HOMEs中的文件:

  • ORACLE_BASE_HOME
  • ORACLE_BASE_CONFIG

    在创建数据库或侦听器之前,请确保启用只读Oracle家目录。当您运行roohctl脚本以启用只读Oracle家目录文件时,Oracle家目录文件系统将继续是读/写文件系统。

    1.9 SYSDATE和SYSTIMESTAMP显示PDB时区

    从23ai开始,SYSDATE和SYSTIMESTAMP可以根据单独的数据库时区设置,为每个数据库单独管理。

    为了提高多租户的适用性和透明度,以进一步整合独立数据库,现在可以CD中的数据库单独管理PDB。所有用户可见的操作和内部功能(例如,Oracle Scheduler或Oracle Flashback技术)都遵循此设置。

    在以前的版本中,SYSDATE和SYSTIMESTAMP设置是按照数据库主机的操作系统级别集中管理的。通过此更新,Oracle多租户使Oracle数据库能够将多个可插拔数据库整合为自包含的数据库,从而提高资源利用率和数据库管理。如果升级后不更改初始化参数,则默认值保持不变,所有可插拔数据库都会从操作系统继承系统时间。

    1.10 基于4-band Raster块的Oracle Spatial GeoRaster JPEG压缩

    1.11 二元性视图的文档标识符字段名称要求

    23ai开始,发布更新23.4,当您使用二元视图时,文档标识符字段名称必须是_id。 name _id是可用于二元性视图的必需(也是唯一)文档标识符。无法创建不使用_id标识符字段二元性视图。此限制适用于Oracle数据库23ai(23.4)和更高版本的更新。

    1.12 SYSTEM、SYSAUX和USERS默认大文件表空间

    1.13 Stored Outlines的终结版本

    23ai是Stored Outlines的终结版本。将所有Stored Outlines的终结迁移到SQL计划基线。 Oracle Database 11g中已弃用Stored Outlines。Oracle正准备停止对Stored Outlines的进一步支持。使用SQL计划管理基线提供了替代功能,该基线提供了许多增强功能。

    2 不再支持的功能

  • ODP.NET的OracleConfiguration.DirectoryType Property和.NET的Configuration File DIRECTORY_TYPE配置不再被支持
  • exp不再被支持
  • 用于Oracle的MySQL客户端库驱动不再被支持
  • acfsutil repl reverse命令不再被支持 由repl failover或repl switchover替代
  • Domain Services Clusters (DSC)不再被支持
  • 用于自适应阈值的DBSNMP包不再被支持
  • Policy-Managed数据库部署不再被支持
  • 企业级用户安全(Enterprise User Security,EUS)中的用户迁移(User Migration Utility,UMU)部分不再被支持
  • EM Express不再被支持
  • Oracle Wallet Manager (OWM) 不再被支持
  • The Real Application Security GUI administration tool (RASADM) 不再被支持
  • Oracle Label Security参数和函数不再被支持
  • 带有Oracle Label Security (OLS)的Oracle Internet Directory(OID)集成不再被支持
  • 向RADIUS赋予管理权限不再被支持
  • 透明数据加密的public key infrastructure (PKI)不再被支持
  • GOST和SEED算法的透明数据加密(TDE)加密库不再被支持支持并删除。GOST和SEED解密库已弃用
  • Oracle 10g密码验证不再被支持
  • Transport Layer Security版本1.0和1.1不再被支持
  • Unix Crypt (MD5crypt) 密码验证不再被支持
  • FIPS Strength 80加密不再被支持
  • Diffie-Hellman Anonymous Ciphers不再被支持
  • 用于.NET的Oracle数据库扩展不再被支持
  • Oracle服务质量管理(QoSM, or QoS Management)不再被支持
  • 传统审计不再被支持
  • config.sh不再被支持
  • OLS表的LABELS列不再被支持
  • 32位Oracle客户端不再被支持
  • OGG的Oracle全球分布式数据库高可用不再被支持
  • Grid Infrastructure Management Repository (GIMR)不再被支持
  • Data Recovery Advisor (DRA)不再被支持
  • DBUA和手动升级方式不再被支持
  • 真实应用测试(Oracle Real Application Testing)的数据屏蔽和子集不再被支持
  • Shared Grid Naming Service的地址选项不再被支持
  • DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL存储过程不再被支持
  • AUDIT_TRAIL_PROPERTY参数的AUDIT_TRAIL_WRITE模式不再被支持
  • 集群时间同步服务不再被支持
  • Oracle Connection Manager Parameter (CMAN) 密码访问不再被支持
  • Enterprise User Security (EUS) DBLINK不再被支持
  • oracle.jdbc.rowset包不再被支持
  • IBM AIX系统上的ACFS不再被支持
  • RECOVER…SNAPSHOT TIME不再被支持
  • Oracle ASM Filter Driver (ASMFD)不再被支持

    3 不再支持的参数

  • SYS_CONTEXT USERENV中的EXTERNAL_NAME参数不再被支持
  • 服务(service)属性值SESSION_STATE_CONSTRESTENCY=STATIC不再被支持
  • ENCRYPTION_WALLET_LOCATION参数不再被支持
  • ADD_SSLV3_TO_DEFAULT SQLNET.ORA 参数(和SSLv3)不再被支持
  • OPTIMIZER_SECURE_VIEW_MERGING参数不再被支持

    总结

    本期对Oracle 23ai中的变化,不支持的功能与参数进行了总结。 23ai的官方文档中有一个让人比较惊喜的地方是,当官方文档增加新内容后,会单独标注一个日期,方便大学对比学习。 老规矩,知道写了些啥。

  • 相关推荐