How do I restore an msdb.bak from SQL Server 2008 r2 to SQL Server 2012


I have recently had to upgrade my server following a disk failure.

The new server has arrived with SQL Server 2012, but my system database backups are from SQL Server 2008 r2, so I cannot restore them! Nice one Microsoft!

The error message is:
Msg 3168, Level 16, State 1, Line 1
The backup of the system database on the device d:\MSDB3.Bak cannot be restored because it was created by a different version of the server (10.00.4067) than this server (11.00.5058).
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

Short of finding an old version of SQL Server 2008 r2, restoring it on that and then scripting the jobs etc out, is there a better way?

Surely Microsoft must have a work around, but I can't find it anywhere!

Thanks for you help!!!
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Vitor MontalvãoMSSQL Senior EngineerCommented:
You can't restore system databases from a different SQL Server version.
If what you want to achieve is to migrate jobs, then you have two options:

1. Create a SSIS package using the TransferJobTask

2. Script the jobs and run the script in the new SQL Server instance

rwlloyd71Author Commented:
Hi Vitor,

Thanks for your comments,

Would this mean that I have to have a working version of SQL Server 2008 r2 installed?

I only have 2012 on my replacement server and I do not want to add any other editions!

Vitor MontalvãoMSSQL Senior EngineerCommented:
Truly, I can't understand what you are achieving here. I was only guessing if you want to move the jobs from servers, so I gave two solutions how to do it.

If you can explain me better what you want/need to do I will be happy to help you.
Protecting & Securing Your Critical Data

Considering 93 percent of companies file for bankruptcy within 12 months of a disaster that blocked access to their data for 10 days or more, planning for the worst is just smart business. Learn how Acronis Backup integrates security at every stage

rwlloyd71Author Commented:
In a nutshell...

I need to restore a SQL 2008 r2 MSDB.bak database on to  SQL Server 2012, but Microsoft say:

"System databases can be restored only from backups that are created on the version of SQL Server that the server instance is currently running. For example, to restore a system database on a server instance that is running on SQL Server 20012, you must use a database backup that was created after the server instance was upgraded to SQL Server 2012."

So I am stuck!

Vitor MontalvãoMSSQL Senior EngineerCommented:
Richard, that part I understood. My question is why you need to restore de MSDB from a MSSQL 2008R2 to a MSSQL 2012?
rwlloyd71Author Commented:
I used to run my websites off a SQL 2008 server, but the disk failed so I purchased a new server. My replacement server has got SQL 2012. I need to restore the backups, including SQL AGENT Jobs on to the new server.
Vitor MontalvãoMSSQL Senior EngineerCommented:
Ok. That confirmed my guess. You don't need to restore the MSDB to have your jobs back. Just follow what I said in my first comment. There's two ways to copy jobs from one server to another one.
If you have any doubts about copy the jobs, just post here what you need to go forward with this, ok?
rwlloyd71Author Commented:
Sorry Vitor, still not sure how to get access to the jobs in the .bak file if I don't restore it first?
Vitor MontalvãoMSSQL Senior EngineerCommented:
You need to restore it in a SQL Server 2008R2 instance and only after that you can get access to the jobs. The first step (restore) need to be done always.
rwlloyd71Author Commented:
Bingo! I have not got a SQL 2008 server to restore it on!
Vitor MontalvãoMSSQL Senior EngineerCommented:
You need to or you won't be able to restore the jobs.
Can't you install one and delete it after you export the jobs?
rwlloyd71Author Commented:
I have started to do this already, but it does seem a bit ridiculous that Microsoft can't restore their own backups from previous versions, or provide a work around! Mind you nothing surprises me about Microsoft anymore...

Thanks for your help anyway.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Vitor MontalvãoMSSQL Senior EngineerCommented:
Sure isn't my fault. I didn't develop SQL Server. Just work with it.
Anyway, I gave you two workarounds. Aren't you going to apply at least one of them? It's better than recreate the jobs from scratch, right?
rwlloyd71Author Commented:
When I have reinstalled SQL Server 2008, I'll give it a go!

rwlloyd71Author Commented:
Very helpful, but not able to resolve my problem in any better way than I already had in  mind. Not Vitor's fault, just the short sightedness of Microsoft!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server 2008

From novice to tech pro — start learning today.