I have a requirement to get rid of our old servers, however one of them includes a database server that is currently using SQL Server 2005.
We have a new server running with 2016 so I wanted to know the best way to upgrade. From what I have discovered is that ideally we would need 2008 as an interim step. However as we do not have 2008 and this cost more I have been looking at the possibility of doing a 2005 back up and then a 2016 restore.
I have tested this out with a very simple db and it seems to work. However I have read that I should change the compatibility level from 100 (use to be 90) to 130. My question is, is the necessary? After all some of these old db's are old legacy databases which require very little change. Is it really worth it?
So what I will not be able to use the fancy new ways of doing stuff, but as these are old does that matter? After all its not like it is needed otherwise we would not have created these db. I am yet to still test with a more complex db but wanted to make sure I am on the right path.
Best Answer
Since you are migrating to a new server, you don't need to bring SQL Server 2008 into the mix.
As stated by SQL Server expert Paul Randal, You can upgrade from any version 2005+ to any other version. Paul states:
As for changing the compatibility level, I'd recommend not changing that for several weeks and let the dust settle from the upgrade. After you're confident that everything is functioning properly from the upgrade, why not bump the compatibility level up to the maximum and monitor performance. You might even see an improvement in performance. However, compatibility levels from 120 (SQL Server 2014) and above bring the new cardinality estimator into play, which might present some performance problems. If you want, you can be more selective in your testing of the new cardinality estimator by using
OPTION (QUERYTRACEON 2312)
on selected queries. You can always reduce the level should problems arise. Do some internet searches on sql server 2014 cardinality estimator issues to familiarize yourself with possible issues.At some point in the future when you upgrade to a later release of SQL Server, you WILL have to eventually increase the compatibility level.
Finally, check out Upgrade SQL Server for a checklist of items to consider for upgrading SQL Server.
Referencing ALTER DATABASE (Transact-SQL) Compatibility Level: