2016-03-19 20 views
0

我需要將表從一個oracle數據庫複製到另一個oracle數據庫。我正在使用SQLLDR,因爲我沒有DB鏈接。由於表格大小非常龐大(大約160 GB),平面文件中的提取數據需要大約4-5小時,我還面臨unix盒子的存儲問題,並且通過sqlldr加載也需要大量時間。將Oracle表從一個數據庫複製到沒有DBLink的其他數據庫中

任何人都可以幫助我一樣嗎?

回答

1

如果您使用的是Oracle 10G(或更高版本),則可以利用Oracle Data Pump實用程序,該實用程序將允許您通過即時壓縮方式導出/導入數據庫。根據Oracle數據庫版本的不同,您可以查看官方Oracle文檔,其中包含如何執行數據庫導出/導入操作的示例。

+0

謝謝。但我沒有權限在SQL Plus中創建目錄。你有其他的選擇嗎? – Pravin

0

通過SQL,輸出或閥芯數據提取到一個UNIX命名管道,並立即開始從命名管道SQLLDR加載另一個會話...

[email protected]> mkfifo my.fifo.pipe 
[email protected]> sqlplus -s user/[email protected] @script-spooling-to-my.fifo.pipe 

<ANOTHER UNIX SESSION> 
[email protected]> sqlldr userid=user/[email protected] control=.... data=my.fifo.pipe 
+0

這裏有人在用壓縮技術做它! http://www.simonecampora.com/blog/2010/07/09/how-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-拉鍊-轉儲-ON-UNIX / – Beege

0

如果您不能使用DBLinks和可以」使用datapump,您可以使用ETL工具,例如Pentaho Data Integration或其他,作爲一個簡單的選項。

相關問題