最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何创建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+ 已不可用)。
- 必须跟在
DATAFILE子句之后、SEGMENT SPACE MANAGEMENT之前 - 不能与
DEFAULT STORAGE混用——本地管理表空间不支持手动设置PCTUSED、INITIAL等参数 - 一旦创建,无法从字典管理切换为本地管理,只能重建表空间
SEGMENT SPACE MANAGEMENT AUTO 是推荐但非强制项
启用位图管理(AUTO)能自动处理空闲块,避免因 PCTUSED/FREELISTS 配置不当导致的高水位线卡死、插入性能骤降等问题。但若兼容老应用或需精细控制,也可用 MANUAL。
区别在于:
-
AUTO:依赖位图跟踪块使用状态,无需人工干预,INSERT和UPDATE更稳定 -
MANUAL:依赖 freelists/freelist groups,易因并发写入争用而出现enq: TX - allocate ITL entry等等待 - 切换方式不存在——创建后无法修改,只能
DROP+RECREATE
数据文件路径和权限常被忽略
ORA-01119 和 ORA-27040 这类错误几乎全是路径问题:Oracle 进程(通常是 oracle 用户)对指定目录无写权限,或父目录根本不存在。
- 不要用 Windows 风格路径如
D:oracle...在 Linux/Unix 环境下——即使 SQL*Plus 不报错,实例启动时也会失败 - 确保
/u01/oradata/ORCL/这类路径由 DBA 提前mkdir -p并chown oracle:oinstall - 文件名建议带
.dbf后缀,虽非强制,但避免与控制文件、归档日志命名冲突
大文件表空间(BIGFILE)有严格限制
当单表空间预期超过 4TB,才考虑 CREATE BIGFILE TABLESPACE。它简化管理,但代价明确:
- 一个
BIGFILE表空间只能含**一个**数据文件,ALTER TABLESPACE ... ADD DATAFILE会报错ORA-32771 - 不能与普通(
SMALLFILE)表空间混用同一套管理逻辑,比如无法在BIGFILE上建临时段用于排序 -
DBA_DATA_FILES视图中FILE_NAME显示为完整路径,但FILE_ID可能远超常规范围(>1023),影响某些备份脚本兼容性
实际创建时最容易卡在路径权限和 EXTENT MANAGEMENT LOCAL 的拼写细节上,而不是语法结构本身。