BackupWallby PortWall
RestoreUpdated 2026-11-16

How do I restore files, databases, email or DNS from a backup?

Open Restore, choose + New restore, pick a backup point, pick the account and what to restore, then queue it. A restore adds and overwrites but never deletes, and every overwrite first takes a safety copy you can undo.

Run a restore (administrator)

  1. Open Restore and choose + New restore. You can also start from a point's detail with Restore this point, or from Accounts.
  2. Step 1, Select point: choose the backup point.
  3. Step 2, Configure:
    • Account to restore: pick the account.
    • What to restore: Full restore (files, databases, email), Files only, Databases only, Email only or DNS zones only.
    • Choose specific items (optional): tick the files, databases, mailboxes or zones you want. If you tick nothing, the whole scope is restored.
    • Choose Restore to original account, or Restore to a different account (the target account must already exist).
  4. Step 3, Confirm: read the warning "This will overwrite existing data" and choose Queue restore.
  5. The restore appears in the queue on the Restore page. Wait for Completed. "Completed with errors" (partial) means some items failed; open the entry to read why.
  6. Check the result: owner, permissions and content.

Account owners can do the same for their own account from the cPanel and DirectAdmin plugins. See Self-service restores and downloads in cPanel.

What a restore does

  • It adds and overwrites; it does not delete. Files created after the backup are left alone. A folder where the backup had a file is not removed, and that entry fails.
  • There is no dry run and no free-space check. A full disk or quota makes single files fail and the restore ends partial. Keep room for the biggest account.
  • A safety copy is taken first of exactly what the restore is about to overwrite. See Safety copy and undo.
  • A restore leaves alone what the point lacks. If a point was taken before a section was captured, the restore says "Not in this backup: ..." and leaves the account's current settings for it as they are.
  • Ownership is restored by user and group name. A name that does not exist on the server gets the numeric id the backup recorded (when no one else uses that id), else root. The result counts and names owners it could not find. A failed chown is not reported, so fix ownership by hand if needed.
  • Mail restores into a live mailbox are selective: Dovecot index files are never restored (Dovecot rebuilds them), a message deleted since the backup comes back with a new UID so mail clients download it again, and quota files and subscription lists come back as they were.
  • DNS restore keeps records added since the backup, touches only zones the account still has, and keeps the current DKIM key. Record types the panel cannot create are not written back; the restore names each one.
  • Databases are restored with their users and, where tested, original password hashes (tested on MariaDB; on Oracle MySQL 8 the hash may not be captured). A database import that moves no data for 1 hour is given up.
  • Restore does not translate between panels. Use Migration for that.
  • Not restored: ACLs, extended attributes, SELinux labels, file capabilities and chattr flags. An immutable file in the target makes that file's restore fail. Run restorecon, setfacl or chattr again after a restore. File names of about 250 bytes or more back up but cannot be restored.
  • A restore runs as long as it makes progress. One that reads or writes nothing for 2 hours is stopped and tried once more from the beginning.

Restore a single file

Choose Files only, tick the file under Choose specific items, and restore to the original account. To get a file out without touching the live account, use a download instead. See Download a backup.

Still stuck? Open a ticket at portwall.net/billing or write to [email protected], and attach a support bundle. See Report a problem and make a support bundle.