从Oracle数据库导出大型数据

从Oracle数据库导出大型数据,oracle,csv,amazon-s3,export,Oracle,Csv,Amazon S3,Export,我们尝试使用OracleSQLDeveloper的数据导出,但执行导出需要很长时间(超过4小时且仍在运行) 有人会建议从Oracle为大型数据源更快地下载数据吗 最终,我们希望从Oracle导出到AmazonS3。通常我们将文件导出到CSV,然后将数据上载到S3。我会下载Oracle数据库工具windows版,并使用export(exp.exe)进行任何大型处理。将direct=y选项放入将绕过sql评估阶段,并极大地提高吞吐量。此外,导出对于网络流量更为有效,因为它缓冲了您可以设置的数据,如图

我们尝试使用OracleSQLDeveloper的数据导出,但执行导出需要很长时间(超过4小时且仍在运行)

有人会建议从Oracle为大型数据源更快地下载数据吗


最终,我们希望从Oracle导出到AmazonS3。通常我们将文件导出到CSV,然后将数据上载到S3。

我会下载Oracle数据库工具windows版,并使用export(exp.exe)进行任何大型处理。将direct=y选项放入将绕过sql评估阶段,并极大地提高吞吐量。此外,导出对于网络流量更为有效,因为它缓冲了您可以设置的数据,如图所示

exp user/pwd@tnsname file=file.dmp direct=y buffer=10000000
然后可以使用等效导入工具(imp.exe)将数据导入备份

imp user/pwd@tnsname file=file.dmp
这两种工具都有很多选择,一个好的起点是:


什么是“大”数据(比如GB数据)?您的会话正在等待什么?我的猜测是,您正在客户端计算机上运行SQL Developer,并且您的大多数等待事件都与网络相关,因为您正在最大化客户端和服务器之间的带宽。是否可以在服务器上运行导出(在服务器计算机上运行SQL Developer,或通过
utl_file
生成文件,或在服务器上运行Tom Kyte的SQL卸载实用程序)?那么您就不依赖于客户端和服务器之间的网络连接。很遗憾,我们没有服务器访问权限。如果是网络问题,而我们没有访问服务器的权限,那么我们是否被卡住了?如果网络是瓶颈,而您无法消除瓶颈,那么您可能会被卡住。在sqldeveloper中更改fetch大小可能会产生影响,但除非您使用的是速度非常慢的广域网,否则影响不大。