我需要将表从一个oracle数据库复制到另一个oracle数据库。我使用SQLLDR做同样的事情,因为我没有DB链接。
由于表非常大(大约160 GB),在平面文件中提取数据需要大约4-5个小时,我在unix box也面临存储问题,通过sqlldr加载也需要很长时间。
有没有人能在同样的问题上帮我?
发布于 2016-03-19 19:46:39
如果您使用的是Oracle10G(或更高版本),则可以利用Oracle数据泵实用程序,该实用程序允许您动态导出/导入带有压缩的数据库。根据Oracle数据库版本的不同,您可以查看Oracle官方文档,其中包含如何执行数据库导出/导入操作的示例。
发布于 2016-03-23 23:12:53
通过sql、output或spool将数据提取到unix命名管道,并立即启动另一个会话,从命名管道加载sqlldr……
user@box> mkfifo my.fifo.pipe
user@box> sqlplus -s user/pwd@sourceservice @script-spooling-to-my.fifo.pipe
<ANOTHER UNIX SESSION>
user@box> sqlldr userid=user/pwd@destinationservice control=.... data=my.fifo.pipe
发布于 2016-03-23 23:26:12
如果你不能使用DBLinks,也不能使用datapump,你可以使用一个ETL工具,例如Pentaho Data Integration或其他,作为一个简单的选项。
https://stackoverflow.com/questions/36101120
复制相似问题