<< Clic para mostrar Tabla de Contenidos >> Restaurar backups en Oracle |
Introducción
Para restaurar un backup de una base de datos Oracle para un proyecto de Bizagi, siga los siguientes pasos.
Para información sobre los usos de este backup y detalles sobre la información que éste almacena, consulte Cómo restaurar un backup de la base de datos de su proyecto Bizagi.
Prerrequisitos
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.
Para usar los utilitarios Export o Import en Oracle, se requiere:
1. La misma versión del cliente para el export e import
Tenga en cuenta que la versión del cliente instalada va a diferir de acuerdo a la versión (32-bit o 64-bit) soportada en el servidor de la base de datos del sistema. Se requiere que la versión Oracle del cliente usado para el export sea igual a la versión instalada del cliente usada para el import.
2. Sets de caracteres compatibles
Debe asegurarse que los sets de caracteres configurados en los clientes usados, sean los mismos o que sean compatibles siendo un requisito para el Export e Import de Oracle con el objetivo de mantener la integridad de la información. (de otra manera, si alguna de esta información contenida en la base de datos puede resultar alterada).
Éstos necesitan ser compatibles entre las instancias de las bases de datos.
3. Configuración del home de Oracle
Si usted tiene una única variable Oracle home environment, puede omitir este prerrequisito.
Por otro lado, si tiene más de un cliente Oracle instalado desde donde se va a ejecutar el Export o Import, deberá asegurarse de que la variable de entorno ORACLE_HOME esté definida adecuadamente para apuntar al cliente de Oracle que utiliza Bizagi.
Se requiere que el usuario BizagiAdmon ya haya sido creado en la instancia base de datos de Oracle dada. Esto es así debido a que la creación de un proyecto en Bizagi requiere que el usuario BizagiAdmon sea creado previamente. |
Recomendaciones
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, o verificarlas como "OK".
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
Ejecutar el Import de DataPump (impdp)
El utilitario DataPump provee un mencanismo para transferir objetos de datos entre bases de datos de Oracle.
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 el Import del Datapump (impdp command) presentado en esta sesión no restaurará archivos dmp backup creados a través del utilitario tradicional de Export (exp command). Dichos archivos dmp de backup no son considerados en este enfoque son aquellos que han sido creados manualmente usando el comando exp. Importando un archivo dmp creado con el utilitario tradicional export, 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%');
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
Una consolda de comandos se usa para ejecutar los comandos de Import
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 USERID=BizAgiAdmon/%SCHEMA_USER_PASSWORD% SCHEMAS=%SCHEMA_USER_TO_IMPORT% DIRECTORY=%BIZAGI_BACKUP_PATH% DUMPFILE=%EXPORT_FILE% LOGFILE=%IMPORT_LOG%
En el comando anterior, considere:
•%SCHEMA_USER_PASSWORD% es la contraseña de este esquema de usuario (el proyecto donde vamos a restaurar).
•%SCHEMA_USER_TO_IMPORT% es el nombre del proyecto de Bizagi (donde vamos a restaurar).
•%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.
•%SCHEMA_USER_TO_EXPORT% es el nombre del esquema de usuario involucrado en el momento de haber generado el Export.
Para obtener 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 tal donde se especificó su ruta en el paso anterior.
El log será localizado junto a la ruta de acceso y el nombre específico del archivo como "%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';