Brazil's biggest MU Online portal — since 2003
Tutorial Intermediate Server

How to back up your MU Online server database

Complete guide to protecting your MU Online server data with SQL Server backups: what to back up and why, manual backup via SSMS step by step, automated backup with SQL Server Agent jobs, T-SQL scripts for scheduled backups, backup rotation strategy (keeping the last 7 days), how to copy backups off-server to another disk or cloud storage, how to restore from a .bak file when disaster strikes, testing your restore procedure before you need it, and choosing the right backup frequency for your server's activity level.

RO Rodrigo · Updated on Nov 25, 2013 · ⏱ 12 min read
Quick answer

A server without backups is a disaster waiting to happen. Disk failure, ransomware, an accidental SQL DROP, a bad configuration change — any of these can wipe months of player progress in seconds. Backups are the only thing standing between a catastrophe and a quick recovery.

A server without backups is a disaster waiting to happen. Disk failure, ransomware, an accidental SQL DROP, a bad configuration change — any of these can wipe months of player progress in seconds. Backups are the only thing standing between a catastrophe and a quick recovery.

Atenção: The question is never "if" something will go wrong — it's "when." Every server that runs long enough experiences a data crisis. Those with recent backups recover in 15 minutes. Those without lose everything and often close permanently.

What needs to be backed up

MU ONLINE SERVER DATA — WHAT TO BACK UP:

CRITICAL (must back up daily):
→ MuOnline database — accounts, characters, items, Zen, stats, skill trees
→ EventMU / RankingMU database — rankings, kill counts, event history
→ LogServer database — login logs, transaction history (useful for dispute resolution)

IMPORTANT (back up when changed):
→ MuServer configuration files (.ini files for all server components)
→ Custom event files (maps, quests, NPC configs)
→ Website configuration files (db.php, config.php — exclude passwords from VCS)
→ GameServer.exe and DataServer.exe (if you've applied patches or modifications)

NOT CRITICAL (recoverable separately):
→ MuServer binary files (re-download from your distribution)
→ Client files (redistribute to players)

Manual backup via SSMS

STEP-BY-STEP MANUAL BACKUP:

1. Open SSMS → connect to your SQL Server
2. Expand "Databases" in the left panel
3. Right-click "MuOnline" → Tasks → Back Up...
4. In the backup dialog:
   → Backup type: Full
   → Backup component: Database
   → Destination: click "Add" → choose a path like D:\backups\MuOnline.bak
5. Click OK — wait for completion (usually 30 seconds to 2 minutes)
6. Repeat for EventMU, RankingMU, LogServer

VERIFY THE BACKUP FILE:
→ Check the file exists and has a reasonable size (not 0 KB)
→ A MuOnline.bak file that's too small is a red flag — check for errors

Automated backup with SQL Server Agent

CREATE AUTOMATED DAILY BACKUP JOB:

ENABLE SQL SERVER AGENT:
1. In SSMS: expand "SQL Server Agent" in the left panel
2. If it says "SQL Server Agent (Agent XPs disabled)":
   → Right-click → Start
   → If it won't start: open "SQL Server Configuration Manager"
   → "SQL Server Services" → right-click "SQL Server Agent" → Start

CREATE THE JOB:
1. Right-click "Jobs" under SQL Server Agent → New Job
2. Name: "MuOnline Daily Backup"
3. Go to "Steps" tab → New:
   → Step name: "Backup All MU Databases"
   → Type: Transact-SQL Script (T-SQL)
   → Command: (paste the T-SQL from the next section)
4. Go to "Schedules" tab → New:
   → Name: "Daily 3 AM"
   → Frequency: Daily
   → Time: 03:00:00
5. Click OK to save the job

T-SQL backup script

-- FULL BACKUP WITH TIMESTAMP IN FILENAME
-- Run this in SSMS or use as an SQL Server Agent Job step

DECLARE @BackupDate VARCHAR(20)
SET @BackupDate = CONVERT(VARCHAR, GETDATE(), 112)  -- yyyymmdd format

-- Backup MuOnline
BACKUP DATABASE MuOnline
TO DISK = 'D:\backups\MuOnline_' + @BackupDate + '.bak'
WITH FORMAT, INIT, COMPRESSION, STATS = 10;

-- Backup EventMU
BACKUP DATABASE EventMU
TO DISK = 'D:\backups\EventMU_' + @BackupDate + '.bak'
WITH FORMAT, INIT, COMPRESSION, STATS = 10;

-- Backup RankingMU (if it exists)
BACKUP DATABASE RankingMU
TO DISK = 'D:\backups\RankingMU_' + @BackupDate + '.bak'
WITH FORMAT, INIT, COMPRESSION, STATS = 10;

PRINT 'All MU databases backed up successfully.'
Dica: The COMPRESSION option reduces backup file size by 50-80% with minimal CPU overhead. Always use it. The STATS = 10 prints progress every 10% so you can monitor large backups.

Backup rotation — keeping last 7 days

DELETE OLD BACKUPS AUTOMATICALLY (PowerShell script):

Create file: D:\scripts\CleanOldBackups.ps1

$BackupPath = "D:\backups"
$DaysToKeep = 7
$CutoffDate = (Get-Date).AddDays(-$DaysToKeep)

Get-ChildItem -Path $BackupPath -Filter "*.bak" |
    Where-Object { $_.LastWriteTime -lt $CutoffDate } |
    Remove-Item -Force

Write-Host "Old backups removed. Keeping last $DaysToKeep days."

SCHEDULE THE CLEANUP SCRIPT:
→ Windows Task Scheduler → Create Basic Task
→ Trigger: Daily at 04:00 (after the backup job)
→ Action: PowerShell.exe -File "D:\scripts\CleanOldBackups.ps1"

DIRECTORY LAYOUT (example):
D:\backups\
  MuOnline_20260701.bak      (yesterday — keep)
  MuOnline_20260702.bak      (today — keep)
  EventMU_20260701.bak
  EventMU_20260702.bak
  ...

Copying backups off-server

OFF-SERVER COPY — THE CRITICAL STEP:

THE PROBLEM:
→ If the server disk fails, any backup stored ONLY on that disk is gone
→ Local backup = same disk = not a backup for disk failure scenarios

OPTIONS FOR OFF-SERVER COPY:

OPTION 1 — SECOND DISK/VOLUME:
→ If your VPS has multiple disks: back up to the second disk (D: if C: has the system)
→ Gives protection against one disk failure but not server-level failure

OPTION 2 — FTP/SFTP TO ANOTHER SERVER:
→ Use WinSCP (Windows) to copy .bak files to a separate server after backup
→ Can be scripted with WinSCP's built-in scripting engine

OPTION 3 — CLOUD STORAGE (recommended):
→ Google Drive (free up to 15 GB) — rclone can mount it as a Windows drive
→ Backblaze B2 — very cheap ($0.006/GB/month), reliable
→ Amazon S3 — enterprise-grade, more expensive

OPTION 4 — COPY TO YOUR LOCAL PC:
→ Simple FTP/SFTP download from the VPS to your home PC after backup
→ Use FileZilla on a schedule or manually after each backup run

Restoring from backup

RESTORE PROCEDURE:

STEP 1 — STOP THE MUSERVER:
→ Stop GameServer, DataServer, JoinServer, ConnectServer, EventServer
→ Do NOT restore while the server is reading/writing the database

STEP 2 — RESTORE IN SSMS:
1. Right-click the database → Tasks → Restore → Database
2. Source: Device → select your .bak file
3. In "Options" tab: check "Overwrite the existing database (WITH REPLACE)"
4. Click OK → wait for completion (usually 1-5 minutes)

STEP 3 — VALIDATE:
→ Open SSMS → browse some tables (e.g., Character table in MuOnline)
→ Check if your expected data is there
→ Start the MuServer services
→ Test with a player login

ALTERNATIVE — T-SQL RESTORE:
USE master;
RESTORE DATABASE MuOnline
FROM DISK = 'D:\backups\MuOnline_20260701.bak'
WITH REPLACE, STATS = 10;

Testing your restore

MONTHLY RESTORE TEST — DO THIS:

WHY TEST?
→ A backup that's never been tested may be: empty, corrupted, from wrong database,
  or using settings incompatible with your current SQL Server version

HOW TO TEST:
1. Restore the most recent backup to a different database name:
   RESTORE DATABASE MuOnline_TEST
   FROM DISK = 'D:\backups\MuOnline_today.bak'
   WITH MOVE 'MuOnline_Data' TO 'D:\data\MuOnline_TEST.mdf',
        MOVE 'MuOnline_Log'  TO 'D:\data\MuOnline_TEST.ldf',
        REPLACE, STATS = 10;

2. Browse the restored database — check Character count, Item counts
3. If everything looks right: your backup is valid
4. Drop the test database: DROP DATABASE MuOnline_TEST;

WHAT COUNTS AS A VALID BACKUP:
→ Characters exist with correct names and levels
→ Inventory items are present
→ Account table shows the right number of accounts
→ No SQL errors during restore

Pair this guide with the SQL Server configuration tutorial (for setting up the SQL Server instance where backups originate), the database migration tutorial (for moving backups between servers when upgrading), and the VPS connection tutorial (for setting up file transfers to move backups off the server).

Frequently asked questions

How often should I back up?

For active servers with daily players: at minimum once per day, ideally twice (e.g., 3 AM and 3 PM). The frequency determines how much progress players can lose if a restore is needed. A daily backup means you might lose up to 24 hours of characters, items, and kills. For servers with constant player activity, every 6 hours is not overkill.

Where should I store the backup files?

Never only on the same server disk. If the disk fails, the backup dies with the data. Minimum: a second disk on the same server. Better: a second disk plus a copy in cloud storage (Google Drive, Backblaze, Dropbox). Best: second disk + cloud + a backup of last week on a local PC. The 3-2-1 rule: 3 copies, 2 different media, 1 offsite.

How do I know if my backup is actually working?

The only way to confirm a backup is valid is to restore it. Many admins discover their backup was corrupted or empty when they need it. Schedule a test restore every month: spin up a test SQL Server instance and restore the latest backup. If characters and items load correctly, the backup is valid.

Can I back up just one database instead of all of them?

Yes, and it's the recommended approach. Back up each database separately: MuOnline, EventMU, RankingMU, LogServer. The MuOnline database is the most critical (accounts, characters, items). The others are important but recoverable if lost. Separate backups give you more flexibility in restore scenarios.

RO
Founder & editor-in-chief

Rodrigo has run ViciadosMU since the portal's early days. A specialist in MU Online server creation and administration, game history and the evolution of the seasons — he wrote much of the archive before 2024.

Keep reading

Related articles

🛡️
Tutorial

How to Do Automatic Cloud Backup of MU Server

Learn to automate MU Online S6 server backups to the cloud using scripts, scheduling, and data security best practices.

12 min · Intermediate ·
🛡️
Tutorial

How to protect your MU Online server (anti-hack and security)

Complete guide to protecting a MU Online server from hacks, cheats, and intrusions: how anti-hack works and what it actually protects (client side), the most effective server-side protections against speed hack, dupe, and item injection, hardening the SQL Server against intrusion (strong sa password, dedicated users, closed ports), securing the web panel against SQL injection and admin credential theft, Windows server hardening (strong Administrator password, non-default RDP port, RDP IP restriction), monitoring player behavior with server logs, and the layered security model — why no single solution is enough and how the layers reinforce each other.

12 min · Advanced ·
🛡️
Tutorial

How to create a MU Online server (complete 2026 guide)

The complete beginner-friendly guide to creating a MU Online private server in 2026: what each component does (SQL Server, MuServer, the game client, the launcher, the website), the recommended technology stack for different seasons, the full step-by-step process from database installation through local testing and going online, network configuration for home servers (port forwarding, No-IP, Hamachi) and VPS servers, security essentials before opening to the public (strong passwords, closed SQL port, anti-hack), choosing the right season for your goals, what to expect in terms of time investment, and the most common first-server mistakes to avoid.

15 min · Advanced ·