无法在CTAS上扩展临时段

时间:2012-07-24 11:26:15

标签: oracle11gr2 tablespace

在我开始之前,如果有人知道更好的方法,请分享,因为我在数据泵上遇到大量问题,因为它挂在表空间上,当我检查表空间报告时,我看不到任何内容被填充。

我正在尝试从生产到PRE_PRED同时CTAS少量表(从@数据库链接创建表)。

表大小分别为29 GB,29GB,35GB 索引大小分别为10GB,11GB,13GB 临时表空间为256 GB

表空间数据被复制到具有340 GB的数据。

伪代码

create table A 
compress basic
nologging
nomonitoring
tablespace PRE_PRED.A 
parallel (degree defasult instances default)
as select * from B@database link;

我一直在unable to extend temp segment in PRE_PRED.A tablespace,因为我可以看到TEMP和指定的表空间中有足够的空间。

问题请告诉我...谢谢

1 个答案:

答案 0 :(得分:1)

最好的方法是使用数据泵,这应该不难。

首先将所需的表导出到目标数据库服务器上的文件

expdp system dumpfile=MY_TABLES.dmp logfile=MY_TABLES.log exclude=statistics tables=owner.a, owner.b, owner.c

现在将此文件复制到源数据库服务器,然后导入表,根据需要更改所有者和表空间(如果您不需要删除重映射选项)。

impdp system dumpfile=MY_TABLES.dmp logfile=MY_TABLES_IMPORT.log tables=owner.a, owner.b, owner.c remap_schema=owner:newowner remap_tablespace=tablespace:newtbspce

这会更快,网络和数据库的负载也会更少。

如果需要,您也可以使用数据库链接直接从源数据库中获取带有impdb的表(但我不会自己使用它,除非表格非常小​​,然后CTAS无论如何都会工作)。

impdp system logfile=MY_TABLES_IMPORT.log tables=owner.a, owner.b, owner.c remap_schema=owner:newowner remap_tablespace=tablespace:newtbspce network_link=dblink