Working with Databases

WSO2 API Manager is shipped with an H2 database for storing data. These default databases are located in the <API-M_HOME>/repository/database directory of the product pack.

When setting up databases, you need to ensure that the setup matches the distributed deployment pattern that you implement. For more information, see Understanding the Distributed Deployment of API Manager.

Default databases

Explained below are the default databases which will be used within API Manager.

  • AM database (WSO2AM_DB.mv.db) : WSO2 API Manager has this database keeping its specific API-M related data.
  • Shared database (WSO2SHARED_DB.mv.db) : This database contains the registry and user management data.
  • Carbon database (WSO2CARBON_DB.mv.db) : This database has the internal data related to the product. This data is stored in the embedded H2 database.

The following image shows the default databases and the data that are stored in each database.

Data bases

See how these databases are used when you run API-M servers as separate profiles in a distributed deployment.

Changing the default databases

The embedded H2 databases shipped with your product are suitable for development and testing environments. However, for production environments, it is recommended to use an industry-standard RDBMS such as Oracle, PostgreSQL, MySQL, MS SQL, etc.

WSO2 products are shipped with scripts for creating the required tables in all the required databases: The scripts for creating tables for API-M, user management, and registry data are stored in the <API-M_HOME>/dbscripts directory.

Changing the default database: You simply have to set up new physical databases, point the product server to the new databases by updating the relevant configuration files, and create the required tables using the scripts provided in the product pack. See the following topics for instructions:

Note

To be able to browse the default H2 database, be sure to add the following configuration to the deployment.toml file (stored in the <API-M_HOME>/repository/conf directory) and restart the server.

[database_configuration]
enable_h2_console = true
Top