Core component of SQL Server for storing, processing, and securing data
Use the following checks and steps, focusing on restore-specific issues for SQL Server on Linux and cross-version restores from Windows:
- Verify that the backup is supported on Linux
- SQL Server 2014 databases that use In-Memory OLTP cannot be restored directly to SQL Server on Linux. They must first be upgraded on Windows, then moved.
- If the SQL Server 2016 source database uses In-Memory OLTP and was originally created on SQL Server 2014 with In-Memory OLTP, this limitation can still apply. In that case, upgrade the database on a supported Windows instance first, then back up and restore that upgraded database to Linux.
- Always use WITH MOVE when restoring from Windows to Linux
- When restoring a database that was backed up on Windows to SQL Server on Linux, the
WITH MOVEclause is required to redirect file paths to Linux locations. Omitting it can cause restore failures. - Use
RESTORE FILELISTONLYfirst to see all logical file names in the backup:RESTORE FILELISTONLY FROM DISK = '/var/opt/mssql/backup/YourDB.bak'; GO - Then restore with explicit
MOVEclauses for all data and log files, pointing them to valid Linux paths, for example:RESTORE DATABASE YourDB FROM DISK = '/var/opt/mssql/backup/YourDB.bak' WITH MOVE 'YourDB' TO '/var/opt/mssql/data/YourDB.mdf', MOVE 'YourDB_Log' TO '/var/opt/mssql/data/YourDB_Log.ldf'; GO - If
RESTORE FILELISTONLYshows additional secondary data files, add aMOVEfor each one.
- When restoring a database that was backed up on Windows to SQL Server on Linux, the
- Confirm SQL Server 2025 on Linux prerequisites and platform
- Ensure the Linux distribution is supported for SQL Server 2025 (17.x). SUSE Linux Enterprise Server (SLES) is not supported for SQL Server 2025; if using SLES, the recommendation is to back up the databases and restore them to a supported distribution.
- Confirm that the instance is SQL Server 2025 on Linux and that system requirements are met before running the restore.
- Check for known Linux database issues
- Be aware that some TLS cipher suites and TDE-compressed backup combinations can cause restore problems on Linux. If using TDE-compressed backups from SQL Server 2019 CU16+ or specific TLS configurations, validate that the target SQL Server and OS configuration match the documented supported combinations.
- If the instance crashes repeatedly during restore
- Investigate whether the database uses features that are not supported or restricted on Linux (for example, certain In-Memory OLTP scenarios or problematic TLS cipher suites).
- If the crash is consistent with a specific backup, test restoring the same backup on a Windows SQL Server 2025 instance. If it succeeds there but crashes on Linux, this strongly suggests a Linux-specific limitation or bug; in that case, open a support case with Microsoft and provide the backup, error logs, and stack dumps.
- Basic restore verification after success
- After a successful restore, verify the database is online:
SELECT name FROM sys.databases; GO - Then switch context and run basic queries to confirm data integrity:
USE YourDB; GO SELECT TOP (100) * FROM sys.tables; GO
- After a successful restore, verify the database is online:
If the restore still crashes the instance after applying WITH MOVE correctly and confirming platform support, collect SQL Server error logs and Linux system logs around the crash and escalate to Microsoft Support, as repeated engine crashes during restore typically indicate a product defect or an unsupported feature combination.
References: