SQL Server Log shipping diferentes versões.

Esta semana surgiu a dúvida em um grupo do DBA Brasil. Seria possível utilizar o Log shipping com diferentes versões? A resposta curta e direta, é sim. Basicamente o funcionamento do Log shipping é backup de log e restore, mas para confirmar o meu pensamento, configurei um Log shipping e efetuei os testes para comprovar a minha teoria.

Arquitetura:

Pré-requisitos para utilizar o Log shipping entre diferentes versões:

1 – É importante verificar se alguma feature da edição enterprise está habilitada e desativar, dessa forma garante a compatibilidade de features entre as edições.

SELECT feature_name
FROM sys.dm_db_persisted_sku_features;
GO

2 – Não é possível fazer a leitura no database em standby mode.

3 – A versão de origem do Log shipping deve ser menor do que a versão de destino, por exemplo, 2012 para 2017, o inverso não é possível.

Agora irei realizar os testes e demonstrar que é possível utilizar o Log shipping com diferentes versões, para este exemplo estou usando o SQL Server 2012 com SQL Server 2017.

Versão e edição do SQL Server 2012 de origem com Log shipping:

select serverproperty('machinename') as [machinename], 
serverproperty('servername') as [servername], 
@@version version,
serverproperty('edition') as [edition],
serverproperty('productlevel') as [productlevel],
serverproperty('productupdatelevel') as [productupdatelevel],
serverproperty('productversion') as [productversion],
serverproperty('productupdatereference') as [productupdatereference],
convert (varchar(256), serverproperty('collation'))  collation

Versão e edição do SQL Server 2017 de destino com Log shipping:

Irei criar um database com uma tabela na versão com 2012, adicionei este database no Log shipping e realizei algumas cargas de dados para testes:

create database db_teste
go
use db_teste
go
create table tb_dados([id] [int] identity(1,1) not null, descricao varchar(max));

declare @i int = 0
while @i < 500
begin
    set @i = @i + 1
	insert into tb_dados (descricao) values ('please note: refer to your license terms for microsoft sql server 2014 software (the software)
	 to identify the entity licensing this supplement to you and for support information. you may use a copy of this supplement with each validly licensed copy of the software. you may not use the supplement if you do not have a license for the software. the license terms for the software apply to your use of this supplement.
	 canada.  you may stop receiving updates by turning off the automatic update feature or by turning off internet access. refer to the product documentation to learn how to turn off updates for your specific device or software.')
end

Verificando backups de logs aplicados pelo Log shipping no destino na versão do SQL Server 2017:

Status do Log shipping:

Para os curiosos assim como eu, o que aconteceria se fosse habilitado o standby mode, habilitei e fiz o teste, abaixo podemos ver o ocorrido:

Erro ao aplicar o backup de log no Log shipping:

Date		25/10/2023 16:59:33
Log		Job History (LSRestore_WIN-6PF17Q3PBGA\SQL2012_db_teste)

Step ID		1
Server		WIN-6PF17Q3PBGA\SQL2017
Job Name		LSRestore_WIN-6PF17Q3PBGA\SQL2012_db_teste
Step Name		Log shipping restore log job step.
Duration		00:00:01
Sql Severity	0
Sql Message ID	0
Operator Emailed	
Operator Net sent	
Operator Paged	
Retries Attempted	0

Message
2023-10-25 16:59:34.35	*** Error: Could not apply log backup file 'C:\backups\2012_2014\2014\db_teste_20231025195000.trn' to secondary database 'db_teste'.(Microsoft.SqlServer.Management.LogShipping) ***
2023-10-25 16:59:34.35	*** Error: This backup cannot be restored using WITH STANDBY because a database upgrade is needed. Reissue the RESTORE without WITH STANDBY.
RESTORE LOG is terminating abnormally.(.Net SqlClient Data Provider) ***

O erro é bem claro, ao disponibilizar o database para realizar a leitura no standby, foi feito o upgrade automaticamente pelo SQL Server da versão 2012 para 2017, desta forma não é compativel a funcionalidade do standby mode entre diferente versões.

Criei esse post devido a dúvida levantada e ao pouco material que encontrei sobre as versões diferentes envolvidas em um ambiente com Log shipping.

search previous next tag category expand menu location phone mail time cart zoom edit close