Skip to content

For help, click the link below to get free database assistance or contact our experts for personalized support.

Restore PMM Server Docker container

You can restore PMM Server either from a manual backup or from an automated backup volume that was created during migration to PMM v3.

Before you begin

Before proceeding with restoration, ensure you have one of the following:

  • a manual backup you previously created. Make sure to verify its integrity using the verification procedures in the back up guide.
  • an automated backup volume created during migration from PMM V3

Restore methods

Choose the restoration method that matches how your backup was created:

Restore from a backup volume created using the volume-to-volume method:

  1. Stop the current PMM Server container:

    docker stop pmm-server
    

  2. Remove the current container:

    docker rm pmm-server
    

  3. Choose a restauration option:

    • Replace current volume with backup volume:
      # Remove current volume (WARNING: This deletes current data)
      docker volume rm pmm-data
      
      # Restore from backup volume to new pmm-data volume
      docker volume create pmm-data
      sudo docker run --rm -v <backup-volume-name>:/from -v pmm-data:/to alpine ash -c 'cp -av /from/. /to'
      
    • Use backup volume directly:
      # Start PMM Server using backup volume directly
      docker run -d \
      --publish 443:8443 \
      --volume <backup-volume-name>:/srv \
      --name pmm-server \
      --restart always \
      percona/pmm-server:3
      
  4. Verify the restored PMM Server is working correctly:

    docker logs pmm-server
    

Restore from a host directory backup:

  1. Stop the current PMM Server container:

    docker stop pmm-server
    

  2. Remove the current container:

    docker rm pmm-server
    

  3. Copy backup data to PMM volume:

    # Remove current volume (WARNING: This deletes current data)
    docker volume rm pmm-data
    
    # Create new pmm-data volume
    docker volume create pmm-data
    
    # Copy directory backup to volume
    docker run --rm -v $(pwd)/<backup-directory>:/backup -v pmm-data:/srv alpine sh -c 'cp -r /backup/* /srv/'
    

  4. Fix ownership of restored files:

    docker run --rm -v pmm-data:/srv -t percona/pmm-server:3 chown -R pmm:pmm /srv
    

  5. Start the restored PMM Server:

    docker run -d \
    --publish 443:8443 \
    --volume pmm-data:/srv \
    --name pmm-server \
    --restart always \
    percona/pmm-server:3
    

Rollback from PMM 3 to PMM 2 using automated migration backup:

  1. Stop the current PMM v3 container:

    docker stop pmm-server
    

  2. Remove the PMM v3 container:

    docker rm pmm-server
    

  3. Start a PMM v2 container using your backup volume:

    docker run -d \
    -p 443:443 \
    --volume <backup-volume-name>:/srv \
    --name pmm-server \
    --restart always \
    percona/pmm-server:2.44.0
    

    Replace <backup-volume-name> with your PMM v2 backup volume name (e.g., pmm-data-2025-01-16-165135).

  4. Verify that your PMM v2 instance is running correctly:

    docker logs pmm-server
    # Check that all your data is accessible via the web interface
    

Use this as a fallback method when:

  • you created a backup using docker cp pmm-server-backup:/srv .
  • you have a backup directory with an srv/ folder containing PMM data
  • you used the Universal container copy backup option
  • other restore methods don’t match your backup type

To restore from a universal container:

  1. Stop the current PMM Server container:

    docker stop pmm-server
    

  2. Remove the container:

    docker rm pmm-server
    

  3. Restore the renamed backup container:

    docker rename pmm-server-backup pmm-server
    

  4. Navigate to the backup directory:

    cd pmm-data-backup-YYYYMMDD-HHMMSS
    

  5. Copy the backup data to the PMM data volume:

    docker run --rm -v $(pwd)/srv:/backup -v pmm-data:/srv -t percona/pmm-server:3 cp -r /backup/* /srv
    

  6. Fix ownership of the restored files:

    docker run --rm -v pmm-data:/srv -t percona/pmm-server:3 chown -R pmm:pmm /srv
    

  7. Start the restored PMM Server container:

    docker start pmm-server
    

Find your backup volume name

If you’re restoring from an automated migration backup and don’t know the volume name:

  • your backup volume name was displayed during the automated upgrade process.
  • to list all available Docker volumes, use the following command and look for volumes with names like pmm-data-YYYY-MM-DD-HHMMSS:

    docker volume ls       
    

Next steps