How to Fix “Incorrectly Formed Media Family” Error When Restoring SQL Server 2005 Backup to SQL Server 2000


2 views

When attempting to restore a SQL Server 2005 database backup to a SQL Server 2000 instance, you're likely encountering compatibility issues. The "incorrectly formed media family" error (Error 3241) typically occurs when there's a version mismatch in the backup format.

SQL Server backups aren't fully backward compatible. While SQL Server 2000 uses a media format version 8.x, SQL Server 2005 uses version 9.x. The Enterprise Manager in SQL Server 2000 cannot properly interpret the newer backup format.

Here are three proven methods to migrate your database:

Method 1: Generate Scripts with Data

Use SQL Server Management Studio 2005 to script both schema and data:

-- In SSMS 2005:
1. Right-click database → Tasks → Generate Scripts
2. Select all objects
3. Check "Script data" option
4. Run generated script on SQL Server 2000

Method 2: Use DTS or BCP

Transfer data using the Data Transformation Services (DTS) or Bulk Copy Program (BCP):

-- BCP example:
bcp AdventureWorks.HumanResources.Department out Departments.bcp -n -S server2005 -T
bcp AdventureWorks.HumanResources.Department in Departments.bcp -n -S server2000 -T

Method 3: Third-Party Tools

Consider using tools like Redgate SQL Data Compare or ApexSQL Diff that specialize in cross-version migrations.

If you must use native backup/restore, first create a SQL Server 2000 compatible backup:

-- In SQL Server 2005:
BACKUP DATABASE YourDB TO DISK = 'C:\temp\YourDB.bak' 
WITH FORMAT, COMPATIBILITY_LEVEL = 80
  • Test the migration in a non-production environment first
  • Verify that all SQL Server 2005 features used in your database are supported in 2000
  • Check for deprecated features that might cause issues
  • Consider upgrading the production server if possible

For large databases, perform the migration during low-usage periods and consider breaking the process into smaller batches.


When attempting to restore a SQL Server 2005 database backup (6MB .bak file) to a SQL Server 2000 instance, you're immediately hitting Error 3241 with the message "The media family on device is incorrectly formed." This occurs during both RESTORE DATABASE and RESTORE FILELIST operations.

The fundamental issue stems from version incompatibility. SQL Server backups contain metadata in a format specific to their native version. SQL Server 2005 uses a different backup media format (version 9.0) than SQL Server 2000 (version 8.0). The server literally can't read the backup's header information.

Option 1: Generate Scripts with Schema+Data

Use SQL Server 2005's Generate Scripts feature with these settings:

-- Example: Generate schema script
USE [YourDatabase]
GO
EXEC sp_script_schema_and_data 
@schema = 'dbo',
@object_name = '%',
@script_data = 1,
@file_name = 'C:\output.sql'
GO

Option 2: Use BCP for Data Transfer

Export/import using bulk copy:

-- On Source (2005)
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE

-- Export table
EXEC xp_cmdshell 'bcp "SELECT * FROM YourDb.dbo.YourTable" queryout "C:\data.csv" -c -t, -T -S YourServer'

Option 3: Third-Party Tools

Tools like Redgate SQL Data Compare or ApexSQL Diff can handle cross-version migrations effectively.

  • SQL Server 2005 features (varchar(max), XML datatype) won't work in 2000
  • Verify collation compatibility between servers
  • Check for deprecated syntax in stored procedures

If possible, restore to an intermediate SQL Server 2005 instance first:

-- On intermediate 2005 server
RESTORE DATABASE TempDB 
FROM DISK = 'E:\backup.bak'
WITH 
MOVE 'LogicalData' TO 'E:\Data\TempDB.mdf',
MOVE 'LogicalLog' TO 'E:\Logs\TempDB.ldf'

Then generate compatible scripts from this temporary database.

Always verify backup compatibility before migration attempts:

-- Check backup header (on source server)
RESTORE HEADERONLY 
FROM DISK = 'E:\backup.bak'