This documentation relates to an earlier version of Confluence.
View this page in the current documentation or visit the current documentation home.

Skip to end of metadata
Go to start of metadata

Limitations of Database Migration

Icon

The XML backup built into Confluence is not well suited for database migration for large data sets (see Production Backup Strategy for reference). If the procedures below do not work, use a commercial database migration tool.

Database Migration

This document outlines how to migrate your data from your existing database to another database. It is designed for migrating from an evaluation to a production database. Large data sets will require third party database migration tools. You should use this method when moving from the embedded DB to an external DB, or from one type of external DB to another (e.g. Oracle to Postgres).

Icon

If you are simply moving your DB from one server to another you can just change the JDBC URL in <confluence.home>/confluence.cfg.xml (if you are using a direct JDBC connection) or in the definition of your datasource (if you are connecting via a datasource).

There are two ways you can perform the migration:

  1. Method one is the standard procedure.
  2. For large installations of Confluence using version 2.2 or later: If the total size of attachments on your installation exceeds 500MB, use method two.

On this page:

Method One - Standard Procedure

Step One: Backing up your data

  1. Create a backup of your existing data. This is done from the Administration Console. Instructions on how to create a backup can be found here.
  2. Shut down and backup the Confluence Home Directory.
  3. If you are already using an external database, please make a backup of it using the utilities that were installed with it.
Icon

Note which plugins are currently installed/enabled, so that you can reinstate them later.

Step Two: Configuring the Confluence Home Directory

  1. Create a new Confluence Home Directory. You can place this directory anywhere you like and give it a name of your choice.
  2. Open WEB-INF/classes/confluence-init.properties file in your Confluence installation and change the confluence.home property to point to this new Confluence Home Directory.

Step Three: Setting up the new database

Perform the database setup instructions for your database.

Step Four: Setting up Confluence with the new database

If your databases are not already configured for Confluence, refer to Database Configuration to setup your database access.

  1. Make sure that the JDBC drivers for your database are available to the application server. If you don't already have the JDBC driver, please download one from here.
  2. Make sure that your database is using a case-sensitive collation. Please refer to the section on case sensitivity below and see this issue for more details: CONF-7917.
  3. If you are running the standalone version of Confluence, copy your JDBC database driver (a .jar file), into the <confluence-install>/lib folder.
  4. Start up Confluence. You will see the Confluence Setup Wizard.
  5. Select 'Custom Install'.
  6. Select your database from the drop down list.
  7. Select 'Direct JDBC' and then enter the details of the new database you want to migrate to.
    (info) Read the documentation on the Setup Wizard for more detailed explanation.
  8. When prompted, restore the contents of the backup you made in Step One into the new Confluence site

Your old Confluence data will now be imported to your new database.

Method Two - For large installations

Step One: Backing up your data

  1. Before proceeding with these instructions please check that:
    • you are upgrading from at least Confluence version 2.2 and
    • your attachments are stored in the file system, and not in your database. (To migrate between attachment storage systems, please see Attachment Storage Configuration)
      (warning) These instructions will not work if either of the above is not true.
  2. From Confluence, go to Administration -> Backup & Restore and create a manual backup that excludes attachments.
  3. Shut down and back up the Confluence Home Directory.
  4. If you are already using an external database, please make a backup of it using the utilities that were installed with it.

Step Two: Configuring the Confluence Home Directory

  1. Create a new Confluence Home Directory. You can place this directory anywhere you like and give it a name of your choice.
  2. Open WEB-INF/classes/confluence-init.properties file in your Confluence installation and change the confluence.home property to point to this new Confluence Home Directory.

Step Three: Moving your attachments

Move the contents of your attachments directory from your old Confluence Home to your new Confluence Home.

Step Four: Setting up new database

Perform the database setup instructions for your database.

Step Five: Setting up Confluence with the new database

If your databases are not already configured for Confluence, refer to Database Configuration to setup your database access.

  1. Make sure that the JDBC drivers for your database are available to the application server. If you don't already have the JDBC driver, please download one from here.
  2. Make sure that your database is using a case-sensitive collation. Please refer to the section on case sensitivity below and see this issue for more details: CONF-7917.
  3. If you are running the standalone version of Confluence, copy your JDBC database driver (a .jar file), into the <confluence-install>/lib folder.
  4. Start up Confluence. You will see the Confluence Setup Wizard.
  5. Select 'Custom Install'.
  6. Select your database from the drop down list.
  7. Select 'Direct JDBC' and then enter the details of the new database you want to migrate to.
    (info) Read the documentation on the Confluence Setup Wizard for more detailed explanation.
  8. When prompted, restore the contents of the backup you made in Step One into the new Confluence site.

A Note about Case Sensitivity in your Database

'Collation' refers to a set of rules that determine how data is sorted and compared. Case sensitivity is one aspect of collation. Other aspects include sensitivity to kana (Japanese script) and to width (single- versus double-byte characters).

Case-sensitive or case-insensitive collation — how should you create your Confluence database? What about when you are migrating your existing Confluence instance from one database to another?

Setting up a New Confluence Instance

For new Confluence instances, we recommend using case-sensitive collation for your Confluence database. This is a default collation type used by many database systems. Confluence reduces all usernames into lower-case characters before they are stored in the Confluence database. This means that 'joebloggs', 'joeBloggs', 'JoeBloggs', etc. will be treated as the same username on a Confluence installation with case-sensitive database collation.

Migrating an Existing Confluence Instance to a Different Database

The default Confluence Standalone configuration uses case-sensitive database collation. This is typical of databases created under default conditions. If you are migrating from this type of configuration to a new database, we recommend that the new database uses case-sensitive collation. If you use case-insensitive collation, you may encounter data integrity problems after migration (for example, via an XML import) if data stored within your original Confluence site required case-sensitive distinctions.

Troubleshooting

If you're unable to restore your XML backup, consult our Troubleshooting Guide.

RELATED TOPICS