一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

如何创建Oracle本地管理表空间

时间:2026-08-18 09:40:49 编辑:袖梨 来源:一聚教程网

必须用 EXTENT MANAGEMENT LOCAL,Oracle 10g起字典管理已废弃,漏写该子句会报ORA-01430错误;它须紧接DATAFILE子句后、SEGMENT SPACE MANAGEMENT前,且不可与DEFAULT STORAGE混用。

必须用 EXTENT MANAGEMENT LOCAL

Oracle 10g 起已彻底废弃字典管理表空间,CREATE TABLESPACE 语句中不显式指定 EXTENT MANAGEMENT LOCAL 会直接报错 ORA-01430 或拒绝执行。这不是可选项,是硬性要求。

常见错误是照搬旧脚本、漏写该子句,或误写成 EXTENT MANAGEMENT DICTIONARY(该语法在 12c+ 已不可用)。

  1. 必须跟在 DATAFILE 子句之后、SEGMENT SPACE MANAGEMENT 之前
  2. 不能与 DEFAULT STORAGE 混用——本地管理表空间不支持手动设置 PCTUSEDINITIAL 等参数
  3. 一旦创建,无法从字典管理切换为本地管理,只能重建表空间

SEGMENT SPACE MANAGEMENT AUTO 是推荐但非强制项

启用位图管理(AUTO)能自动处理空闲块,避免因 PCTUSED/FREELISTS 配置不当导致的高水位线卡死、插入性能骤降等问题。但若兼容老应用或需精细控制,也可用 MANUAL

区别在于:

  1. AUTO:依赖位图跟踪块使用状态,无需人工干预,INSERTUPDATE 更稳定
  2. MANUAL:依赖 freelists/freelist groups,易因并发写入争用而出现 enq: TX - allocate ITL entry 等等待
  3. 切换方式不存在——创建后无法修改,只能 DROP + RECREATE

数据文件路径和权限常被忽略

ORA-01119ORA-27040 这类错误几乎全是路径问题:Oracle 进程(通常是 oracle 用户)对指定目录无写权限,或父目录根本不存在。

  1. 不要用 Windows 风格路径如 D:oracle... 在 Linux/Unix 环境下——即使 SQL*Plus 不报错,实例启动时也会失败
  2. 确保 /u01/oradata/ORCL/ 这类路径由 DBA 提前 mkdir -pchown oracle:oinstall
  3. 文件名建议带 .dbf 后缀,虽非强制,但避免与控制文件、归档日志命名冲突

大文件表空间(BIGFILE)有严格限制

当单表空间预期超过 4TB,才考虑 CREATE BIGFILE TABLESPACE。它简化管理,但代价明确:

  1. 一个 BIGFILE 表空间只能含**一个**数据文件,ALTER TABLESPACE ... ADD DATAFILE 会报错 ORA-32771
  2. 不能与普通(SMALLFILE)表空间混用同一套管理逻辑,比如无法在 BIGFILE 上建临时段用于排序
  3. DBA_DATA_FILES 视图中 FILE_NAME 显示为完整路径,但 FILE_ID 可能远超常规范围(>1023),影响某些备份脚本兼容性

实际创建时最容易卡在路径权限和 EXTENT MANAGEMENT LOCAL 的拼写细节上,而不是语法结构本身。

热门栏目