Db2 – copy schema across different physical databases in db2

db2migrationschema

Is there any way to programatically copy across schema (i.e. tables,functions,views) etc from one database over to another one. Assuming both are running same versions of DB2.

I found a few utilities like
i) db2move — i could not find a way to access it via jdbc. So is ruled out.
ii) admin_copy_schema — copies across schemas in same database.
iii)db2look — again a utility. no way to call it from jdbc.

Even if we find a way to run those utilites db2move or db2look produces files which then have to be copied over to the target machine – making it highly complicated to automate the whole thing.

Is there a simple way to clone over a database through jdbn

Best Answer

JDBC is not really going to answer your problem directly. It is a generic programming API for working with any database. So it can't possibly know about utilities that are specific to an implementation, be it DB2, Oracle, MySQL, etc.

I would look at using one of the utilities you mentioned above. That is their purpose. They assist with moving databases and/or data across environments. (There is also the restore redirect option as well, which is good if you are doing a backup/restore option).

If you insist on doing this through application code, then you will have to pass DDL through the JDBC API's (which dependent on your driver and your permissions, may or may not work). Or you would have to try to execute the DB2 utilities from "command line" through you program (look at the Runtime class to do this).

Again, I would keep this out of the application (perhaps you can share more of why you want to do this? That would help with answering your question). If you insist on doing it inside your application, you may also want to check out Stack Overflow, as you may get answers from a "programmatic" perspective.