当我尝试在我的 User_DB 模式中创建一个表时,我收到一个错误
ORA-01658: unable to create INITIAL extent for segment in tablespace TS_DATA
。我运行以下查询以获取所有TABLESPACE_NAME
:
SELECT * FROM DBA_DATA_FILES;
但我真的不知道我使用的是哪个表空间,也不知道如何扩展表空间来解决这个问题。
如错误消息所示,您正在使用
TS_DATA
表空间。您可以通过扩大现有数据文件之一来扩展它:
ALTER DATABASE
DATAFILE 'C:\ORACLEXE\APP\ORACLE\ORADATA\XE\TS_DATA.DBF'
RESIZE 3000M;
或者通过向表空间添加第二个数据文件:
ALTER TABLESPACE ts_data
ADD DATAFILE 'C:\ORACLEXE\APP\ORACLE\ORADATA\XE\TS_DATA2.DBF'
SIZE 1000M;
或者只允许数据文件自动扩展:
ALTER DATABASE
DATAFILE 'C:\ORACLEXE\APP\ORACLE\ORADATA\XE\TS_DATA2.DBF'
AUTOEXTEND ON
MAXSIZE UNLIMITED; -- Or some reasonable cap
按照sql查看现有表空间数据文件和大小
select a.file_id,b.file_name,b.autoextensible,b.bytes/1024/1024,sum(a.bytes)/1024/1024
from dba_extents a , dba_data_files b
where a.file_id=b.file_id
group by a.file_id,b.file_name,autoextensible,b.bytes/1024/1024
然后运行下面的sql,它会自动扩展数据文件大小。
ALTER DATABASE
DATAFILE '/u01/app/oracle/oradata/XE/TS_DATA.dbf'
AUTOEXTEND ON
MAXSIZE UNLIMITED;
ESTO FUNCIONO PARA MI CASO 选择 owner_name, job_name, operation, job_mode,
状态,attached_sessions
来自 dba_datapump_jobs;
数据泵查询检查
如上图所示,实际上有一个孤立的导出作业。
然后,检查当前是否没有正在运行的导出计划脚本,使用查询:
从 dba_datapump_sessions 中选择 OWNER_NAME、JOB_NAME、SESSION_TYPE;
检查当前是否有工作在运行
如上图,没有正在运行的作业……..现在让我们直接进入主要解决方案。
您需要使用以下命令删除 Master Oracle Export 表:
SQL> 删除表 SYS.HOT_DB_EXPORT;
桌子掉了。
SQL> 清除表 SYS.HOT_DB_EXPORT;
清除表 SYS.HOT_DB_EXPORT
*
第 1 行的错误:
ORA-38307: 对象不在回收站中
SQL> 清除回收站;
回收站已清除。
SQL> 删除表 system.sys_export_schema_01;
桌子掉了。
SQL> 清除表 system.sys_export_schema_01;
清除表 system.sys_export_schema_01
*
第 1 行的错误:
ORA-38307: 对象不在回收站中
SQL> 清除回收站;
回收站已清除。