see on GitHub

RavenDB Administration 101

This article contains fundamentals of RavenDB Server Administration and relevant links with details.

File locations

The main configuration option which determines root path for RavenDB data is Raven/WorkingDir. By default, all path configurations are relative to this setting. Its default value depends on hosting option (it is especially important when IIS is used).

You can either specify relative paths (start with ~\) or absolute ones. All exposed configuration settings you can find in Data settings and Index settings sections.

Backup and restore

To keep your data save you have to perform database backups. The backup is the binary state of a database and allows to quickly recover from a failure. Incremental backups are supported, so you can set it up to do full backup every 3 days, and incremental backup every 4 hours for instance.

To run backup you can either use Raven.Backup tool or the Studio.

Export and import

Export is a database dump of documents and definitions of indexes and transformers. In order to export / import database use Raven.Smuggler tool. It also supports smuggling data between databases. Another way to export / import .ravendump file is to take advantage of the Studio.

Because export / import works based on JSON documents, there is a possibility to transform / filter documents on the fly (not available for backups). The same like for backups, incremental export is available as well.

Security

RavenDB comes with built-in authentication and authorization functionalities.

Also to protect your data, RavenDB offers data encryption bundle.

Monitoring

In RavenDB 3.5 we have added a few ways to monitor RavenDB:

Logging

If you encounter any problem with RavenDB, probably the first thing you want to know is what is going on inside the server. RavenDB has extensive support for logging. The first option is to get logs is to enable logs by creating an appropriate config file (Enabling logging). The downside of this is that it requires the server restart, which might be not an option on production system.

The second way is to enable logging in runtime, what can be achieved by Studio feature called Admin logs. You can configure logging there on the fly without the need to restart your server.