将Oracle表从一个数据库复制到没有DBLink的其他数据库

时间:2016-03-19 11:26:59

标签: database oracle sql-loader

我需要将表从一个oracle数据库复制到另一个oracle数据库。我正在使用SQLLDR,因为我没有DB链接。

由于表格大小非常大(大约160 GB),平面文件中的提取数据需要大约4-5小时,我在unix框中也面临storge问题,而通过sqlldr加载也需要花费大量时间。

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

如果您正在使用Oracle 10G(或更高版本),则可以利用Oracle Data Pump实用程序,该实用程序允许您动态导出/导入数据库。根据Oracle数据库版本,您可以查看官方Oracle文档,其中包含有关如何执行数据库导出/导入操作的示例。

答案 1 :(得分:0)

通过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 

答案 2 :(得分:0)

如果您不能使用DBLink并且无法使用数据泵,则可以使用ETL工具(例如Pentaho Data Integration)作为简单选项。