SQL Server 2008 SP1 To Old for Replication?
We are in the middle of a platform upgrade project at work, and I was setting up replication on a newly flattened and rebuilt server with Windows Server 2008 R2 and SQL Server 2008 SP1. I remoted into the publisher server to set up replication. When I expanded the Local Publications and Local Subscriptions nodes under Replication in Object Explorer, I got an odd error:
Operation not supported on version 10.0. (Microsoft.SqlServer.SqlEnum)
What? Since when? I decided to try right-clicking on the Local Publications node and creating a new publication. When I clicked on New Publication, I got this even more confusing error:
You cannot create a publication from server '<server name>' because the server is too old.
What the heck does that mean?
It's SQL 2008 SP1 (versiion # 10.0.2531). I double checked to make sure!! I searched the internet looking for some clue as to what was going on and got 0 hits. Nobody has experienced this before???
My head started racing with images of uninstalling and reinstalling SQL Server on this machine that we had just migrated to in our production training environment. I was alone in my office at the time, so I said out loud, "CRAP!!" The way I said it, it probably like 5 or 6 A's in it.
And then it struck me!!
I had remoted into the old server even though I had connected to the new server in SSMS. I was trying to set up replication in SQL Server 2008 using an instance of Management Studio that was SQL Server 2005. Then everything clicked in place. It wasn't the server that was too old, it was the version of SSMS that I was using that was too old. The initial error made more sense too. They changed the SMO components in SQL 2008 and even broke the Microsoft.SqlServer.SMO component apart into 2 components. The new component is Microsoft.SqlServer.SMOExtended. So no big surprise that the SQL 2005 SMO wasn't able to work properly against a SQL 2008 server.
Well, obviously, I felt like a dodo. But besides that, I was dismayed at how misleading the error was. I could have headed down a bad road if I hadn't realized my mistake. I can't test, for obvious reasons, to see if the same problem would exist between SQL Server 2008 SSMS and the next major version of SQL Server (SQL 11). If it is still an issue, I hope they get it fixed before SQL 11 comes out.
I submitted a connect item for it: https://connect.microsoft.com/SQLServer/feedback/details/586246/replication-error-misleading-you-cannot-create-a-publication-from-server-server-name-because-the-server-is-too-old
This post was cross-posted from the main SQLSoldier blog. Please visit the source blog to leave a comment: http://www.sqlsoldier.com/wp/sqlserver/sqlserver2008sp1toooldforreplication