Skip to end of metadata
Go to start of metadata


This section refers to the command-line tool. For information on the uses of the java library, please refer to our java documentation.


JDBC2XML provides several commands, triggering different operations.

The following command overview only shows the absolut minimal number of options.

Usually more options are needed, especially --user--password, and (Linux only, see bottom) --jdbc-drivers.

See far below for a full list of options, as well as examples for JDBC URLs.

Dumping a DB to XML

jdbc2xml --url <jdbc-url> --user <jdbc-user> --password <jdbc-password> --file <path-to-file>

See below for details and example for JDBC URLs.

Restoring a DB from XML

xml2jdbc --file <path-to-file> --url <jdbc-url> --user <jdbc-user> --password <jdbc-password> 

Copying from one DB to another

jdbc2jdbc --from-url <jdbc-url> --to-url <jdbc-url> --user <jdbc-user> --password <jdbc-password>

Parse and copy an XML file

This can be useful for extracting a schema from a database (see options below)

xml2xml --from-file <path-to-file> --to-file <path-to-file>

Test DB connection and server status

jdbcping --url <jdbc-url> --user <jdbc-user> --password <jdbc-password>

Extract parts of a DB

jdbcextr --url <jdbc-url> --user <jdbc-user> --password <jdbc-password> --file <path-to-file>


JDBC URLs basically look like jdbc:servertype://host[:port]/db?options., but some Databases and/or JDBC Drivers like other variants.

Typical examples are:


The use of cursor fetching in mysql is highly recommended in order to circumvent java heap space exceptions while dumping the content of large tables.

Full list of options

Database access

JDBC URL to access the DB.

--from-url "jdbcurl"
--to-url "jdbcurl"
--url "jdbcurl"

User to access the DB (some drivers can parse that from the URL):

--from-user user
--to-user user
--user user

Password to access the DB (some drivers can parse that from the URL):

--from-password password
--to-password password
--password password

File access

Win32 wrapper needs absolut paths. The given filenames may contain compressed input. The implementation instantiates an appropriate inflating/deflating stream if the filename ends with .gz or .bz2

--from-file file
--to-file file
--file file

Restrict processing to tables

Whitelist tables (comma seperated, without whitespace)

--tables table1,table2,...

Blacklist tables

--exclude-tables table1,table2,...

Do not include table data in dump (creates a full schema from a populated database):


Ignore constraints


Combined--no-data and --no-constraints


Expert options

Drop the affected tables before actually importing a dump. If --tables or --exclude-tables is given, only tables affected by the specified filter are dropped.


Overrides the default bzip2 output compression, if --to-file ends with .bz2

--compression <n>

Force a timezone

--timezone timezoneid

allows to select a JDBC driver, overriding autoselection

--from-driver drivername
--to-driver drivername
--driver drivername

Linux only: add given drivers to the classpath

--jdbc-drivers jarfilename[;jarfilename...]

Options for jdbc behaviour

Change the batch size for inserts (def.: 1000)

--batch-size n

Fetch the contents of the database using a read-only transaction


Options for xml reading

Enable schema checking on the xml file


Create an extra index on each foreign key


Options for xml creation

Force or supress pretty printing of xml data

--pretty, --no-pretty

Forces the transformation of SQL identifiers to lower case


Force the transformation of SQL identifiers to upper case


Write internal indices, which are generated by the RDBMS


Output Verbosity

The default log level prints FatalError and Warning logs

Suppresses any output except for the return code


Increase log-level to Info


Log everything (command-line spam warning)


Activate loggers in wrapper scripts (only useful if you know what you're doing)


Driver packages and paths, and other Backend specific tips



  • No labels