Link to home
Start Free TrialLog in
Avatar of Richard Lloyd
Richard Lloyd

asked on

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

Hi

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!!!
Avatar of Vitor Montalvão
Vitor Montalvão
Flag of Switzerland image

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

Avatar of Richard Lloyd
Richard Lloyd

ASKER

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!

Richard
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.
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!

Richard
Richard, that part I understood. My question is why you need to restore de MSDB from a MSSQL 2008R2 to a MSSQL 2012?
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.
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?
Sorry Vitor, still not sure how to get access to the jobs in the .bak file if I don't restore it first?
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.
Bingo! I have not got a SQL 2008 server to restore it on!
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?
ASKER CERTIFIED SOLUTION
Avatar of Richard Lloyd
Richard Lloyd

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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?
When I have reinstalled SQL Server 2008, I'll give it a go!

Thanks
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!