JDBC2XML Usage

JDBC2XML Usage

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

Commands

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

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

Typical examples are:

# MySQL
jdbc:mysql://localhost:3306/MYDATABASE?useCursorFetch=true
 
# MSSQL
jdbc:sqlserver://localhost:1433;databaseName=MYDATABASE;

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):

--no-data

Ignore constraints

--no-constraints

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

--schema-only

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.

--drop-tables

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

--transactional

Options for xml reading

Enable schema checking on the xml file

--check-xml-schema

Create an extra index on each foreign key

--create-fk-indices

Options for xml creation

Force or supress pretty printing of xml data

--pretty, --no-pretty

Forces the transformation of SQL identifiers to lower case

--to-lower

Force the transformation of SQL identifiers to upper case

--to-upper

Write internal indices, which are generated by the RDBMS

--keep-internal-indices

Output Verbosity

The default log level prints FatalError and Warning logs

Suppresses any output except for the return code

--quiet

Increase log-level to Info

--verbose

Log everything (command-line spam warning)

--debug

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

--debug-startup

Driver packages and paths, and other Backend specific tips

See