| ------ |
| Apache Archiva Databases |
| ------ |
| |
| Apache Archiva Databases |
| |
| Archiva uses an external database for two purposes: |
| |
| * Storing artifact information |
| |
| * As a default user store for security |
| |
| [] |
| |
| Generally, it is unnecessary to configure anything - the built in embedded database is suitable for the artifact management, and if |
| an external authentication mechanism is not needed, the user database. |
| |
| However, it is possible to configure an external database as needed. |
| |
| * Configuring an external database |
| |
| Archiva uses JNDI data sources to locate the databases to use: |
| |
| * <<<jdbc/archiva>>> - the repository database |
| |
| * <<<jdbc/users>>> - the user store |
| |
| Configuring an external database for either or both of these sources depends is configured in <<<jetty.xml>>> if you are using the |
| {{{standalone.html} standalone installation}}, or in the application server configuration if you are using the {{{webapp.html} web application |
| installation}}. |
| |
| By default the archiva and users databases are stored in the <<<databases>>> directory where Archiva is installed. To change the |
| path, just edit all instances of the "DatabaseName" property in <<<conf/jetty.xml>>> (see below). |
| |
| +------+ |
| ... |
| <New id="archiva" class="org.mortbay.jetty.plus.naming.Resource"> |
| <Arg>jdbc/archiva</Arg> |
| <Arg> |
| <New class="org.apache.derby.jdbc.EmbeddedDataSource"> |
| <Set name="DatabaseName">/path/to/database/directory/archiva</Set> |
| <Set name="user">sa</Set> |
| <Set name="createDatabase">create</Set> |
| </New> |
| </Arg> |
| </New> |
| |
| <New id="archivaShutdown" class="org.mortbay.jetty.plus.naming.Resource"> |
| <Arg>jdbc/archivaShutdown</Arg> |
| <Arg> |
| <New class="org.apache.derby.jdbc.EmbeddedDataSource"> |
| <Set name="DatabaseName">/path/to/database/directory/archiva</Set> |
| <Set name="user">sa</Set> |
| <Set name="shutdownDatabase">shutdown</Set> |
| </New> |
| </Arg> |
| </New> |
| |
| <New id="users" class="org.mortbay.jetty.plus.naming.Resource"> |
| <Arg>jdbc/users</Arg> |
| <Arg> |
| <New class="org.apache.derby.jdbc.EmbeddedDataSource"> |
| <Set name="DatabaseName">/path/to/database/directory/users</Set> |
| <Set name="user">sa</Set> |
| <Set name="createDatabase">create</Set> |
| </New> |
| </Arg> |
| </New> |
| |
| <New id="usersShutdown" class="org.mortbay.jetty.plus.naming.Resource"> |
| <Arg>jdbc/usersShutdown</Arg> |
| <Arg> |
| <New class="org.apache.derby.jdbc.EmbeddedDataSource"> |
| <Set name="DatabaseName">/path/to/database/directory/users</Set> |
| <Set name="user">sa</Set> |
| <Set name="shutdownDatabase">shutdown</Set> |
| </New> |
| </Arg> |
| </New> |
| ... |
| +------+ |
| |
| * Backing up the database |
| |
| While it is a good idea to back up both databases, it is not strictly necessary to back up the repository database on a regular basis. Should any |
| data loss be suffered, this database can be regenerated by deleting it's contents and re-scanning the repositories. |
| |
| If you are using the default user security mechanism, it is important to back up the users database on a regular basis to ensure that the user |
| passwords and information are not lost in the event of corruption. With the default embedded storage this is simply a matter of making a copy of |
| the database directory on the filesystem. If you have configured an external database as the source for user information, please refer to your |
| database documentation for backup instructions. |
| |
| ~~TODO: link to wiki location that does others |