数据库管理-第335期 23ai:安装变化和部分小版本新特性实战(20250610)

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

数据库管理-第335期 23ai:安装变化和部分小版本新特性实战(20240610)

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

3498ff20bcec87e9052f961f06737f3.png 上一期 安装了Oracle Database 23ai测试版RAC,里面有一些部署过程中发生了一些变化,本期将做一些总结。本期也安装了一个单实例库,针对23.4-23.8的部分新增特性做一些探索。

1 23ai RAC安装

对照《 数据库管理-第七十五期 手把手教你搭19c RAC(20230516)》,在不使用AFD(ASM Filter Driver)的情况下,对于ASM使用共享存储映射磁盘的属组权限可以使用asmadmin,开启AFD则需要asmdba。 image.png image.png 而在23ai中的ASM磁盘配置中,需要将共享存储映射磁盘的属组权限配置为asmdba,这其中的变化主要来自于$ORACLE_HOME/bin/oracle的权限变化: 19c: image.png 23ai: 202506071931023309261516800_471635.png

这一变化可能是23ai想将多种ASM磁盘操作方式的部署方式统一,在23ai的安装过程中这个是我遇到的最大的问题。 当然在使用OracleLinux 8.10之前我还尝试过9.6,但是由于操作系统版本太新,会发现ASM相关很多特性无法开启,因此使用了8.10。

2 新特性探索

首先看看两个对照数据库版本,均为在对应版本DB软件新装数据库的状态: 23.4: image.png 23.8: image.png

前文可参考: 数据库管理-第225期 Oracle DB 23.5新特性一览(20240730) 数据库管理-第256期 Oracle DB 23.6新特性一览(20241031) 数据库管理-第287期 Oracle DB 23.7新特性一览(20250124) 数据库管理-第316期 Oracle DB 23.8新特性一览(20250417)

2.1 compatible

23.4: image.png 23.8: image.png

在23.7的新特性说明中,要使用23.6及以后的AI向量搜索相关的新功能与特性,则需要将数据库的兼容参数设置到23.6(后续不排除会有类似要求修改到更高的版本号上)。通过官方文档我们可以看到截止现在,使用不同DB软件版本新装数据库后compatible的默认值: image.png

2.2 HNSW

在23.6之前的版本,在有向量数据类型的表上创建HNSW索引后,表是不能进行DML操作的,23.6开始则可以了,下面做一个简单测试。首先需要调整数据库参数(以下操作均在CDB中完成):

alter system set vector_memory_size=200m scope=spfile;
shut immediate
startupalter pluggable database all open;

image.png 然后创建表、数据和索引(以下操作均在PDB中完成)。

create user vector identified by vector;
grant connect,db_developer_role to vector;
alter user vector default tablespace users quota unlimited on users;
conn vector/vector@pdb1
create table vec_tab(id number, dataVec VECTOR(3));
insert into vec_tab values (1, TO_VECTOR('[1.1, 2.2, 3.3]'));
insert into vec_tab values (2, TO_VECTOR('[2.2, 3.3, 1.1]'));
insert into vec_tab values (3, TO_VECTOR('[3.3, 1.1, 2.2]'));
commit;
CREATE VECTOR INDEX vec_tab_hnsw_idx ON vec_tab (dataVec) ORGANIZATION INMEMORY NEIGHBOR GRAPH DISTANCE COSINE WITH TARGET ACCURACY 90 PARAMETERS (type HNSW);

image.png 然后通过下面语句进行insert和update操作:

insert into vec_tab values (4, TO_VECTOR('[2.2, 3.3, 4.4]'));
update vec_tab set dataVec=TO_VECTOR('[4.4, 2.2, 3.3]') where id=1;

23.4: image.png 23.8: image.png

在使用HNSW索引的情况下并可支撑DML操作是一个非常强大的功能。

2.3 表空间收缩

这是23.7引入的新特性,可以有效回收表空间的实际占用。通过下面语句在23.8进行测试,我们假设创建的表空间已经通过删除数据降低了实际占用:

create smallfile tablespace stbs datafile size 1500m autoextend on next 500m maxsize 2g;
create table test (id number,name varchar2(20)) tablespace stbs;
insert into test values (1,'oracle');
insert into test values (2,'database');
insert into test values (3,'23ai');
commit;

image.png

  • 分析表空间
    set serveroutput on
    execute dbms_space.shrink_tablespace('STBS', shrink_mode => DBMS_SPACE.TS_SHRINK_MODE_ANALYZE);

    image.png

  • 收缩表空间至最小可能得值
    execute dbms_space.shrink_tablespace('STBS');

    image.png image.png 这里可以看到表空间已经收缩了。

  • 收缩大文件表空间至指定大小 在最新的官方文档中,不止是小文件表空间可以收缩,大文件表空间也可以收缩。
    create bigfile tablespace btbs datafile size 1500m;
    execute dbms_space.shrink_tablespace('BTBS', shrink_mode => DBMS_SPACE.TS_SHRINK_MODE_ANALYZE);
    execute dbms_space.shrink_tablespace('BTBS', target_size => 210000000); --单位byte

    image.png image.png image.png image.png

    经过测试,如果在小文件表空间使用指定大小收缩,会将数据文件恢复到初始大小。

    3 其他说明

    由于本次使用的23.8为刚刚申请的内测版本,与实际生产可用的版本是否还有区别暂时不得而知,待到可线下部署的企业版放出后,对一些细节会再进行一次梳理。

    总结

    本期简述Oracle Database 23ai测试版部署中的一些发现,针对23ai小版本更新的部分新特性进行了实战演示。 老规矩,知道写了些啥。

  • 相关推荐