Why Express databases so often have no backup
Many billing, ERP and accounting programs in Indian offices run on SQL Server Express, the free edition of SQL Server. It is reliable and it costs nothing, but it leaves out one piece that matters for backups: SQL Server Agent, the scheduler that runs jobs and maintenance plans on the paid editions.
So the backup plan many people expect to set up in Management Studio is simply not there. The database runs for years, it grows, and the only copy is the live one. This guide shows how to fill that gap.
Option 1: a backup command run by Windows Task Scheduler
The free way is to let Windows run the backup for you. One command backs up a database to a file:
sqlcmd -S .\SQLEXPRESS -E -Q "BACKUP DATABASE [MyDatabase] TO DISK = N'D:\SQLBackup\MyDatabase.bak' WITH INIT, CHECKSUM"
.\SQLEXPRESSis the usual name of an Express instance on the same PC. Yours may differ; it is shown in the SQL Server Configuration Manager.-Esigns in with the Windows account that runs the command.CHECKSUMmakes SQL Server check every page as it writes the backup, so a damaged page stops the backup instead of being copied silently.
Put that line in a .bat file and create a daily task for it in Task Scheduler ("Create Basic Task", daily, after office hours, "Start a program"). Two things trip people up:
- The task needs an account that can back up the database, and must run whether or not anyone is signed in.
- The SQL Server service writes the file, not you. Its service account needs write access to the backup folder, or the backup fails with "access denied".
A step further, run a check on the file after the backup:
sqlcmd -S .\SQLEXPRESS -E -Q "RESTORE VERIFYONLY FROM DISK = N'D:\SQLBackup\MyDatabase.bak' WITH CHECKSUM"
Option 2: maintenance scripts or a backup tool
Free maintenance script collections and a range of paid tools wrap the same commands with more care: one file per day, old files removed after a set number of days, an email when something fails. If you manage several servers, they save a lot of .bat files. Either way, under the hood they run the same BACKUP DATABASE command.
The problems a scheduled backup does not solve
A daily .bak file is a real improvement, but on its own it leaves four gaps:
- It sits on the same PC. A failed disk, a stolen PC or ransomware takes the database and the backup together. Copying it to a second disk in the same office helps less than it seems; ransomware reaches every drive it can see.
- Nobody notices when it stops. A changed password, a full disk or a renamed folder breaks the task, Windows logs a failure, and nobody reads the log. Months later the newest backup is months old.
INITkeeps only the last copy. If data went wrong a week ago, last night's backup has the same mistake in it. You need earlier copies too: daily for a week, weekly for a month, monthly for a year is a good pattern.- It has never been restored.
VERIFYONLYchecks that the file can be read. It does not prove the database opens and holds your data. Only a real restore does.
Test the restore, beside the live database
To test a backup safely, restore it under a new name so it cannot touch the live database:
RESTORE DATABASE [MyDatabase_Test] FROM DISK = N'D:\SQLBackup\MyDatabase.bak'
WITH MOVE 'MyDatabase' TO N'D:\SQLTest\MyDatabase_Test.mdf',
MOVE 'MyDatabase_log' TO N'D:\SQLTest\MyDatabase_Test_log.ldf'
The logical file names (MyDatabase, MyDatabase_log) differ per database; RESTORE FILELISTONLY shows yours. Open the restored copy, check the latest bill or voucher is there, then delete the test copy. Never restore over the live database to "test" it: one wrong click wipes today's work.
Also keep an eye on size. Each Express database has a size limit (10 GB on most versions, 50 GB from SQL Server 2025), and Express cannot compress backups, so plan the space for full-size backup files.
How JS1 Vault does it
JS1 Vault does all of this for you, on SQL Server Express or any other edition, without SQL Server Agent:
- It backs up your databases every evening with checksums, verifies each copy, and encrypts it on your PC before it leaves.
- Copies are kept in India, daily for a week, weekly for four weeks and monthly for a year, and cannot be changed or deleted from your PC.
- Once a month a database copy is restored on your PC under a new name and opened, to prove it really comes back.
- An email every evening tells you all is safe, or tells you and us at once when something is wrong.
- When you need a database back, a JS1 technician restores it beside your live data, never over it.
The same agent also backs up your folders and files, including Tally, Busy and Marg data. And for how long you must keep your books, see how long to keep GST, income-tax and company records in India.
See how JS1 Vault works and start a free trial.
← Back to all posts