Cómo migrar de Oracle a SQL Server

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > ¿Cómo hacer? .... > Temas de interés general >

Cómo migrar de Oracle a SQL Server

Introducción

Cuando construye aplicaciones de procesos, usted inicia con Bizagi Studio y utiliza un repositorio de base de datos para guardar los procesos.

Como se menciona en requisitos de la base de datos, usted puede escoger Oracle o SQL Server como su motor de base de datos. Cuando quiera publicar sus procesos en la nube (utilizando Automation Service), uno de los requisitos es que la base de datos se ejecute en SQL Server.

 

Con esto en mente, el siguiente artículo describe cómo puede migrar la base de datos de su proyecto de Oracle a SQL Server. Este procedimiento permite exportar desde una base de datos Oracle aquellas tablas, vistas, índices, procedimientos almacenados y funciones creadas en Bizagi Studio como resultado de la implementación de un proceso. Por consiguiente, aquellos elementos añadidos a la base de datos por fuera de Bizagi Studio (a excepción de índices) no serán incluidos en la migración, ya que fueron creados fuera del entorno de Bizagi.

 

Importante

Tenga en cuenta las siguientes recomendaciones:

 

Siempre trabaje con una réplica de la base de datos en lugar de apuntar a la que está operando

Siempre cree primero un backup de la base de datos y restáurelo en una base de datos alterna para que pueda trabajar con la copia y no afectar la que se encuentra operativa.

Esta medida sirve como una buena práctica para evitar problemas que puedan afectar sus bases de datos operativas.

 

Siempre realice primero los procedimientos en su ambiente de desarrollo

Se recomienda realizar este procedimiento y realizar pruebas de unidad para verificar que los procesos existentes se comporten como se espera en el ambiente de desarrollo.

Una vez haya hecho esto, realice los procedimientos en el ambiente de pruebas y realice pruebas de aceptación en este ambiente.

Solo cuando se haya verificado que los proceso funcionan correctamente tanto en el ambiente de desarrollo como en el pruebas, puede ejecutar los procedimientos en su ambiente de producción.

 

Planee la migración y coordínela con su equipo

Una migración debería coordinarse previamente, de tal forma que los involucrados estén enterados y alineados con el plan.

De esta forma, usted puede comunicar el tiempo de inactividad.

Por ejemplo, cuando empiece a actualizar un ambiente, debe asegurarse de que las personas no van a estar trabajando en dicho ambiente en la franja de tiempo dada por medio de una notificación enviada de antemano.

 

Planee la migración del ambiente de producción y coordine para que se realice en horas no laborales

Como se mencionó anteriormente, una migración implica un tiempo planeado de inactividad.

Una migración debería coordinarse previamente y debe ser durante la mejor franja de tiempo que implique horas no laborales.

 

Antes de empezar

El procedimiento descrito a continuación aplica a cada uno de sus ambientes por separado.

Esto significa que necesita asegurarse de que que tanto los prerrequisitos se cumplan así como que el procedimiento se realice de forma separada en cada ambiente; y como se mencionó anteriormente, primero realice el procedimiento en el ambiente de desarrollo, luego en el ambiente de pruebas y por último en el ambiente de producción.

 

Prerrequisitos

Para migrar la base de datos de Oracle a SQL Server, se requiere lo siguiente:

Su proyecto debe estar en una versión 11.2.x de Bizagi. Si está en una versión anterior, la base de datos del proyecto debe migrarse a la versión 11.2 o a una superior.

Necesita haber creado la réplica de la base de datos de su ambiente actual.

Necesita instalar una instancia de SQL Server (versión 2016, 2014 o 2012) que cumpla con lo siguiente:

oTenga espacio en disco equivale al menos al doble del tamaño que ocupa actualmente su base de datos Oracle.

oEsté instalada en un servidor con el mismo segmento de red que la base de datos Oracle (con baja latencia entre ambos servidores).

oInstalar SQL Server Management Studio.

Necesita instalar Oracle Provider for OLE DB en el servidor de SQL Server.

Descargue Oracle Provider for OLE DB desde la página oficial de Oracle.

Necesita instalar Bizagi Studio (para el ambiente de desarrollo) o el Bizagi Management Console (para los ambientes de pruebas y producción) con acceso a los servidores de base de datos.

Necesita descargarlos scripts de migración que provee Bizagi Ltd.

Descargue los scripts aquí.

 

¿Qué necesita hacer?

Siga este procedimiento por un usuario administrador de sus bases de datos Oracle y SQL Server:

 

1. Prepare SQL Server para soportar la migración

2. Prepare Oracle para soportar la migración

3. Copie la estructura de datos de Oracle a SQL Server

4. Ejecute los scripts de migración de datos

5. Realice verificaciones y activaciones en SQL Server

6. Realice las pruebas

 

Procedimiento

1. Prepare SQL Server para soportar la migración

En este paso, usted prepara la base de datos destino para consultar y agregar información desde la base de datos de Oracle.

 

1.1. Configure un servidor enlazado (linked server)

Para preparar a SQL Server para que soporte la migración, asegúrese de que el parámetro Allow inprocess esté activo en ña base de datos destino. Actívelo utilizando SQL Server Management Studio, haga clic derecho sobre el nodo OraOLEDB.Oracle ubicado en [DB_Server] > Server Objects > Linked Servers > Providers y seleccione Properties.

 

MigrateOra2SQLS_20

 

Marque la casilla de Allow inprocess para habilitar esta propiedad y haga clic en OK.

 

MigrateOra2SQLS_21

 

1.2. Cree la base de datos destino

En el servidor destino (donde está instalado SQL Server) cree una base de datos de Bizagi en blanco donde los datos serán migrados. Para esto, ejecute la aplicación CreateDatabase. Para más información, consulte Deployment Avanzado.

La aplicación CreateDatabase y su configuración viene instalada por defecto donde está instalado el Management Console (en C:\Program Files\Bizagi\Bizagi Studio\MC\).

 

1.2.1. Edite el archivo de configuración de CreateDatabase

Realice la siguiente configuración en el servidor destino para crear la base de datos:

 

MigrateOra2SQLS_03

 

Para configurarla, debe asegurarse de especificar la conexión y el proveedor como se describe a continuación.

 

<add key="DSNDB" value="Persist Security Info=True;User ID=[SQL_Login];Password=[Login_password];Data Source=[DB_Server]\[Named_instance];Initial Catalog=[Database];" />

<add key="PROVIDERTYPE" value="MSSqlClient" />

Considere:

[SQL_Login]: La cuenta que se utiliza para conectar a la instancia de la base de datos SQL Server destino

[Login_password]: La contraseña para la cuenta anterior. Recomendamos cifrar la contraseña utilizando la funcionalidad de Cifrado de Clave

[DB_Server]: Nombre o dirección IP del servidor de base de datos destino. Utilice\[Named_instance] cuando aplique, si su instancia de base de datos no es la predeterminada por defecto

[Database]: el nombre de la base de datos destino que será creada

 

note_pin

Cuando configure el ejecutable, la cuenta de SQL Server requiere privilegios de sysadmin.

 

1.2.2. Ejecute el archivo CreateDatabase executable

Una vez haya configurado la conexión a la base de datos destino. Ejecute CreateDatabase.exe:

 

MigrateOra2SQLS_04

 

Seleccione Create Bizagi Test Database. Después, haga clic en Yes en la ventana de confirmación.

 

MigrateOra2SQLS_05

 

Se muestra un mensaje de confirmación para informarle que el procedimiento a concluido de forma exitosa.

 

MigrateOra2SQLS_06

 

2. Prepare Oracle para soportar la migración

Recomendamos generar un backup del esquema de proyecto. Para esto, siga el procedimiento descrito en Cómo crear un backup en Oracle.

Si tomó el backup, restáurelo en el mismo servidor de Oracle o en otro en el mismo segmento de red. Para esto, siga el procedimiento descrito en Cómo restaurar un bakcup en Oracle.

 

note_pin

El log configurado en este paso no debe mostrar ningún error relacionado a la ejecución del backup. Si se presenta algún error, repárelo y repita el procedimiento hasta que sea exitoso.

 

2.1. Configure la base de datos origen en modo desarrollo

Este paso es requerido para los ambientes de pruebas y producción. Omita este paso si está migrando la base de datos del ambiente de desarrollo.

Para poder realizar el proceso de export, la base de datos de origen debe estar en modo desarrollo (Development). Este paso se realiza ejecutando el script 01_Environment_ConfigurationORACLE.sql en la base de datos origen.

 

Asegúrese de que la variable @EnvName tenga el valor Development.

 

MigrateOra2SQLS_01

 

Una vez el script haya sido ejecutado. Ejecute el siguiente script para validar que la base de datos esté en modo desarrollo:

 

SELECT * FROM BIZAGIINFO WHERE bainfo = 'Environment';

 

El resultado esperado es el siguiente:

 

MigrateOra2SQLS_02

 

2.2. Valide que la base de datos esté en solo lectura

Antes de continuar, asegúrese de que nadie esté trabajando en esta base de datos, de tal forma que no hayan cambios en su estructura o en los datos. por lo tanto, la base de datos debe estar aislada de aplicaciones externas que puedan modificarla durante el procedimiento de migración.

 

3. Copie la estructura de datos de Oracle a SQL Server

En este paso, se migra la estructura básica del proyecto de Bizagi desde Oracle a QL Server.

 

3.1. Exporte un archivo .bex desde su base de datos de origen

Para exportar la estructura del proyecto de la base de datos Oracle, ejecute la aplicación Export. Para más información consulte Deployment avanzado.

La aplicación Export y su configuración viene instalada por defecto donde está instalado el Management Console (en C:\Program Files\Bizagi\Bizagi Studio\MC\).

 

3.1.1. Edite el archivo de configuración de Export

Realice la siguiente configuración en el servidor origen para generar el paquete de deployment:

 

Para configurar este archivo, agregue la siguiente llave bajo la llave ProofConcept_Utility:

 

<add key="ExportCompleteCatalog" value="True" />

 

MigrateOra2SQLS_07

 

Adicionalmente, asegúrese de especificar la conexión y el proveedor como se describe a continuación.

 

<add key="DSNDB" value="Data Source=[DB_Server]:[Port_number]/[Service];User ID=[User_schema];Password=[User_schema_password];Unicode=True;" />

<add key="PROVIDERTYPE" value="Oracle" />

Considere:

[DB_Server]: Nombre o dirección IP del servidor de base de datos origen.

[Port_number]: Puerto TCP utilizado para la conexión al servicio de la base de datos origen.

[Service]: La identificación del servicio de la instancia de Oracle origen.

[User_schema]: Nombre de la base de datos del ambiente del proyecto origen.

[User_schema_password]: La contraseña de dicho esquema de usuario. Recomendamos cifrar la contraseña utilizando la funcionalidad de Cifrado de Clave.

 

3.1.2. Ejecute la aplicación Export

Una vez haya configurado la conexión a la base de datos origen. Ejecute Export.exe como administrador.

 

Seleccione TODOS los procesos

 

MigrateOra2SQLS_32

Seleccione TODOS los elementos en la pestaña Experience.

 

MigrateOra2SQLS_33

 

Luego, haga clic en el menú Advanced. Marque la opción Export all catalog y haga clic en Export.

 

MigrateOra2SQLS_34

 

Dé clic en Export y guarde el archivo .bex en una ruta de su elección. Se muestra un mensaje de confirmación para informarle que el procedimiento a concluido de forma exitosa.

 

3.2. Importe el archivo .bex en la base de datos destino

Para importar la estructura del proyecto en la base de datos destino, ejecute la aplicación CreateImport. Para mayor información consulte Deployment Avanzado.

La aplicación CreateImport y su configuración viene instalada por defecto donde está instalado el Management Console (en C:\Program Files\Bizagi\Bizagi Studio\MC\).

 

3.2.1 Edite el archivo de configuración de CreateImport

Realice la siguiente configuración en el servidor destino para importar el esquema de la base de datos:

 

MigrateOra2SQLS_13

 

Para configurar este archivo, utilice las propiedades de conexión a la base de datos destino utilizadas en el paso 5.

 

3.2.2 Ejecute la aplicación CreateImport

Una vez haya configurado la conexión a la base de datos destino. Ejecute CreateImport.exe como administrador. Haga click en el botón de buscr, y seleccione el BEX exportado en el paso anterior.

 

MigrateOra2SQLS_35.

 

Cuando seleccione el archivo, dé clic en Apply package.

 

MigrateOra2SQLS_36

 

Este proceso puede tomar varios minutos. Se muestra un mensaje de confirmación para informarle que el procedimiento a concluido de forma exitosa.

 

4. Ejecute los scripts de migración de datos

Este paso le permite migrar los datos de la base de datos Oracle a la base de datos SQL Server destino.

 

4.1. Cree los objetos temporales en la base de datos destino

Este paso se realiza ejecutando el script 02_FunctionsAndUserTypes.sql en la base de datos destino. No se deben mostrar errores.

 

MigrateOra2SQLS_18

 

4.2. Desactive los constraints de la base de datos

Para optimizar la velocidad de transferencia de datos durante la migración, los constraints de la base de datos deben desactivarse ejecutando el script 03_SQL-DisableAllConstraints.sql en la base de datos destino.

 

MigrateOra2SQLS_19

 

4.3. Ejecute el script para crear el Linked Server

Este paso se realiza ejecutando el script 04_CreateLinkedServerSQLToOracleDB.sql en la base de datos destino. Asegúrese de asignar los siguientes valores a las variables:

 

DECLARE @LinkName VARCHAR(120) = 'ORACLEDB_ORIGIN'

DECLARE @OracleSource VARCHAR(120) = N'[DB_Server]:[Port_number]/[Service]'

DECLARE @UserName VARCHAR(120) = N'[User_schema]'

DECLARE @UserPassword VARCHAR(120) = N'[User_schema_password]'

 

Considere:

[DB_Server]: Nombre o dirección IP del servidor de base de datos origen.

[Port_number]: Puerto TCP utilizado para la conexión al servicio de la base de datos origen.

[Service]: La identificación del servicio de la instancia de Oracle origen.

[User_schema]: Nombre de la base de datos del ambiente del proyecto origen.

[User_schema_password]: La contraseña de dicho esquema de usuario.

 

MigrateOra2SQLS_22

 

Después de ejecutar el script, se ejecuta una prueba de conexión. Si las credenciales no son correctas o no tiene acceso al servidor, Oracle muestra el siguiente mensaje.

 

MigrateOra2SQLS_39

 

Si tiene un mensaje de error que dice "No se puede crear una instancia del proveedor OLE DB", puede seguir el procedimiento de solución de problemas que se explica aquí.

 

4.4. Migre la metadata

Este paso se realiza ejecutando el script 05_CopyBizagiCatalogTables.sql en la base de datos destino. Este paso puede tomar varios minutos dependiendo del tamaño de su base de datos.

 

MigrateOra2SQLS_23

 

El resultado del query muestra el número de registros migrados desde la base de datos origen.

 

4.5. Migre la data

Este paso se realiza ejecutando el script 06_CopyAllTablesExceptCatalog-WithColumnsValidation.sql en la base de datos destino. Este paso puede tomar varios minutos dependiendo del tamaño de su base de datos.

 

MigrateOra2SQLS_24

 

Este script valida el número de cada registro de cada tabla migrada. Si hay diferencias, el script muestra un mensaje que indica que no se migraron todas las filas. Si se produce este error, podría suceder porque podría haber restricciones inconsistentes, como llaves primarias, llaves externas o restricciones únicas. Puede solucionarlo verificando la estructura de la base de datos. Vea el siguiente paso.

 

5. Realice verificaciones y activaciones en SQL Server

En este paso, usted puede verificar si la estructura del proyecto es correcta en SQL Server y activar los constraints en el servidor destino.

 

5.1. Verifique la estructura de la base de datos

Este paso se realiza ejecutando el script 07_SchemaValidation.sql en la base de datos destino. Este query valida que el esquema en la base de datos destino corresponde al esquema en el origen.

Este script también migra los índices creado que no están incluidos en la metadata de Bizagi.

 

MigrateOra2SQLS_25

 

La primera lista muestra las tablas en el origen que no fueron migradas ya que fueron creadas manualmente. Si necesita alguna tabla para cualquier propósito, la debe crear y llenar manualmente.

 

Si hay objetos con números que no son considerados por el estándar de Bizagi, se ejecuta un proceso de normalización. Si se muestran errores, debe validar que estos objetos existen en la base de datos de origen y destino.

 

MigrateOra2SQLS_40

 

 

Si no hay tablas migradas, significa que esas tablas fueron creadas externamente y no corresponden a la estructura de la base de datos de Bizagi. Para continuar con el siguiente paso, otras listas deben estar vacías.

 

5.2. Valide la integridad de los datos

Este paso se realiza ejecutando el script 08_compare_data.sql en la base de datos destino. Este paso puede tomar varios minutos dependiendo del tamaño de su base de datos.

El resultado muestra las tablas en la base de datos y las diferencias con sus valores.

 

MigrateOra2SQLS_26

 

No deben aparecer diferencias en los resultados. Sin embargo, si aparecen diferencias, SQL muestra el siguiente mensaje. Algunas diferencias están relacionadas con diferencias con decimales.

 

MigrateOra2SQLS_41

 

Ejecute el script 09_Generate_Query_for_data_Comparison.sql en la base de datos de destino. Establezca el nombre de la tabla en la variable @Table_name según sea necesario.

 

MigrateOra2SQLS_42

 

Los resultados muestra la data inconsistente dentro de la tabla.

 

MigrateOra2SQLS_43

 

En la pestaña Mensajes, se generan las consultas. Esto se puede copiar para ejecutar la comparación manualmente.

 

MigrateOra2SQLS_44

 

Usted puede reemplazar el identificador:

 

idPRIMARYKEY = ?

 

Usando el ID de la llave primaria de un valor listado en los resultados. Por ejemplo, puede usar idWorkitem.

 

MigrateOra2SQLS_45

 

Tenga en cuenta que cualquier tabla, vista, índice, procedimiento almacenado o función adicional que no haya sido creado por Bizagi y que haya incluido como personalizado dentro de la base de datos de Bizagi, no se migrará.

 

5.3. Active los constraints

Este paso se realiza ejecutando el script 10_SQL-EnableAllConstraints.sql en la base de datos destino.

 

MigrateOra2SQLS_27

 

En este punto, si no se ha presentado ningún error durante la migración, puede continuar con el siguiente paso.

 

5.5. Defina el ambiente de Biagi

Después de la migración, debe cambiar el ambiente de la base de datos, considerando el ambiente configurado antes de iniciar la migración (desarrollo, prueba o producción). Este paso se realiza ejecutando el script 11_Environment_ConfigurationSQLServer.sql. Antes de ejecutar el script, considere lo siguiente:

 

Establezca el entorno en el parámetro @envName. Debe tener cualquiera de los siguientes valores: 'Desarrollo', 'Prueba' o 'Producción'

 

MigrateOra2SQLS_46

 

Luego de ejecutar este script, puede validar el ambiente configurado ejecutando la siguiente consulta:

 

SELECT * FROM BIZAGIINFO

 

MigrateOra2SQLS_47

 

5.5. Borre los objetos temporales

Een este paso, usted borra los objetos temporales utilizados para el procedimiento de migración. Este paso se realiza ejecutando el script 12_Delete_Temporary_Objects.sql en la base de datos destino.

 

MigrateOra2SQLS_29

 

6. Realice las pruebas

Una vez el procedimiento esté complete, la base de datos SQL Server tiene toda la información y las tablas del proyecto de su base de datos. Usted puede actualizar la conexión de su proyecto a la base de datos que migró.

Para más información sobre la configuración de la base de datos en Studio (ambiente de desarrollo) o en Automation Server (ambientes de Pruebas y Producción). consulte Manejo de sus proyectos.