Database mirroring rambling follow-up
Posted by Szymon Wójcik on March 22, 2012
In my last post containing a number of comments on database mirroring I left some points for follow-up.
First of all, when it comes to edition requirements it stays the same for mirroring in SQL Server 2012 as it was in previous versions. However, you have remember that for high performance (asynchronous) mirroring you have to use Enterprise Edition. Confirmed by official license documentation.
Second, you have to remember that if you have mirroring set up between different database engine versions the principal has to have earlier version than the mirror. The reason for this is backward incompatibility of database versions (don’t confuse it with compatibility model) which does not allow to use a database from newer server with an older one. If you establish such mirroring, you will not be able to do failover for the same reason – after failover in this scenario a principal is of newer database version and incompatible with a mirror. The mirroring will enter paused state and will not be resumable until mirror’s version matches the principal.
I noticed that in case of SQL Server 2012 CTP0 (build 11.0.1750) and RTM (11.0.2100) – the respective database version numbers are 705 and 706, soI could mirror from CTP0 to RTM, but then in order to have a failover possibility an upgrade was required for CTP0. I had in mind building a more comprehensive list of database versions, since all information I could come up with can be summarized in a following table:
|SQL Server version||
Internal database version
|SQL Server 2012 RTM||
|SQL Server 2012 CTP0||
|SQL Server 2008 R2||
|SQL Server 2008||
|SQL Server 2005 SP2 + vardecimal enabled||
|SQL Server 2005||
|SQL Server 2000||
|SQL Server 7.0||
Third point was – I was wondering about FileTable in context of FILESTREAM incompatibility with mirroring. You can’t have both – it’s either mirroring or FILESTREAM. And after short research I found out that a FileTable is actually an extension to FILESTREAM which is designed to work with AlwaysOn. But basic assumptions remain the same and FILESTREAM is exclusive with mirroring.