We often need to copy fairly large databases from one server to another. The current method uses expdp on the source, and then impdp on the destination. This gets pretty horrible because:

  1. It takes up a lot of space to store the intermediary files.
  2. It takes a lot more time than necessary because the writing and the reading happen in sequence rather than in parallel.

Is there a way to arrange things so that the stdout of expdp are piped directly into stdin of impdp? For example:

expdp / parfile=export.par | ssh remote impdp parfile=import.par

What should I put into these hypothetical export.par and import.par respectively?

If not straight stdout into stdin, can expdp write to and impdp -- read from -- TCP-socket(s)? I could have those plumbed with netcat...


1 Answer 1


As @mutap stated in the comments, you can expdp/impdp over the network.

Technically, you will be doing the DataPump export and import over a database link without the need for an intermediate file.

Bash PIPE is not needed.

Example: https://oracle-base.com/articles/10g/oracle-data-pump-10g#NetworkExportsImports

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.