Procedimiento
Pase BD de Producción a Desarrollo
Implementación Microsoft Dynamics® 365 Finance & Operations
Preparado para:
Best Practices Consulting, S.A. de C.V.
Tabla de contenido
1 Gestión documental ... 2
1.1 Distribución del documento ... 2
1.2 Atribuciones al documento ... 2
1.3 Control de versión del documento ... 2
2 Objetivos ... 3
3 Consideraciones ... 3
4 Proceso ... 4
4.1 Actualizar BD UAT con BD PROD ... 4
4.2 Exportación de BD de UAT ... 8
4.3 Copiar BD exportada de UAT a DEV...11
4.4 Preparación de la BD en Dev ...14
4.5 Importar desarrollos desde Control de Versiones ...17
1 G ESTIÓN DOCUMENTAL
1.1 Distribución del documento
Nombre del responsable Puesto
Solme Omar Bustos Rodríguez Jefe de QA
Óscar Gómez Jefe de Desarrollo BPC
1.2 Atribuciones al documento
Rol Nombre del responsable Puesto
Elaborador Solme Omar Bustos Rodríguez Consultor Desarrollador Aprobador
Revisador
1.3 Control de versión del documento
Versión Fecha Modificado por Descripción de cambios
1.00 09/12/2020 Solme Omar Bustos
Rodríguez Archivo de nueva creación.
1.01 19/01/2020 Solme Omar Bustos
Rodríguez Modificación en sección Consideraciones.
2 O BJETIVOS
• Describir el procedimiento de pase de una base de Producción a un ambiente de desarrollo.
3 C ONSIDERACIONES
• Las rutas de las herramientas dependen de la versión de SQL que esté instalada en la VM de desarrollo.
• El tiempo de descarga de los archivos dependerá del ancho de banda del equipo donde se esté realizando el procedimiento.
• El procedimiento se deberá realizar con el usuario administrador de LCS y con el usuario administrador de la VM.
• Las sesiones de MS-DOS, SSMS, VS deberán ejecutarse como administrador.
• Los desarrollos por incorporar al ambiente de desarrollo deberán estar en el control de versiones, de forma completa y sin errores.
• En caso de que ya existe una base de datos UAT, hay que cambiarle el nombre. Ver paso 37.
4 P ROCESO
4.1 Actualizar BD UAT con BD PROD
El presente procedimiento se basa en la documentación de Microsoft:
https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/database/dbmovement- scenario-exportuat
No. Descripción Imagen
1 Ingresar a LCS, seleccionar proyecto y ambiente UAT.
2 Seleccionar Mantenimiento ->
Mover base de datos.
No. Descripción Imagen
3 Seleccionar Punto de restauración
4 Seleccionar fecha del punto del respaldo de la BD.
5 Aceptar.
No. Descripción Imagen
6 Proceso encolado.
7 Notificación por correo del arranque del proceso.
8 Inicio de proceso de restauración de la BD en UAT.
No. Descripción Imagen
9
Monitorear avance.
Tiempo aproximado: 2 horas.
10
Monitorear avance.
Tiempo aproximado: 2:30 horas.
11
Finalización.
Tiempo aproximado: 2:50 horas.
12 Notificación por correo.
4.2 Exportación de BD de UAT
No. Descripción Imagen
13 Seleccionar Mantenimiento ->
Mover base de datos.
14 Seleccionar exportar base de datos.
15 Aceptar condiciones. Clic en Enviar.
No. Descripción Imagen
16 Proceso encolado.
17 Notificación por correo.
18 Inicia proceso de exportación de BD de UAT.
No. Descripción Imagen
19
Monitorear avance.
Finalización del proceso.
Tiempo aproximado: 0:30 horas.
20 Notificación por correo.
21 Ir a la librería de activos.
No. Descripción Imagen
22 Seleccionar respaldo de BD de UAT.
23
Editar datos del respaldo de BD de UAT, indicando versión de D365 e iniciales del que realizó la copia.
4.3 Copiar BD exportada de UAT a DEV
No. Descripción Imagen
24
Dar clic en la liga del respaldo.
Esperar a que se descargue.
Tiempo aproximado: 2 minutos (100 Mbps).
Nota: Afectación por el ancho de banda de la conexión.
No. Descripción Imagen
25
Seleccionar la VM de desarrollo.
Seleccionar Cloud-hosted environments.
26
Seleccionar ambiente e iniciar prendido de este en caso de estar apagado.
27 Descargar RDP e iniciar sesión como administrador.
28
Guardar en carpeta C:\Temp la base BacPac.
Nombrar la base como uat.bacpac.
Buscar
Ejecutar comando:
No. Descripción Imagen SqlPackage.exe /a:import
/sf:C:\Temp\uat.bacpac /tsn:localhost /tdn:uat /p:CommandTimeout=1200
Nota1: La ruta puede cambiar (140 o 150).
Nota2: El nombre de la base de datos debe ser único en cada importación. Ejemplo: uat.bacpac, uat1.bacpac, uat2.bacpac, etc.
29
En caso de error del modelo, actualizar a la versión más reciente:
• Microsoft® SQL Server® Data- Tier Application Framework.
• SQL Server Management Studio.
• .NET Framework para sqlPackage.
• Descargar sqlpackage en C:\Temp
https://www.microsoft.com/en-
us/download/confirmation.aspx?id=100297
https://docs.microsoft.com/en-us/sql/ssms/download-sql-server- management-studio-ssms?view=sql-server-2017
https://docs.microsoft.com/en-us/sql/tools/sqlpackage- download?view=sql-server-ver15
30
Ejecutar comando
cd C:\Temp\sqlpackage
SqlPackage.exe /a:import
/sf:C:\Temp\uat.bacpac /tsn:localhost /tdn:uat /p:CommandTimeout=1200
31
Monitorear avance.
Tiempo aproximado de avance: 1:30 hrs.
32
Proceso finalizado.
Tiempo aproximado: 2:00 hrs.
4.4 Preparación de la BD en Dev
No. Descripción Imagen
33
Abrir SSMS como administrador, abrir una ventana Query
seleccionando la base uat y ejecutar los scripts indicados por Microsoft.
34 Scripts
CREATE USER axdeployuser FROM LOGIN axdeployuser EXEC sp_addrolemember 'db_owner', 'axdeployuser'
CREATE USER axdbadmin FROM LOGIN axdbadmin EXEC sp_addrolemember 'db_owner', 'axdbadmin'
CREATE USER axmrruntimeuser FROM LOGIN axmrruntimeuser EXEC sp_addrolemember 'db_datareader', 'axmrruntimeuser' EXEC sp_addrolemember 'db_datawriter', 'axmrruntimeuser'
CREATE USER axretaildatasyncuser FROM LOGIN axretaildatasyncuser EXEC sp_addrolemember 'DataSyncUsersRole', 'axretaildatasyncuser'
CREATE USER axretailruntimeuser FROM LOGIN axretailruntimeuser EXEC sp_addrolemember 'UsersRole', 'axretailruntimeuser' EXEC sp_addrolemember 'ReportUsersRole', 'axretailruntimeuser'
CREATE USER axdeployextuser FROM LOGIN axdeployextuser
EXEC sp_addrolemember 'DeployExtensibilityRole', 'axdeployextuser'
CREATE USER [NT AUTHORITY\NETWORK SERVICE] FROM LOGIN [NT AUTHORITY\NETWORK SERVICE]
EXEC sp_addrolemember 'db_owner', 'NT AUTHORITY\NETWORK SERVICE'
UPDATE T1
SET T1.storageproviderid = 0 , T1.accessinformation = '' , T1.modifiedby = 'Admin' , T1.modifieddatetime = getdate() FROM docuvalue T1
WHERE T1.storageproviderid = 1 --Azure storage
DROP PROCEDURE IF EXISTS SP_ConfigureTablesForChangeTracking DROP PROCEDURE IF EXISTS SP_ConfigureTablesForChangeTracking_V2 GO
-- Begin Refresh Retail FullText Catalogs DECLARE @RFTXNAME NVARCHAR(MAX);
DECLARE @RFTXSQL NVARCHAR(MAX);
DECLARE retail_ftx CURSOR FOR
SELECT OBJECT_SCHEMA_NAME(object_id) + '.' + OBJECT_NAME(object_id) fullname FROM
FETCH NEXT FROM retail_ftx INTO @RFTXNAME;
BEGIN TRY
WHILE @@FETCH_STATUS = 0 BEGIN
PRINT 'Refreshing Full Text Index ' + @RFTXNAME;
EXEC SP_FULLTEXT_TABLE @RFTXNAME, 'activate';
SET @RFTXSQL = 'ALTER FULLTEXT INDEX ON ' + @RFTXNAME + ' START FULL POPULATION';
EXEC SP_EXECUTESQL @RFTXSQL;
FETCH NEXT FROM retail_ftx INTO @RFTXNAME;
END END TRY BEGIN CATCH
PRINT error_message() END CATCH
CLOSE retail_ftx;
DEALLOCATE retail_ftx;
-- End Refresh Retail FullText Catalogs
ALTER DATABASE uat SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 6 DAYS, AUTO_CLEANUP = ON);
35 URL de apoyo
https://brianjparker.tech.blog/2018/04/18/importing-an-azure-bacpac-to- a-development-vm/
https://jyothisrinivas.blogspot.com/2020/03/checklist-for-restore-bacpac- file-in.html
36 Detener servicios
World Wide Web Publishing Service Management Reporter 2012 Process Service
Microsoft Dynamics 365 Unified Operations Batch Management Service Microsoft Dynamics 365 Unified Operations Data Import Framework Service
37 Renombrar base AxDB a AxDB_Original.
ALTER DATABASE AxDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO
ALTER DATABASE AxDB MODIFY NAME = AxDB_Original GO
ALTER DATABASE AxDB_Original SET MULTI_USER GO
38 Renombrar base uat a AxDB.
ALTER DATABASE UAT SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO
ALTER DATABASE UAT MODIFY NAME = AxDB GO
ALTER DATABASE AxDB SET MULTI_USER GO
39 Iniciar servicios
Microsoft Dynamics 365 Unified Operations Data Import Framework Service
Microsoft Dynamics 365 Unified Operations Batch Management Service Management Reporter 2012 Process Service
World Wide Web Publishing Service
40
En VS compilar todos los modelos con la opción de sincronizar base de datos.
41
Fin de proceso.
No deben existir errores.
Tiempo aproximado: 2:00 hrs.
42 Confirmar ambiente disponible.
4.5 Importar desarrollos desde Control de Versiones
No. Descripción Imagen
43 Descargar todos los modelos y desarrollos del control de versiones.
44 Compilar y sincronizar. En caso de error, revisar que cada uno de estos sean resueltos.