MSSQL Transactional Replication different versions - sql-server

we are currently using a 2008R2 publisher/distributor for replication.
The subscribers are versions 2008R2 and 2012.
Next week, we would like to update our servers step by step.
I read in the docs, that the subscriber must be within 2 versions of the publisher.
Does this mean, i could upgrade the publisher/distributor to 2014 and use subscribers with versions 2008R2, 2012 and 2017 simultaneously? (we plan to upgrade the subscribers to SQL-server 2017)

For SQL Server 2014 publisher you can have subscribers of SQL Server 2017
SQL Server 2016,SQL Server 2014,SQL Server 2012,SQL Server 2008 R2,SQL Server 2008
So it is possible.
Matix will give you a sound idea.
https://learn.microsoft.com/en-us/sql/relational-databases/replication/replication-backward-compatibility?view=sql-server-ver15

Related

Transactional Replication failing between SQL Server 2012 and SQL Server 2016 versions

As per the Microsoft documentation - A Subscriber to a transactional publication can be any version within two versions of the Publisher version. For example: a SQL Server 2012 (11.x) Publisher can have SQL Server 2014 (12.x) and SQL Server 2016 (13.x) Subscribers; and a SQL Server 2016 (13.x) Publisher can have SQL Server 2014 (12.x) and SQL Server 2012 (11.x) Subscribers.
But the subscription I am trying to create from Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) to Microsoft SQL Server 2016 (SP2-CU12) (KB4536648) - 13.0.5698.0 (X64) is failing and here is the error message I receive - The selected subscriber does not satisfy the minimum version compatibility level of the selected publication.
Are these versions not compatible?
The other half of the version requirements is that your distributor be the highest SQL Server version in your Replication topography.
In your case, you are replicating from SQL Server 2012 to SQL Server 2016, which works only if your distributor is also SQL Server 2016.
If you are running your distribution database on your 2012 publisher, the configuration will fail when you add the subscriber because a subscriber is at a higher version than the distributor. You would need to either run a dedicated distributor (recommended) or use your 2016 subscriber as the distributor server.
The error message you posted is deceptive because it's not a subscriber/publisher version issue, but rather a subscriber/distributor version issue.

Snapshot for different SQL Server Version

Can I create a snapshot from SQL Server 2012 on a SQL Server 2008 R2 Server?
The goal is to build reporting and queries without locking the live database.
I need only a DB copy (Getdate()-1)
No, the SQL Server 2012 snapshot has specific SQL Server 2012 features in it that are not compatible with SQL Server 2008 R2. These are incompatibilities that you will not see. They are deep in the SQL Server engine. You cannot do this.
It's a similar concept to trying to restore a SQL Server 2012 database backup to a SQL Server 2008 R2 instance. The higher database version cannot backstep to a lower version.
You need to use a SQL Server of the same level or higher (I believe or higher) for your snapshot server.

Migrate SQL Server 2008 databases to 2016

We are processing to migrate SQL Server databases from 2008 to 2016.
We are searching now for expired function or utilities used in SQL Server 2008 and not available in SQL Server 2016 before migration.
Do you have reference for that?
Here are few features removed in SQL Server 2016 (from MSDN):
SQL Server 2016 is a 64-bit application. 32-bit installation is discontinued, though some elements run as 32-bit components
Compatibility level 90 is discontinued. For more information, see ALTER DATABASE Compatibility Level (Transact-SQL).
Though you are migrating from SQL Server 2008 directly to SQL Server 2016, you need to consider the removed features of SQL Server 2012 & SQL Server 2014 as well
Discontinued Database Engine Functionality in SQL Server 2014
Discontinued Database Engine Functionality in SQL Server 2012

Transaction log shipping in different edition of sql server 2014

We are considering to upgrade our Database from SQL Server 2008 R2 to SQL Server 2014. However, The new licensing with Core based seem to be very expensive.
We have one primary database and one secondary database. If we have SQL Server 2014 Enterprise Edition for the Primary database and SQL Server 2014 Standard Edition for the Secondary Database.
Question 1)
Is it possible to run transaction log shipping in different edition as above?
Question 2)
Could it be possible to run it from SQL Server 2014 to SQL Server 2008 R2?
Is it possible to run transaction log shipping in different edition as above?
Going for possibility yes it is possible to configure log shipping between SQL Server 2012 Enterprise and standard edition. But Just think of scenario where you are using enterprise features in Enterprise edition and failover happens now SQL server is on standrad edition and enterprise features will not work and you might face issue with application, some functionality crashing. I dont think you want this.
Plus again if you are using enterprise features and to configure loghshipping you take backup of enterprise edition and try to restore it on standard it would fail saying the backup has enterprise features and DB cannot be brought online because current database does not supports it
Could it be possible to run it from SQL Server 2014 to SQL Server 2008 R2?
No because you cannot restore database backup taken on SQL Server 2014 on SQL Server 2008 R2. If you like to make SQL Server 2008 R2 as primary and 2014 as secondary then you may succeed in configuring logshipping using T-SQL scripts( you cannot do it using GUI) but consider scenario where failover occurs and 2014 is new primary you cannot fail it back to 2008 r2 as Higher to lower version is not allowed.
Hope this is clear

Creating replication between SQL Server 2000 (publisher) and SQL Server 2008 (subscriber)

I have old database server as SQL Server 2000 whose data has to be periodically updated to the SQL Server 2008 server (may be one time per day). So I have planned to use the replication. First I have created distribution database in SQL Server 2000 & added the new database as publisher.
But when I created the subscriber in SQL Server 2008 & connects to SQL Server 2000 then the publisher doesn't appear in the list. What could be the reason, I am using SQL Server 2008 express edition or if any one could point out to the step by step guide for setting up replication between SQL Server 2000 and 2008? I have used the wizard in SQL Server 2000 for creating distribution & publisher.
Mixed versions are supported, but:
Distributor version must always be equal or newer than Publisher
Subscribers for transactional replication can be within 2 versions newer/older of Publisher
Subscribers for merge replication must be equal or older than Publisher

Resources