<< Clic para mostrar Tabla de Contenidos >> Backup de bases de datos en Oracle |
Introducción
Como parte de las tareas de mantenimiento y de administración frecuentes, es fundamental la creación de backups para contar con la posibilidad de restaurar a un estado anterior un proyecto Bizagi, ante una eventualidad.
La restauración a un estado anterior es muy sencillo dado que Bizagi es orientado al modelo y los datos.
Para mayor información, consulte Mantenimiento y monitoreo del sistema.
Notas importantes
Los backups en este tipo de tareas se crean principalmente como una medida de contingencia.
La restauración de backups debe usarse sólo para mover una base de datos a una nueva ubicación, o como medida de contingencia de restauración a un estado anterior un mismo ambiente. Es decir que un backup del ambiente de desarrollo sólo debe ser restaurado en el ambiente de desarrollo y un backup del ambiente de producción solo debe ser restaurado en el ambiente de producción. Para crear ambientes, se debe usar la funcionalidad del Deployment de Bizagi. |
Cuando se usa una Base de datos Oracle, las tareas de crear backups y restaurarlos, se realizan a través (y se mencionan como) de los utilitarios de Oracle de Import y Export de Datapump.
Si su proyecto utiliza SQL Server, consulte Backup de bases de datos en SQL.
Tenga en cuenta que los adjuntos de los casos no estarán dentro de la información del backup. |
Prerrequisitos
Para usar los utilitarios Export o Import en Oracle, se requiere:
1. Tener instalado el cliente de Oracle donde se va a realizar el Export e Import.
Se requiere que la versión del cliente sea igual a la versión instalada en el Servidor (incluyendo los bits soportados).
2. Tener ya sea los mismos set de caracteres, o unos sets compatibles (en los configurados en las máquinas clientes y en los servidores involucrados en el Export e Import).
Debe asegurarse que los sets de caracteres configurados sean los mismos o compatibles en las máquinas involucradas. Esto es un requisito directamente el Export e Import de Oracle para mantener la integridad de la información.
3. No tener más de una definición activa del Oracle home.
Esto significa que si tiene más de un cliente Oracle instalado (de donde se va a ejecutar el Export o Import), deberá asegurrse de que la variable de entorno ORACLE_HOME esté definida adecuadamente para apuntar al cliente de Oracle que utiliza Bizagi.
Consideraciones adicionales
Si usted está moviendo un proyecto en ambiente de desarrollo a un servidor diferente y desea conservar las instancias de Proceso (casos), tenga en cuenta que los adjuntos de estos casos no estarán dentro de la información del backup.
Por lo tanto en el hipotético escenario en el que desee trasladar los casos de un ambiente de desarrollo, deberá considerar mover también la ubicación de éstos (sea el servidor de Bizagi, un servidor diferente de archivos compartido, o un ECM).
También se recomienda que el uso de Export e Import lo realice un usuario experimentado y con conocimiento del tema (por ejemplo un dba). Esto se debe a 3 razones principales:
1. El Export e Import se lleva a cabo con linea de comandos y especificación de parámetros (los cuales son conocidos por un DBA). Podrá optar por usar un archivo de parámetros si así lo considera.
Nótese que existen diferentes maneras de realizar las tareas de un Export e Import, como por ejemplo mediante RMAN, sin embargo este artículo ilustra la manera recomendada por Bizagi. Podrá utilizar RMAN siempre y cuando sea un usuario experimentado que garantice que la totalidad de la información se contemple por el procedimiento de generar un backup y su restauración.
2. Se requiere en algún momento (de acuerdo a ciertas instrucciones), tener a la mano las credenciales de un esquema de usuario con privilegios (por ejemplo, el uso del usuario BizagiAdmon).
3. Después de un Export o Import, se requiere revisar los logs de ejecución de la operación, y así determinar si hubo errores o advertencias que requieren de solución inmediata.
Por ejemplo en cuanto a errores, puede darse que en medio de una operación de Import, los tablespaces se queden sin espacio. Este tipo de errores no detendrán la operación, son ajenos a Bizagi, pero deben solucionarse de manera que la información no quede incompleta (se garantice integridad de los datos).
Por ejemplo, aquellas adevertencias las cuales pueden ser ignoradas son:
ORA-31684: Object type USER:"%USER_NAME%" already exists
Y por otra parte aquellas advertencias que requieren de acciones correctivas son:
ORA-39082: Object type ALTER_PROCEDURE:"%PROCEDURE_NAME%" created with compilation warnings
Se requiere además que el usuario BizagiAdmon ya se haya creado en la instancia de Oracle. Este es un requerimiento en sí de la creación de proyectos Bizagi sobre Oracle. |
Ejecutar el Export de DataPump (expdp)
Ilustraremos cómo utilizar el utilitario Export de DataPump para crear un backup con la información de la Base de datos del proyecto Bizagi en un archivo dmp.
Para utilizar el Export de Oracle, se llevan a cabo los siguientes pasos:
1. Consulte el directorio de backups
Para utilizar el Export de DataPump, necesitará especificar el directorio donde podrá almacenar el archivo dmp del backup.
Para hacerlo, primero conéctese a su instancia de Oracle con el usuario BizagiAdmon a través de sqlplus:
sqlplus BizagiAdmon/%BIZAGIADMON_USER_PASSWORD%@%DATABASE_SERVER%:%SERVICE_PORT%/%SERVICE_NAME%
En este comando, considere:
•%BIZAGIADMON_USER_PASSWORD% es la contraseña del usuario BizagiAdmon.
•%DATABASE_SERVER% es el nombre del Servidor de la instancia de Oracle.
•%SERVICE_PORT% es el número del puerto sobre el cual el servicio atiende.
•%SERVICE_NAME% es el alias de la instancia de Oracle.
Por lo tanto, puede optar por consultar los directorios creados para su instancia (y decidir si usar la ruta por defecto de backups definida en Bizagi o usar otra).
Si desea usar otro directorio y crearlo manualmente puede hacerlo mediante el comando a continuación:
Luego de tener a la mano el nombre del directorio que va a utilizar, desconéctese de la sesión BizagiAdmon en la instancia.
2. Abra una consola de comandos
Vaya a Inicio de Windows, y ejecute una consola de comandos DOS:
Seguidamente, navegue hacie la ruta del cliente de Oracle, y dentro de la carpeta bin:
3. Ejecute el Export de DataPump
Para ejecutar el Export tenga en cuenta que debe usar parámetros.
Para ello, ingrese la siguiente línea:
expdp USERID=BizAgiAdmon/%SCHEMA_USER_PASSWORD% SCHEMAS=%SCHEMA_USER_TO_EXPORT% DIRECTORY=%BIZAGI_BACKUP_PATH% DUMPFILE=%EXPORT_FILE% LOGFILE=%EXPORT_LOG%
En el comando anterior, considere:
•%SCHEMA_USER_PASSWORD% es la contraseña de este esquema de usuario con privilegios system (BizAgiAdmon).
•%SCHEMA_USER_TO_EXPORT% es el nombre del proyecto en Bizagi.
•%BIZAGI_BACKUP_PATH% debe corresponder a "BizAgiBackupPath" por defecto, de acuerdo a lo mencionado en el paso #1 (este parámtero define la ubicación del backup).
•%EXPORT_FILE% es la ruta y archivo que se generará con el backup. Este archivo utiliza comúnmente la extensión .dmp.
•%EXPORT_LOG% es la ruta y archivo que se generará con el log del backup. Este archivo utiliza comúnmente la extensión .log.
Para ver más información acerca del Import o Export de DataPump (disponible en versiones de Oracle 10g), consulte enlaces externos de Oracle como: http://www.orafaq.com/wiki/Data_Pump.
4. Revise el log
Después del Export, se debe revisar y/o resolver los errores no esperados en la operación.
Para hacerlo, revise detalladamente el log tal donde se especificó su ruta en el paso anterior.
El log quedará según la definición de "%EXPORT_LOG%".
Tenga en cuenta que el Export utilizará los sets de caracteres definidos en el cliente de Oracle. Por lo tanto, y como se mencionó en los prerrequisitos, se debe garantizar que sea un set de caracteres igual o compatible al del Servidor, y a los que se usen en el cliente y Servidor al momento de hacer un Import. |
Ejecutar el Import de DataPump (impdp)
Ilustraremos cómo utilizar el utilitario Import de DataPump para restaurar un backup de la Base de datos del proyecto Bizagi.
Estas instrucciones aplican cuando:
•El archivo dmp ha sido creado a través del Export de DataPump (manualmente con el comando expdp).
•El archivo dmp ha sido creado automáticamente por Bizagi. Esto lo realiza Bizagi en escenarios tales como: antes de un Deployment, o antes de una actualización de versión.
Los dmp de backup que Bizagi crea de manera automática, quedan ubicados en la ruta de backups configurada al momento de crear proyectos en Oracle (como prerrequisito de configuración de la instancia).
Tenga en cuenta que este procedimiento no aplica si el backup se ha generado a través del utilitario de Export exp. Si este es el escenario, el backup se debe restaurar con el uso del Import imp (descrito en la sección previa). |
Para utilizar el Import de DataPump de Oracle, se llevan a cabo los siguientes pasos:
1. Asegúrese de que no hayan conexiones activas
Para restaurar un backup, se requiere que el esquema de usuario no se encuentre en uso.
Tenga en cuenta que el servicio de Programador de Bizagi (Scheduler) muy posiblemente estará en un estatus de iniciado y por ende tendrá conexiones abiertas. Si este es el caso, deberá detener primero el Programador.
Deberá ser cauteloso al momento de garantizar que no hayan conexiones abiertas. Esto quiere decir que podrá verificar que conexiones abiertas hay con BizagiAdmon, mediante el comando:
SELECT s.sid, s.serial#, s.username FROM gv$session s JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id WHERE s.type != 'BACKGROUND' and s.username = '[su_esquema]'
Así como también podrá cerrarlas forzosamente (con el comando siguiente) pero bajo su responsabilidad y con el control sobre qué sesiones se están cerrando, y con previa validación de que no hayan usuarios trabajando en ese esquema de usuario o proyecto de Bizagi.
ALTER SYSTEM DISCONNECT SESSION '[sid],[serial#]' IMMEDIATE; |
2. Elimine el esquema de usuario
Para restaurar, primero eliminamos el esquema de usuario mismo que representa el proyecto.
Para hacerlo, primero conéctese a su instancia de Oracle con el usuario BizagiAdmon a través de sqlplus:
sqlplus BizagiAdmon/%BIZAGIADMON_USER_PASSWORD%@%DATABASE_SERVER%:%SERVICE_PORT%/%SERVICE_NAME%
En este comando, considere:
•%BIZAGIADMON_USER_PASSWORD% es la contraseña del usuario BizagiAdmon.
•%DATABASE_SERVER% es el nombre del Servidor de la instancia de Oracle.
•%SERVICE_PORT% es el número del puerto sobre el cual el servicio atiende.
•%SERVICE_NAME% es el alias de la instancia de Oracle.
Seguidamente, ejecute el siguiente comando para eliminar el esquema de usuario en cascada (cascade):
drop user %SCHEMA_USER_TO_IMPORT% cascade;
Note que %SCHEMA_USER_TO_IMPORT% corresponde al nombre del proyecto.
3. Cree el esquema de usuario de nuevo
Esta vez, creamos el esquema de usuario en blanco.
Para ello, usamos un procedimiento almacenado de Bizagi.
En la misma sesión que tenemos abierta, ejecute el procedimiento "spBA_ORA_CreateAppUser" de Bizagi:
exec spBA_ORA_CreateAppUser('%SCHEMA_USER_TO_IMPORT%','%SCHEMA_USER_PASSWORD%');
Nótese que deberíamos nombrar con el mismo nombre anterior al proyecto eliminado.
4. Consulte el directorio de backups
Para utilizar el Import de DataPump, necesitará especificar el directorio donde se encuentra el archivo dmp del backup.
Por lo tanto, puede optar por consultar los directorios creados para su instancia (y decidir si usar la ruta por defecto de backups definida en Bizagi o usar otra).
Si desea usar otro directorio y crearlo manualmente puede hacerlo mediante el comando a continuación:
Luego de tener a la mano el nombre del directorio que va a utilizar, desconéctese de la sesión BizagiAdmon en la instancia.
5. Abra una consola de comandos
Se usa una línea de comando para ejecutar el comando de importar.
Vaya a Inicio de Windows, y ejecute una consola de comandos DOS:
Seguidamente, navegue hacia la ruta del cliente de Oracle, y dentro de la carpeta bin:
6. Ejecute el Import de DataPump
Para ejecutar el Import de DataPump tenga en cuenta que debe usar parámetros.
Estos parámetros son completamente diferentes a los que se utilizaban en el Import imp.
Para ello, ingrese la siguiente línea:
impdp %SCHEMA_USER_TO_IMPORT%/%SCHEMA_USER_PASSWORD%@%SERVICE_NAME% REMAP_SCHEMA=%SCHEMA_USER_TO_EXPORT%:%SCHEMA_USER_TO_IMPORT% DIRECTORY=%BIZAGI_BACKUP_PATH% DUMPFILE=%EXPORT_FILE% LOGFILE=%IMPORT_LOG%
En el comando anterior, considere:
•%SCHEMA_USER_TO_EXPORT% es el nombre del esquema de usuario involucrado en el momento de haber generado el Export.
•%SCHEMA_USER_TO_IMPORT% es el nombre del proyecto de Bizagi (donde vamos a restaurar).
•%SCHEMA_USER_PASSWORD% es la contraseña de este esquema de usuario (el proyecto donde vamos a restaurar).
•%SERVICE_NAME% es el alias de la instancia de Oracle.
•%BIZAGI_BACKUP_PATH% debe corresponder a "BizAgiBackupPath" por defecto, de acuerdo a lo mencionado en el paso #4 (este parámtero define la ubicación del backup).
•%EXPORT_FILE% es la ruta y archivo donde se encuentra el backup (el .dmp creado con el Export).
•%IMPORT_LOG% es la ruta y archivo donde se generará el log de la operación. Utiliza comúnmente la extensión .log.
Recomendamos usar el BizAgiAdmon como el USERID para correr la importación, para que tenga un usuario con permisos para crear los objetos necesarios del Schema.
Para ver más información acerca del Import o Export de DataPump (disponible en versiones de Oracle 10g), consulte enlaces externos de Oracle como: http://www.orafaq.com/wiki/Data_Pump.
7. Revise el log DataPump
Después del Import con DataPump, se debe revisar y/o resolver los errores no esperados en la operación (no deben haber errrores en un import de Base de datos en Bizagi).
Para hacerlo, revise detalladamente el log donde se especificó su ruta en el paso anterior.
El log quedará según la definición de "%IMPORT_LOG%".
El Import debe finalizar notificando que no hubo advertencias si quiera, y que se han habilitado los constraints de Bizagi.
Tenga en cuenta que el Import de DataPump utilizará los sets de caracteres definidos en el cliente de Oracle. Por lo tanto, y como se mencionó en los prerrequisitos, se debe garantizar que sea un set de caracteres igual o compatible al del Servidor, y a los que se usaron en el cliente y Servidor al momento de hacer el Export de DataPump. |
Luego de un import, se recomienda también ejecutar la siguiente consulta (con el usuario BizagiAdmon) para garantizar que no haya registros que esta retorne, que señalarían errores a resolver:
to errors/issues:
SELECT * FROM ALL_OBJECTS WHERE OWNER = '%USER_NAME%' AND STATUS <> 'VALID';
Para más información de esta opción en el Management Console.