在我开始之前,如果有人知道更好的方法,请分享,因为我在数据泵上遇到大量问题,因为它挂在表空间上,当我检查表空间报告时,我看不到任何内容被填充。
我正在尝试从生产到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和指定的表空间中有足够的空间。
问题请告诉我...谢谢
答案 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