我需要将表从一个oracle数据库复制到另一个oracle数据库。我正在使用SQLLDR,因为我没有DB链接。
由于表格大小非常大(大约160 GB),平面文件中的提取数据需要大约4-5小时,我在unix框中也面临storge问题,而通过sqlldr加载也需要花费大量时间。
任何人都可以帮助我吗?
答案 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)作为简单选项。