Accessing Bitbucket Server's H2 embedded database

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

While the H2 database is not supported for production environments, sometimes admins will need access for testing purposes or you may need to run some diagnostics on a Bitbucket mirror's H2 database.

Solution

Before accessing or modifying the H2 embedded database, it's always recommended to first make a backup of $BITBUCKET_HOME/shared/data/db.h2.db


  1. Stop Bitbucket Server
  2. Login to the server as the user that runs Bitbucket Server
  3. Run the following command which will open a console connection to the database:

    java -cp <BITBUCKET_INSTALLATION>/app/WEB-INF/lib/h2-1.3.176.jar org.h2.tools.Shell

    Update the path above to reflect where Bitbucket Server is installed

  4. When prompted for the URL enter:

    jdbc:h2:file://<BITBUCKET_HOME>/shared/data/db;DB_CLOSE_ON_EXIT=TRUE
    Update the path above to reflect the location of the Bitbucket Home directory
  5. Press enter to select default (org.h2.Driver) when asked which driver to use
  6. Enter sa for the user
  7. Press enter twice when prompted for the password (no password is required)

If successful, you'll be prompted with sql> and can enter any SQL commands required.

Command Line Options

It is also possible to combine the steps to connect to the database in a single command:

java -cp <BITBUCKET_INSTALLATION>/app/WEB-INF/lib/h2-1.3.176.jar org.h2.tools.Shell -url "jdbc:h2:file://<BITBUCKET_HOME>/shared/data/db;DB_CLOSE_ON_EXIT=TRUE" -driver org.h2.Driver -user sa 

To connect and then run a query, pass the -sql option and the SQL query, for example:

java -cp <BITBUCKET_INSTALLATION>/app/WEB-INF/lib/h2-1.3.176.jar org.h2.tools.Shell -url "jdbc:h2:file://<BITBUCKET_HOME>/shared/data/db;DB_CLOSE_ON_EXIT=TRUE" -driver org.h2.Driver -user sa -sql "SELECT * FROM app_property;"
Update the paths above to reflect the location of the Bitbucket installation and home directories

Accessing the H2 database from a browser

For easier navigation of the H2 database, use the Server mode using the command below.

java -cp <BITBUCKET_INSTALLATION>/app/WEB-INF/lib/h2*.jar org.h2.tools.Server 

The H2 console can be accessible using http://localhost:8082. Enter the JDBC URL and click on the Connect button.



Last modified on Nov 7, 2024

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.