Skip to main content

Veeam v13: Migrating the Configuration Database from SQL Server to PostgreSQL

  • March 11, 2026
  • 7 comments
  • 116 views

eblack
Forum|alt.badge.img

What this migration actually does

 

Veeam used SQL Server as the only configuration database option for years. In v12 they added PostgreSQL support. In v13, PostgreSQL is the default for all new installations, and it is the only supported option for the Linux Software Appliance. If you have an existing VBR server running on SQL Server and want to move to the Linux Appliance - or simply want to drop the SQL Server dependency - this is the process.

It is not a live database conversion. Veeam does it through a backup and restore cycle: you create a configuration backup from your existing instance, then restore it to a PostgreSQL instance using the Migrate mode in the Configuration Restore wizard. The VBR server stays on the same machine. All infrastructure, jobs, credentials, schedules, and settings carry over. The only thing that changes is what database engine VBR connects to.

 

SCOPE OF THIS ARTICLE

This covers migrating VBR's own configuration database. If you also run Veeam Backup Enterprise Manager, its database migration is a separate process. See the Enterprise Manager section at the end of this article.

 

When you need to do it and when you can skip it

You have to do it if you are moving to the Linux Software Appliance. The appliance supports PostgreSQL only. There is no path from a Windows VBR installation to the Linux Appliance without migrating the configuration database first.

You should do it if you are running a dedicated SQL Server instance that exists only to serve VBR. That is licensing overhead and a patching surface that disappears once you move to PostgreSQL.

You can skip it for now if you are on the bundled SQL Express and staying on Windows. SQL Express has a 10 GB database size cap, which covers most environments. If you are nowhere near that limit and have no plans to move to the Linux Appliance, the migration is optional today. That said, Veeam has stated SQL Server support will eventually be discontinued post-v13, so plan to make the move at some point regardless.

Note: V13 on Windows continues to support both Microsoft SQL Server and PostgreSQL. The Linux Appliance is PostgreSQL only.

 

Prerequisites

You need a running PostgreSQL instance that VBR can connect to. For a Windows VBR server, the v13 installer offers to set up a local PostgreSQL instance during installation. If you installed v13 from scratch on Windows, you likely already have one. If not, you can install PostgreSQL manually - Veeam includes a PostgreSQL installer in the ISO atRedistr\x64\PostgreSQL\. VBR v13 supports PostgreSQL 14 and 15.

The PostgreSQL account you specify in the restore wizard needs permission to create databases on that instance. The defaultpostgressuperaccount works.

The template1 system database in PostgreSQL must use UTF-8 encoding. This is the default for any PostgreSQL install, but if you are pointing at a pre-existing instance, confirm it before proceeding.

VBR must currently be connected to its SQL Server database with no errors. Open the console and confirm the Jobs view shows your existing configuration cleanly before starting.

 

IMPORTANT

Do not start the migration while any backup jobs, restore sessions, or tape jobs are running. You must reach a fully idle state. Veeam will warn you during the process if something is active, but do not rely solely on that warning - verify yourself in the Jobs view first.

 

Step 1 - Stop and disable all jobs

In the VBR console, go to the Jobs view. For every job that is running, right-click and stop it. For every scheduled job, right-click and disable it. Do this for backup jobs, backup copy jobs, replication jobs, and agent management jobs. Check the Restore view and cancel any active restore sessions. If you use tape, stop anything active in Home > Tape Jobs as well.

Once everything is idle and disabled, wait a few minutes before proceeding. Some jobs run brief cleanup tasks after the main session writes, and those need time to finish.

 

Step 2 - Create a configuration database backup

From the main menu in the VBR console (hamburger icon, top left), select Configuration Backup. Confirm the "Enable configuration backup to the following repository" checkbox is selected and a valid repository is chosen. Then click Backup Now to create an immediate backup. You want a fresh backup that captures the current state.

Watch the status bar at the bottom. When the backup completes, the Configuration Backup window shows the timestamp of the last successful backup. Note the repository it wrote to - you will point the restore wizard at that location next.

 

TIP

If you have encryption enabled on your configuration backup, you will need that password during the restore step. Have it ready. There is no recovery path if you lose the password to an encrypted configuration backup.

 

Step 3 - Restore in Migrate mode to PostgreSQL

From the main menu, select Configuration Backup, then click Restore. This opens the Configuration Restore wizard.

 

Select Migrate, not Restore

The wizard shows two options: Restore and Migrate. Select Migrate. The Restore option puts you back on the same engine you are currently running. Migrate is what lets you change engines. If you pick Restore by mistake, cancel out and restart the wizard.

Point to the backup file you just created

Browse to the repository where the configuration backup was written and select the most recent backup. If it was encrypted, you will be prompted for the password here.

Select PostgreSQL and enter the instance details

On the Target Database tab, change the database engine from Microsoft SQL Server to PostgreSQL. Enter the hostname or IP of your PostgreSQL server. If PostgreSQL is running locally on the VBR server, enterlocalhost. Enter the port (default is 5432). Enter a name for the new database -VeeamBackupis typical. Specify the PostgreSQL account credentials. Veeam will tell you if the database does not yet exist and will create it during the process - that is expected.

Start the migration and wait

Review the summary and click Restore. Veeam stops its services, creates the PostgreSQL database, migrates all configuration data from the backup file into it, updates its own service configuration to point at the new engine, and restarts. This takes several minutes. When it completes, the console reconnects automatically. You are now running on PostgreSQL.

 

CRITICAL

Do not close the VBR console or manually restart the VBR service while the migration is running. An interrupted migration can leave VBR not connected to either database. If that happens, open the console, go to Configuration Backup, click Restore, and run the wizard again from the beginning using the same backup file.

 

Step 4 - Reactivate Enterprise Manager keyset

This step only applies if you use the Data Encryption feature and your VBR server is connected to Veeam Backup Enterprise Manager. If neither applies, skip to Step 5.

After the migration, Enterprise Manager still sees your VBR server but the encryption key association is broken because the configuration database moved. To fix it: in the EM web console, open Configuration, go to Settings, open the Key Management tab, find your keyset in the Managed Keys section, and click Activate.

Skip this and you will get key-related errors the next time an encrypted restore runs through Enterprise Manager.

 

Step 5 - Finish configuration and verify

Work through these checks before re-enabling your jobs.

First, re-enable the configuration backup. Go to Main Menu > Configuration Backup, confirm the scheduled backup is enabled with a valid repository, and click Backup Now to verify it runs successfully against the new PostgreSQL database.

Second, check the Backup Infrastructure view. All managed servers, repositories, and proxies should show as healthy. If any component shows a warning, right-click it and rescan. The migration regenerates some internal certificates, and a rescan updates the component's stored certificate fingerprint.

Third, if you have local repositories on the VBR server itself and they show as empty after migration, add them back using the same path. Veeam will rescan and find the existing backup files. This is documented behavior after a configuration database migration, not a sign that data was lost.

Once the infrastructure view is clean, re-enable your jobs. Run one manually to confirm full end-to-end operation before handing it back to the schedule.

 

PostgreSQL tuning after migration

If you installed PostgreSQL manually rather than through the Veeam installer, the default PostgreSQL configuration is not tuned for VBR workloads. Veeam provides a PowerShell cmdlet that calculates and outputs recommended PostgreSQL configuration values for your hardware:Set-VBRPSQLDatabaseServerLimits -DumpToFile C:\temp\pg-recommended.txt. Run that and review the output. Apply the values to your PostgreSQL instance'spostgresql.auto.conffile using psql. If VBR set up PostgreSQL during installation, the tuning is handled automatically and you do not need to do this manually.

 

Migrating Enterprise Manager separately

Starting in v13, VBR and Enterprise Manager no longer need to run the same database engine. If VBR migrates to PostgreSQL and EM stays on SQL Server, EM continues collecting data from that VBR server without interruption. This was a hard requirement in v12 but the limitation was removed in v13.

If you want to migrate EM's database as well, that is a separate process documented in the Veeam Backup Enterprise Manager Guide. One important sequencing rule: if you need to both upgrade EM to a newer version and migrate its database engine, upgrade first and then migrate the engine. Both operations cannot be performed simultaneously.

After migrating EM's database, you must reconnect EM using the Configuration Database Connection Settings utility, and update the credentials for each VBR server listed in EM's Configuration section. EM does not migrate historical collection data - it re-collects fresh data from VBR servers on the first run after migration.

 

NOTE

The EM Database Migration utility requires administrator privileges on the EM server and must be run from an elevated command prompt.

 

Gotchas that will get you

 

Problem

Cause

Fix

PostgreSQL refuses connection during wizard

Service is stopped, wrong port, or pg_hba.conf does not allow the VBR service account

Confirm PostgreSQL is running, port is correct, and the account has login rights. Trylocalhostinstead of hostname if connecting locally

Local repositories show as empty after migration

Expected behavior when the database moves

Re-add the repository at the same path. Veeam rescans and finds existing backup files. No data is lost

Encrypted restores through Enterprise Manager fail

EM keyset association broken when database moved

Complete Step 4: open EM web console, Configuration, Settings, Key Management tab, click Activate

Migration fails partway through

A job was still active or PostgreSQL connection was interrupted

Let VBR restart, then re-run the Configuration Restore wizard with the same backup file from the beginning

Infrastructure components show certificate warnings

Migration regenerates internal certificates; components have stale fingerprints

Right-click each affected component in Backup Infrastructure and rescan

PostgreSQL service was disabled

On some systems the PostgreSQL instance was left disabled after a prior install

Start the PostgreSQL service manually before running the wizard

 

Originally published at anystackarchitect.com

7 comments

Chris.Childerhose
Forum|alt.badge.img+21

This is definitely something we are working on for sure to get rid of the old dreaded MS license costs for SQL.  Great article Eric.


coolsport00
Forum|alt.badge.img+21
  • Veeam Legend
  • March 11, 2026

When I went to v12, I went to PSSQL. 🙌🏻

Thanks for sharing these detailed steps, as well as the “gotchas” with the Community!


  • Not a newbie anymore
  • March 11, 2026

This is definitely something we are working on for sure to get rid of the old dreaded MS license costs for SQL.  Great article Eric.

 

Thanks, recently going through a few of them this felt warranted. 


eblack
Forum|alt.badge.img
  • Author
  • Experienced User
  • March 11, 2026

This is definitely something we are working on for sure to get rid of the old dreaded MS license costs for SQL.  Great article Eric.

 

Licensing cost is great motivation :)


kciolek
Forum|alt.badge.img+1
  • Influencer
  • March 11, 2026

Thanks for sharing! I’m getting ready to do a migration from Windows to Linux on one of my lab Veeam servers. I’m working with support going through all the pre-requisites are met. I was told this can only be done with the help of Veeam support. 

 

I might spin up another Veeam server and try the procedure above..


eblack
Forum|alt.badge.img
  • Author
  • Experienced User
  • March 11, 2026

Thanks for sharing! I’m getting ready to do a migration from Windows to Linux on one of my lab Veeam servers. I’m working with support going through all the pre-requisites are met. I was told this can only be done with the help of Veeam support. 

 

I might spin up another Veeam server and try the procedure above..

It’s definitely recommended to engage support. I’ve done a number of them now but I still open cases just to be on the safe side. 


kciolek
Forum|alt.badge.img+1
  • Influencer
  • March 11, 2026

Thanks for sharing! I’m getting ready to do a migration from Windows to Linux on one of my lab Veeam servers. I’m working with support going through all the pre-requisites are met. I was told this can only be done with the help of Veeam support. 

 

I might spin up another Veeam server and try the procedure above..

It’s definitely recommended to engage support. I’ve done a number of them now but I still open cases just to be on the safe side. 

thanks! I had to remove storage integrations and CDP due to issues they encountered during migration, and sent the updated VMC log earlier; I am now waiting for the next steps. I want to go through the process, so I can educate customers on the process (pros/cons/ease with support, etc) and make for a good conversation during a demo.