Translate

Mostrando postagens com marcador database. Mostrar todas as postagens
Mostrando postagens com marcador database. Mostrar todas as postagens

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".

sexta-feira, 17 de maio de 2024

KILL DATABASE CONNECTION. bacpac d365f&o.

 Esta é a mensagem de erro recebida ao tentar restaurar um bacpac:

Error SQL72014: Framework Microsoft SqlClient Data Provider: Msg 4630, Level 16, State 1, Line 1 The permission 'KILL DATABASE CONNECTION' is not supported in this version of SQL Server. Alternatively, use the server level 'ALTER ANY CONNECTION' permission.

Error SQL72045: Script execution error.  The executed script:

GRANT KILL DATABASE CONNECTION TO [ms_db_configreader];


Eu apontei a seguinte dica como solução, mas ela funcionou apenas 01 vez: https://fsilvajunior.blogspot.com/2024/05/kill-database-connection-erro-ao.html


A solução apresentada abaixo funcionou:

Faça o download do arquivo .bacpac e renomeio alterando a extensão para .zip




Abra o arquivo .zip e extraia o arquivo "model.xml":


Utilizando o Notepad X++ abra o arquivo e pesquise por "Grant.KillDatabaseConnection" e remova todo o conteúdo marcado:

Salve o arquivo model.xml.

Faça o download do SQLPackage mais atualizado disponivel, descompacte o arquivo para a sua pasta de preferência. Copie o arquivo model.xml e cole este arquivo dentro da pasta SQLPackage.



Agora execute o comando de restore adicionando o seguinte parâmetro: /mfp:"ModelCopy.xml"



SqlPackage.exe /a:import /sf:"c:\Temp\preprod.bacpac" /tsn:localhost /tdn:AXDB2_New /p:CommandTimeout=1200 /TargetTrustServerCertificate:True /mfp:"ModelCopy.xml"


Boa sorte!

terça-feira, 4 de junho de 2013

Dica do dia - Contadores para SQL Server

Pessoal, segue abaixo um material bem interessante onde é possível ver diversos contadores para SQL Server e entender qual a finalidade de cada um deles.

Contadores SQL Server

Indico também o acesso ao site da Quest (Dell) para mais materiais de estudo!

http://www.quest.com/techbrief/sql-server-perfmon-counters-poster811635.aspx

Espero que os ajude!