For the Oracle users here, do you use exp/imp to clone your data from
Production to Dev, for testing and development purposes? If not, what
other methods do you use?
I was somewhat surprised by just how slow the import step is; in my
case, maybe 45 minutes or so for less than 430 MB of data (the size of
the tablespace file). This is certainly still feasible on a weekly or
nightly basis, but it sure is annoying. And then when my data
grows...
Other possible options I've thought of are:
- Use the
transport_tablespace=y
option to imp and
exp. This is supposed to be as very fast, as fast as just copying the
raw database files. But there are limitations. E.g., you have to
plug the tablespace it into a different instance, and you can't rename
it.
- Use sqlldr to get the data in. Use imp only to create the
tables, etc., not to put in any data. This will definitely be faster
than imp, but means writing scripts to dump the data out in a format
sqlldr can understand (there is no option to have exp do that,
unfortunately...), etc.
- Do our own clone of the data entirely within Oracle. If Dev
and Prod are on the same instance, Dev just needs read access to Prod.
If they're on different instances, you could probably create a
database link between the two. Of course, you have to take measures
to get a consistant copy, and oops, make sure rollback buffers can
handle this one massive transaction, etc.
I'm very curious about what solutions you've used...