#1 Global Leader in Data Protection & Ransomware Recovery

How to Migrate Backup Data Between Repositories for Veeam Backup for Microsoft 365

KB ID: 3067
Product: Veeam Backup for Microsoft Office 365 | 5.0
Veeam Backup for Microsoft 365 | 6.0 | 7.0 | 7a
Published: 2019-12-16
Last Modified: 2024-04-01
mailbox
Get weekly article updates
By subscribing, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.

Cheers for trusting us with the spot in your mailbox!

Now you’re less likely to miss what’s been brewing in our knowledge base with this weekly digest

error icon

Oops! Something went wrong.

Please try again later.

Purpose

This article provides information regarding migrating backup data between JET-based backup repositories and from a JET-based backup repository to a non-immutable object storage repository when using Veeam Backup for Microsoft 365.
This article documents how to migrate backup data between repositories. For details on how to move the Veeam Backup for Microsoft 365 installation to a new server, please review:  https://www.veeam.com/kb2649

Solution

Two methods may be used to migrate Veeam Backup for Microsoft 365 backup data:

  1. Migration Using Integrated PowerShell Commands — This is the primary and recommended method.
    • The software remains operational throughout the migration, and tasks not using the repository that is being migrated can continue.
    • It can migrate a local jet-based repository from one local drive to another.
    • It can migrate a local jet-based repository to non-immutable object storage.
    • It does not copy white space, which causes the migration process to reduce the space used by the backup data.
    • It can be marginally slower because backup data is not simply copied but processed and written into a new jet-based database.
    • Procedure is Windows OS-version agnostic.
  2. Directly Copying Backup Data — This method is viable but has limitations.
    • The software must be stopped, and all Veeam Backup for Microsoft 365 services must be stopped until the copy and paste completes.
    • It can only be used to move local jet-based repository data from one Windows drive to another Windows drive.
    • It cannot be used to migrate data from a local jet-based repository to object storage.
    • Whitespace within jet-based backup data is copied, causing the migrated data to be the same size as the original.
    • It can be faster to migrate data, as backup data is simply copied block-for-block from source to destination without creating a new jet-based database (which is how the PowerShell procedure works).
    • Because a new jet-based database is not created, the source and destination Windows OS must match.

Note: Neither method can be used to migrate between Object Storage Repositories.

  PowerShell-based Migration Direct Data Copying
Tasks using other repositories can continue to operate during migration.    
Supports local to local.    
Supports local to object storage.    
Supports object storage to object store.    
Reduce the size of the database on the migration destination.    
Source and destination Windows OS version agnostic.    
Creates a new jet-based database.    
Swipe to show more of the table

Migrate Backup Data Using PowerShell

The Move-VBOEntityData PowerShell cmdlet is used to move backup data from one repository to another repository.

Limitations and Considerations of the Move-VBOEntityData cmdlet:

  • As data is moved, Veeam Backup for Microsoft 365 removes items from the source repository and replaces them with whitespace.
    For this reason:
    • The object storage repository where you want to move backup data must not contain any data associated with the items you want to move.
    • If the move process was interrupted, do not start the related backup jobs until you have resumed and completed the data move process.
  • Move-VBOEntityData supports the following data migration scenarios:
    • Migration from one JET-based backup repository to another JET-based backup repository.
    • Migration from a JET-based backup repository to a non-immutable object storage repository.
  • The following migration scenarios are not supported:
    • Migration from a JET-based backup repository to an immutable object storage repository.
    • Migration from an object storage repository to another object storage repository.
    • Migration from an object storage repository to a JET-based backup repository.
  • Migrated restore points will no longer be attached to the original job. However, the restore points are still available for restore and can be accessed by right-clicking on the corresponding organization name. 
  • The Move-VBOEntityData cmdlet will not reconfigure backup jobs to change the repository they use. The jobs must be reconfigured manually or by using additional PowerShell cmdlets (as is done in the script example found in this article).
  • It is recommended to run migration operations outside of backup windows to avoid overhead on a proxy and affecting backup jobs performance.
  • If Teams data migration results in a mix of restore points created by EWS and protected APIs stored in the same repository, then such repository can only be used to create new backups using protected APIs

Click here for more details.

Usage examples for the Move-VBOEntityData cmdlet

Examples are available in the PowerShell Reference guide here: Move-VBOEntityData - Examples

Monitoring the Move-VBOEntityData migration progress

Status of migration tasks is displayed in the Veeam Backup for Microsoft 365 Console in the History tab under the Job > Data Management node.

kb3067_v5

PowerShell Migration Script Example

The script below is designed to automate backup data migration between repositories.

Expand for information about the Migration Script example

The script performs the following operations:

  1. Select Organization. Defines the organization associated with the data to be migrated.
  2. Select Backup Proxy. Defines the backup proxy server that hosts existing backup data.
  3. Select Target Repository. Defines the target object storage repository.
  4. Limit Migrations Sessions. This step configures the maximum number of simultaneous migration sessions to half of all threads configured for the selected backup proxy server. For example, if there are 64 threads configured on the backup proxy server, it will limit the number of migration sessions to 32 concurrent migration sessions.
  5. Disable All Jobs for Selected Organization. Disables all backup jobs created for the specified organization.
  6. Create a List of Source Repositories. Creates a list of backup repositories used by the backup jobs from Step 5 that will be used as source repositories. (If a repository is not in use by at least one backup job, the data residing there will not be migrated.)
  7. Get and Migrate All Users. Creates a list of all Users, Sites, Teams, and Groups located in the repositories from Step 6 and then migrates their data.
  8. Reconfigure Jobs to Use New Repository. Reconfigures all the jobs from Step 5 to use the object storage repository that is defined as a target repository and enables all jobs disabled at Step 5.

Before using the script below, it is essential that you:

To run the script, download the file below, place it on the Veeam Backup for Microsoft 365 server. Then, run the "kb3067.ps1" file and follow the script prompts.

DOWNLOAD SCRIPT

This script was written for use with Veeam Backup for Microsoft 365 5B or later.

For ease of use, comments are provided for each step in the script.

MD5: 1A46953ED06CA7291D6107878A55091B
SHA-1: 29E6E85BC353318485FFABF35B67AED33C358A5E

Support Statement

This script is provided as a courtesy and is not supported by Veeam Technical Support. Use at your own risk.

Veeam Technical Support will not assist in the usage or troubleshooting of this tool.

Directly Copying Backup Data

Limitations to Consider

  • All Veeam Backup for Microsoft 365 services must be stopped during while the copy-paste completes.
  • Can be used to move local jet-based repository data from one Windows drive to another Windows drive.
  • Cannot be used to migrate data from a local jet-based repository to object storage.
  • Whitespace within jet-based backup data is copied, causing the migrated data to be the same size as the original.
  • Because a new jet-based database is not created, the source and destination Windows OS versions must match.

Procedure

  1. Stop all backup jobs that are using the remote proxy.
  2. For each backup job using the remote proxy that will be migrated, open backup job settings and specify to temporarily use a different repository (i.e. Default backup repository).
  3. Remove all local repositories that will be migrated from the Veeam Backup for Microsoft 365 console.
  4. (Optional) Remove the original remote proxy from the Veeam Backup for Microsoft 365 console.
  5. Stop all Veeam Backup for Microsoft 365 services.
    • Veeam Backup for Microsoft 365 Service
    • Veeam Backup Proxy for Microsoft 365 Service
  6. Move the repository data from the original proxy to the new proxy (copy/paste).
    *(Skip this step for SMB Repositories)
  7. Start the Veeam Backup for Microsoft 365 services.
  8. Add the new remote proxy in the Veeam Backup for Microsoft 365 console.
  9. Add the migrated repository to the new backup proxy.
  10. Edit backup job from Step 2 and reconfigure them to use the repository added from the new proxy location.
  11. Start the original proxy service if it was stopped.
To submit feedback regarding this article, please click this link: Send Article Feedback
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.

Spelling error in text

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Thank you!

Thank you!

Your feedback has been received and will be reviewed.

Oops! Something went wrong.

Please try again later.

You have selected too large block!

Please try select less.

KB Feedback/Suggestion

This form is only for KB Feedback/Suggestions, if you need help with the software open a support case

By submitting, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Verify your email to continue your product download
We've sent a verification code to:
  • Incorrect verification code. Please try again.
An email with a verification code was just sent to
Didn't receive the code? Click to resend in sec
Didn't receive the code? Click to resend
Thank you!

Thank you!

Your feedback has been received and will be reviewed.

error icon

Oops! Something went wrong.

Please try again later.