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.

No hay diferencias significativas al escoger uno u otro.

 

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.

Este artículo describe cómo puede migrar la base de datos de su proyecto de Oracle a SQL Server.

 

Importante

Tenga en cuenta las siguientes recomendaciones:

 

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

 

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

 

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

 

4. 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 versión 11.1.

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 servido con el mismo segmento de red que la base de datos Oracle (con baja latencia entre ambos servidores).

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

1.1. Configure un servidor enlazado (linked server)

1.2. Cree la base de datos destino

2. Prepare Oracle para soportar la migración

2.1. Configure la base de datos origen en modo desarrollo

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

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

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

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

4. Ejecute los scripts de migración de datos

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

4.2. Desactive los contraints de la base de datos

4.3. Cree el Linked Server

4.4. Migre la metadata

4.5. Migre la data

5. Realice verificaciones y activaciones en SQL Server.

5.1. Verifique la estructura de la base de datos

5.2. Valide la integridad de los datos

5.3. Active los constraints

5.4. Borre los objetos temporales

6. Reconfigure el ambiente de Bizagi

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

 

MigrateOra2SQLS_08

 

Seleccione TODOS los procesos y TODOS los elementos en la pestaña Experience. Luego, haga clic en Advanced.

 

MigrateOra2SQLS_09

 

Marque la opción Export complete catalog y haga clic en OK.

 

MigrateOra2SQLS_10

 

Dé clic en Export y guarde el archivo .bex en una ruta de su elección.

 

MigrateOra2SQLS_11

 

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

 

MigrateOra2SQLS_12

 

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:

 

MigrateOra2SQLS_14.

 

Dé clic en Load File. Seleccione el archivo .bex que contiene el paquete de deployment generado en el paso anterior.

 

MigrateOra2SQLS_15

 

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

 

MigrateOra2SQLS_16

 

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

 

MigrateOra2SQLS_17

 

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.

 

MigrateOra2SQLS_18

 

4.2. Desactive los contraints de la base de datos

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

 

MigrateOra2SQLS_19

 

4.3. Cree 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

 

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

 

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.

Para continuar con el siguiente paso, las demás 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

 

note_pin

No se deberían mostrar diferencias en los resultados. Sin embargo, si se muestra alguna, utilice el script 10_Generate_Query_for_data_Comparison.sql en la base de datos destino. Ingrese el nombre de la tabla en la variable @Table_name como se requiera.

 

Algunas diferencias están relacionadas con valores decimales.

 

Tenga en cuenta que no se migrará ninguna Tabla, Vista, Índice, Procedimientos almacenados ni Funciones adicionales que no hayan sido creados por Bizagi y que hayan sido incluidos como personalizaciones en la base de datos de Bizagi.

 

5.3. Active los constraints

Este paso se realiza ejecutando el script 09_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.4. 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. Reconfigure el ambiente de Bizagi

Este paso se realiza ejecutando el script 11_Environment_ConfigurationSQLServer.sql en la base de datos destino.

 

Asegúrese de que la variable @EnvName tenga el valor correspondiente de acuerdo al nombre del ambiente de su proyecto ('Development', 'Test' o 'Production').

Una vez ejecutado el script, la columna BAValue debe mostrar el mismo valor de la variable @EnvName.

 

MigrateOra2SQLS_28

 

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