Manually Convert Storage Type from Esent to Voron

Product: CMS

Version: All, CMS 10, 10.0

Published: May 24, 2018

Last updated: 1/30/2021

Comments:
0 Comments

Description

In the very near future, RavenDB will no longer support Microsoft Esent in future releases of RavenDB. The Ingeniux Development Team has been investigating Voron, RavenDB's own storage type, as a viable replacement for Esent. There currently is no option to switch from an Esent storage type to a Voron storage type for existing in place upgrades. This knowledge base topic provides manual steps to convert your storage type from Esent to Voron.

Purpose

Currently, it's not possible to switch from an Esent storage type to a Voron storage type automatically, so it must be done, manually.

Requirements

The manual process to convert the storage types requires a local Administrator account for the CMS server.

Note: Because you must export the database of the existing site, you need to make sure that there is enough disk space to ensure that the database can be exported, successfully.

Step-by-Step

To export databases on command line via Smuggler:

If you are working with a large export (over 1 GB in size) and your CMS server has plenty of RAM, it is better to use the Raven.Smuggler.exe, included with the CMS installation, and smuggle the export in using an administrative command prompt.

  1. Open an administrative command prompt.
  2. Change to the following directory where Raven.Smuggler.exe exists: (site folder)/site/bin
  3. The following command will smuggle out the entire database (the export command also supports batch/chunk sizes):

Raven.Smuggler.exe out http://mysite.com/contentstore "D:\sitedump.ravendbdump" --database=IGXContentStore --username=(username) --password=(password)

The username and password in this command must be a local administrator account so that it can access the database on the server.

Note: Depending on the batch size you choose and how big the export is, the export process could take several hours.

To create a Voron storage type:

Once the database has smuggled successfully, you will need to create the Voron storage type in the RavenDB studio first.

  1. Log into the RavenDB studio by going to http://mysite.com/contentstore
  2. You will see the existing Esent db/IGXContentStore in the studio after log in.
  3. Click the settings (icon with the 3 gears) on the IGXContentStore, choose Delete, choose Delete everything from the Delete options drop-down menu, and finally choose Yep, delete:

    Delete Esent

  4. In Resources, click Create one now to create a new database storage type.
  5. In the next dialog, name the instance IGXContentStore, then click on Advanced Settings and select the Voron storage engine:

    Setting Voron

Note: You are simply recreating the database with the same name as before, so that when we import the data, we will not have to update the connectionstrings in the site web.config and DSS preview web.config.

To import a database dump to the Voron storage type:

The final step is to import into the new Voron Storage Type that was just created. If you are working with a large export (over 1GB in size), we recommend performing the import using an administrative command prompt.

  1. Open an administrative command prompt.
  2. Change to the following directory where Raven.Smuggler.exe exists: [Drive]:\[path-to-cms-installation]\site\bin.
  3. The following command will smuggle in the entire database. (The export command also supports batch/chunk sizes):

Raven.Smuggler.exe in http://mysite.com/contentstore "D:\sitedump.ravendbdump" --database=IGXContentStore --username=(username) --password=(password) --timeout:36000000

As noted during the export process, the import could take several hours depending on the batch size you choose and the size of the export.

To post database import:

  1. Once the import is complete, log into the RavenDB studio to verify that there are no stale indexes. If there are, please wait until all stale indexes have completed indexing.
  2. Once the indexing is complete, log into the CMS and validate that all of the content exists within your site.

Comments

There are no comments yet.