database - oracle数据库,将数据文件添加到现有表空间时出错
问题描述
我想将数据文件添加到现有表空间。我正在使用的命令是:
ALTER TABLESPACE "HIGH_VOLUME"
ADD DATAFILE '/data2/oracle/oradata/CMGPERF02/hv05.dbf'
SIZE 30G AUTOEXTEND ON NEXT 100M LOGGING DEFAULT NOCOMPRESS ONLINE EXTENT
MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;
错误:
从第 28 行开始的错误命令 - ALTER TABLESPACE "HIGH_VOLUME" ADD DATAFILE '/data2/oracle/oradata/CMGPERF02/hv05.dbf' SIZE 30G AUTOEXTEND ON NEXT 100M LOGGING DEFAULT NOCOMPRESS ONLINE EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO 错误报告- ORA-00933: SQL 命令未正确结束 00933. 00000 - “SQL 命令未正确结束”
我有 sysdba 访问权限,所以我猜这可能不是与访问相关的问题。即使我在 oracle docs 网站上搜索并写了答案。
ALTER TABLESPACE lmtbsb
ADD DATAFILE '/u02/oracle/data/lmtbsb02.dbf' SIZE 1M;
我可能有语法错误。请帮我纠正它。Oracle 版本为 12.1.0.2。
谢谢
解决方案
这些文档阅读起来非常混乱,但基本上你将表空间级别的选项(如日志记录和压缩)与一个ADD DATAFILE
不起作用的子句组合在一起。唯一可以遵循的选项ADD DATAFILE
是 SIZE、REUSE 和 AUTOEXTEND。如果要更改表空间选项,请使用单独的ALTER TABLESPACE
命令。
ALTER TABLESPACE "HIGH_VOLUME"
ADD DATAFILE '/data2/oracle/oradata/CMGPERF02/hv05.dbf'
SIZE 30G
AUTOEXTEND ON NEXT 100M
-- These are tablespace options which can't be applied to single datafiles:
--LOGGING
--DEFAULT
--NOCOMPRESS
--ONLINE
--EXTENT MANAGEMENT LOCAL AUTOALLOCATE
--SEGMENT SPACE MANAGEMENT AUTO
推荐阅读
- c++11 - 进程切换是否会影响 arm9 处理器中的 std::atomic 比较和交换?
- excel - Excel vba - 如何在范围变化时复制/粘贴
- python - 用 Python 读几行
- php - setDefaultOptions() 必须与 Symfony\Component\Form\FormTypeInterface::setDefaultOptions() 兼容
- google-apps-script - 运行时卡扣失败
- atom-editor - 在 Atom 文本编辑器中运行 npm start
- multiple-columns - Kaggle比赛提交错误:键列''中的值''已被定义
- reactjs - React JS 中的虚拟 DOM 和真实 DOM 的区别?
- javascript - 与直接上传相比,使用库的 Vimeo 上传速度慢
- c# - 使用 SMS 的 ASP.NET Core 2.0 Identity 2FA,在具有多个架构的 TwoFactorSignInAsync() 之后未进行身份验证