2

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

我正在尝试同时从生产到 PRE_PRED 的 CTAS 几个表(从@database 链接中选择创建表)。

表大小为 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 和指定的表空间中有足够的空间。

问题请告诉我...谢谢

4

1 回答 1

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
于 2012-09-06T09:32:33.040 回答