Oracle 26ai新特性:时区、表空间、审计方面的新特性
1. SYSDATE 和 SYSTIMESTAMP 支持 PDB 级时区
变更内容 :SYSDATE 和 SYSTIMESTAMP 现在可以按每个 PDB(可插拔数据库)单独设置时区,而不是继承操作系统时区。
sql
-- 26ai 之前:所有 PDB 共享操作系统时区
-- 26ai 之后:可以为每个 PDB 设置独立时区
ALTER PLUGGABLE DATABASE pdb1 SET TIME_ZONE = 'Asia/Shanghai';
ALTER PLUGGABLE DATABASE pdb2 SET TIME_ZONE = 'America/New_York';
-- 查询时自动反映各自 PDB 的时区
SELECT SYSDATE, SYSTIMESTAMP FROM dual; -- 根据当前 PDB 时区返回
影响:Oracle Scheduler、Flashback 等内部功能也会遵循此设置,实现真正的多租户隔离。
2. BIGFILE 成为系统自建的默认表空间类型
变更内容 :新创建的数据库中,SYSTEM、SYSAUX 和 USER 表空间默认使用 BIGFILE 而非 SMALLFILE。
sql
-- 26ai 之前:默认 SMALLFILE,需要显式指定 BIGFILE
CREATE BIGFILE TABLESPACE users DATAFILE '/u01/...' SIZE 10G;
-- 26ai 之后:默认就是 BIGFILE,简化管理
-- 查看确认
SELECT tablespace_name, bigfile FROM dba_tablespaces
WHERE tablespace_name IN ('SYSTEM', 'SYSAUX', 'USERS');
-- 结果:BIGFILE = YES
用户自定义表空间(默认仍为 SMALLFILE)
sql
-- 26ai 中,CREATE TABLESPACE 默认仍是 SMALLFILE
-- 需要显式指定 BIGFILE
-- 默认创建 SMALLFILE(与之前版本一致)
CREATE TABLESPACE ts_data
DATAFILE '/u01/oradata/ts_data01.dbf' SIZE 10G;
-- 查看结果
SELECT tablespace_name, bigfile
FROM dba_tablespaces
WHERE tablespace_name = 'TS_DATA';
-- 结果:BIGFILE = NO
-- 显式创建 BIGFILE
CREATE BIGFILE TABLESPACE ts_big_data
DATAFILE '/u01/oradata/ts_big_data.dbf' SIZE 10G;
-- 查看结果
SELECT tablespace_name, bigfile
FROM dba_tablespaces
WHERE tablespace_name = 'TS_BIG_DATA';
-- 结果:BIGFILE = YES
收益:减少数据文件数量,简化大型数据库管理。
3. Traditional Auditing(传统审计)被移除
Traditional Auditing(传统审计)被移除,使用Unified Auditing(统一审计)替代。
完全废弃的参数和功能
| 废弃项 | 说明 | 26ai 行为 |
|---|---|---|
AUDIT_TRAIL 参数 |
控制审计是否启用及存储位置 | 参数存在但无效,强制使用统一审计 |
AUDIT_FILE_DEST |
审计文件存储目录 | 被忽略 ,统一审计使用 UNIFIED_AUDIT_TRAIL |
AUDIT_SYS_OPERATIONS |
审计 SYS 用户操作 | 强制启用,无法关闭 |
AUDIT_SYSLOG_LEVEL |
系统日志级别 | 废弃,使用统一审计策略替代 |
DB_EXTENDED 审计级别 |
捕获绑定变量 | 统一审计默认支持 |
AUDIT 语句(旧语法) |
AUDIT table; 等 |
仍支持但映射到统一审计策略 |
升级时的自动迁移
sql
-- 升级前(23ai 或更早版本)的传统审计配置
AUDIT SESSION;
AUDIT SELECT, INSERT, UPDATE, DELETE ON hr.employees BY ACCESS;
AUDIT EXECUTE ON hr.emp_pkg BY ACCESS WHENEVER SUCCESSFUL;
-- 升级到 26ai 后,Oracle 自动转换为统一审计策略
-- 可以通过以下查询查看迁移后的策略
SELECT policy_name, audit_option, condition
FROM audit_unified_policies
WHERE policy_name LIKE 'MIGRATED_%';
-- 典型输出:
-- POLICY_NAME | AUDIT_OPTION | CONDITION
-- ---------------------|--------------------|-----------
-- MIGRATED_STD_AUDIT_1 | SESSION |
-- MIGRATED_FGA_POLICY | SELECT | OBJECT_NAME='EMPLOYEES'
关键优势
| 优势 | 说明 |
|---|---|
| 不可篡改 | 审计记录存储在只读表中,即使 SYSDBA 也无法直接修改 |
| 高性能 | 批量写入+队列机制,减少 I/O 开销 |
| 完整性 | 所有审计来源(数据库、RMAN、Data Pump、Oracle Label Security等)集中存储 |
| 细粒度 | 支持复杂的审计条件和排除规则 |
| 内置清理 | 支持自动归档和清理策略 |