Deprecated Features in the SQL Server 2012 Database Engine

As you might know, Microsoft has released on March 7 the RTM version of SQL Server 2012. If you are an MSDN or TechNet Subscriber, you can already download it and play with it. As with every SQL Server release, SQL Server has also marked several features as deprecated, which means they are removed in a future version of SQL Server.

So if you are starting a new deployment or an application based on SQL Server 2012, you should check the following link which describes all the deprecated features and their replacement: In this blog posting I want to mention 2 deprecated features, because there are some big changes in SQL Server 2012.

Database Mirroring:

With the release of SQL Server 2012 and AlwaysOn Availability Groups, Database Mirroring is deprecated. Database Mirroring was introduced with SQL Server 2005 SP1 and allowed you to mirror a database synchronous and asynchronous, and optionally you had also an automatic failover if you used a witness instance (in combination with synchronous mirroring).

AlwaysOn Availability Groups is an enhanced version of Database Mirroring where you can mirror a group of databases, and where your secondary databases are readable. AlwaysOn also provides you synchronous mirroring for HA, and asynchronous mirroring for DR. One requirement of AlwaysOn Availability Groups is that you need to have a Windows Server Failover Cluster (without any Shared Storage!). The Windows Server Failover Clustering functionality is used to provide several clustering infrastructure features like Quorum settings, Intra Node Health Checking, etc.

I already talked with some of my customers, and for a few of them this is currently a big no-go, because they are currently using Database Mirroring where each partner database is not in an AD domain. So they can’t just migrate to AlwaysOn, because they are not able to create a Windows Server Failover Cluster. But that is just the way how it works now. Another drawback is that AlwaysOn Availability Groups is currently only an Enterprise Edition feature of SQL Server. Parts of Database Mirroring are also available in the Standard Edition. Microsoft suggests to use Log Shipping of your SQL Server Edition doesn’t support AlwaysOn Availability Groups.

SQL Server Profiler for Trace Capture and Trace Replay

Microsoft introduced with SQL Server 2008 Extended Events. With SQL Server 2012 Microsoft has done a lot of improvements in the area of Extended Events, for example you are now getting a very cool UI where you can define your Event Sessions in a wizard based way. On the long term Extended Events is the replacement for SQL Trace and SQL Server Profiler. Therefore those features are marked as deprecated. If you are using SQL Trace/SQL Profiler for Trace Capture and Trace Replay, SQL Server 2012 provides you a new feature called Distributed Replay, which is a high scalable distributed replaying technology.

So, if you have existing applications based on SQL Server, or you are starting a new deployment on SQL Server 2012, please review the deprecated features so that you have fewer problems in the futures.

If you are interested in SQL Server 2012, I suggest looking on my “SQL Server 2012 Deep Dive Days Workshop”, which I run from May 28 – 30 in London/United Kingdom (see, Early Bird price ends on March 31). This workshop was running this week in Vienna/Austria with a huge success and next week I’m presenting this workshop in Munich/Germany.

Thanks for reading!


3 thoughts on “Deprecated Features in the SQL Server 2012 Database Engine”

  1. The information about SQL mirroring is not 100% correct. You should clarify that SQL Miroring is part of SQL 2012 and the next version (SQL 2014?). SQL Mirroring will be usable for about 4 years from now on at least. The future is not that dark 😉 In the past we had seen may features that went from Enterprise Only to Standard editions. Maybe in SQL 2016 we will be able to use Always On with some limitations in the "cheap" Standard edition. Maybe at this time we are all running on azure or some kind of "NoSQL vNext with a little SQL function" database software 😉

  2. Great cheat sheet you have put together here. Sometimes it is more helpful to new SQL users to see an explanation in this format than reading the books online pages. Well done.

Comments are closed.