我尝试将table1
中的数据插入现有表格table2
。
table1有3000万条记录。使用以下命令插入数据。一段时间后得到了给定的错误。
insert into TABLE2 (select * from TABLE1)
Error at Command Line:31 Column:0
Error report:
SQL Error: ORA-30036: unable to extend segment by 8 in undo tablespace 'UND_TBS'
30036. 00000 - "unable to extend segment by %s in undo tablespace '%s'"
它显示了the specified undo tablespace has no more space available.
在重试操作之前,我该怎么办。是否有其他可用的解决方法可以成功插入数据?
答案 0 :(得分:7)
作为@a_horse_with_no_name commented out,
我创建了一个新的数据文件,保持autoextend
开启。
alter tablespace UND_TBS add datafile '/path/my_data_file.dbf' size 7168M autoextend on;
可以通过
识别路径select file_name from dba_data_files where tablespace_name ='UND_TBS';
您可以通过
获取表空间的最大/可用大小SELECT b.tablespace_name,
tbs_size SizeMb,
a.free_space FreeMb
FROM
(SELECT tablespace_name,
ROUND(SUM(bytes)/1024/1024 ,2) AS free_space
FROM dba_free_space
GROUP BY tablespace_name
) a,
(SELECT tablespace_name,
SUM(bytes)/1024/1024 AS tbs_size
FROM dba_data_files
GROUP BY tablespace_name
) b
WHERE a.tablespace_name(+)=b.tablespace_name;