Migrating to an external database
This page provides an overview of connecting Fisheye to an external database. Atlassian recommends that you use an external database for production installations, for the following reasons:
- Improved protection against data loss: The Fisheye built-in database, which runs HSQLDB, is susceptible to data loss during system crashes. External databases are generally more resistant to data loss during a system crash. HSQLDB is not supported in production environments and should only be used for evaluation purposes.
- Performance & scalability: If you have a large number of users on your Fisheye instance, running the database on the same server as Fisheye may slow it down. When using the embedded database, the database will always be hosted and run on the same server as Fisheye.
- Data stored in the Fisheye database: The Fisheye database stores information besides the cache for repository scans. Specifically, user data and user preferences information.
Note that when they are used together, Fisheye and Crucible share the same external database.
You can use a number of alternatives to the built-in HSQLDB database for storing Fisheye and Crucible's relational data. The supported databases versions are listed on the Supported platforms page.
The pages linked below detail the steps required to migrate to an external database:
- Migrating to MySQL
- Migrating to Oracle
- Migrating to PostgreSQL
- Migrating to SQL Server
- Configuring the database connection pool
Support for other databases
If you are using another database product that you would like to see supported, please create a Jira issue for it under the Crucible project.
Fisheye uses Read Committed transaction isolation. There is no requirement to configure this explicitly when setting up an external database - Fisheye will configure the transaction isolation when connecting to the database.