Translate

segunda-feira, 21 de outubro de 2024

Restaurar AxDB de uma VM para um ambiente Tier 2(PréProd ou Prod).

 É comum que antes de um D365F&O entrar em produção você precise pegar um banco de dados de um ambiente Tier 1, seja ele uma VM no Azure ou hospedada em seu servidor local.

Muitos testes e parametrizações são feitas na fase inicial, quando tudo está pronto para entrar em produção, esta movimentação é necessária.

Neste tutorial vamos preparar uma base de dados hospedada em minha VM de desenvolvimento e fazer o upload dela para o LCS.

Com o arquivo de backup disponivel no LCS, poderemos restaurar ela em um ambiente Tier 2 e consequentemente executar a restauração para o ambiente de produção!

Já existem diversos tutoriais na internet que tratam deste assunto. Registro este processo aqui simplesmente pelo fato de sempre ter funcionado em minhas atividades e para me servir de consulta em trabalhos futuros!

O primeiro passo para este processo é executar o backup de seu banco de dados em sua VM, depois você deve restaurar este backup também em seu SQL Server. 

Obs: Se você não souber fazer um backup/restore em seu SQL Server, larga tudo e me liga!!!

Ao final deste processo você terá 02 bancos de dados disponiveis, algo mais ou menos assim:


Detalhes importantes:

  • Nenhuma informação gravada de forma criptografada será migrada, é obrigatório recriar estas informações após a movimentação.
  • A collation do banco de dados DEVE ser a seguinte: SQL_Latin1_General_CP1_CI_AS

Agora precisamos "preparar" o banco de dados. Devemos executar o script abaixo, este script executará as alterações necessárias para que o banco de dados possa ser utilizado na nova estrutura de servidores onde ele ficará armazenado. Mais detalhes sobre as alterações você encontrará no final deste tutorial!

Script:

update sysglobalconfiguration

set value = 'SQLAZURE'

where name = 'BACKENDDB'

update sysglobalconfiguration

set value = 1

where name = 'TEMPTABLEINAXDB'

drop procedure XU_DisableEnableNonClusteredIndexes

drop procedure if exists SP_ConfigureTablesForChangeTracking

drop procedure if exists SP_ConfigureTablesForChangeTracking_V2

drop schema [NT AUTHORITY\NETWORK SERVICE]

drop user [NT AUTHORITY\NETWORK SERVICE]

drop user axdbadmin

drop user axdeployuser

drop user axmrruntimeuser

drop user axretaildatasyncuser

drop user axretailruntimeuser

drop user axdeployextuser

-- Clear encrypted hardware profile merchand properties

update dbo.RETAILHARDWAREPROFILE set SECUREMERCHANTPROPERTIES = null where SECUREMERCHANTPROPERTIES is not null

Depois de ter executado o script contra a base de dados correta, vamos exporta-la no formato .bacpac.

Eu tenho o costume de SEMPRE baixar o SQLPackage, já tive problemas com versões desatualizadas!

https://aka.ms/sqlpackage-windows

Obs2: Se não sabe, me liga!

Obs3: o D365fo.tool também pode ser utilizado neste caso!

SqlPackage.exe /a:export /ssn:localhost /sdn:AxDBToLCS /tf:c:\temp\AXDBToLCS.bacpac /p:CommandTimeout=4200 /p:VerifyFullTextDocumentTypesSupported=false /SourceTrustServerCertificate:True

Agora que temos o arquivo .bacpac de nosso banco de dados preparado após execução do script, é só fazer o upload dele para o LCS Assets.


Acesse seu LCS Asset Library, clique no sinal de + selecione as opções conforme o print abaixo e clique em "Add a File".
Selecione seu arquivo .bacpac e clique em Upload:
Aguarde o upload do arquivo e depois clique no botão "Confirm". Seu arquivo em breve estará disponivel no Assets do LCS!

Dica: Eu sempre uso uma VM no Azure, o upload é sempre mais rápido!


No LCS, escolha o ambiente Tier 2 a receber o backup, clique em "Mantain > Move Database".

Agora escolha a opção "Import Database":
Selecione o arquivo salvo no passo anterior, marque a caixa de seleção e clique em "Submit".

Nenhum comentário:

Postar um comentário