GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

BusinessObjects Enterprise XI R2: Backup y Restore


Este Artículo pretende mostrar las consideraciones a tener en cuenta para diseñar un Plan de Contingencias (una recuperación completa) de BusinessObjects Enterprise XI R2 o con BusinessObjects Enterprise XI (sin el R2 ;-). ¿De qué es necesario realizar copia de seguridad (Backup) en BusinessObjects Enterprise XI R2? ¿Qué pasos se deben seguir para recuperar nuestro servidor BusinessObjects Enterprise XI R2? ¿Y si teníamos personalizado InfoView? ¿Y si necesitamos recuperar en otro servidor? Quizás no sea éste el mejor método, pero lo que si puedo asegurar, es que ha funcionado ;-) Ah! Y no es un método soportado... aunque funciona ;-)


Descripción del Entorno

Antes de empezar, creo que es interesante describir el entorno utilizado para las presentes pruebas. Se trata de una infraestructura de BusinessObjects Enterprise XI R2 formada por una única máquina, la cual ejecuta todos los servicios de Business Objects (CMS, Cache Server, Event Server, Job Server, etc.).

El frontal, es decir, el servidor Web en el que se ejecuta InfoView, es un servidor Microsoft Internet Information Server (IIS) con ASP.Net (recordar que Infoview se puede montar sobre Java o sobre ASP.Net).

La base de datos utilizada para el repositorio es SQL Server 2000 Enterprise (recordar que es posible utilizar otros motores de base de datos como MySQL, pero claro, yo conozco mejor SQL Server, que le voy a hacer ;-). Se trata de un servidor externo al servidor de BusinessObjects, en particular SQL Server 2000 está montado sobre un servidor Microsoft Cluster MSCS, con objetivo de dotar de alta disponibilidad a la base de datos. Para más información sobre Microsoft Cluster MSCS, es posible leer mi artículo Instalar y Configurar Microsoft Cluster (MSCS) en Windows Server 2003

Por supuesto, toda esta infraestructura forma parte del correspondiente dominio de Directorio Activo (recordar que Microsoft Cluster MSCS requiere de Directorio Activo).

El uso principal de este entorno, es el acceso a Infoview para la visualización de informes desarrollados con Crystal Reports XI, así como el acceso a cubos (bases de datos multidimensionales - MOLAP) a través de Olap Intelligence (antiguamente conocido como Crystal Analysis). No se utiliza Web Intelligence (WeBi para los amigos ;-) ni se utilizan los famosos Universos de BusinessObjects, aunque los informes de Crystal Reports con Parámetros Dinámicos (Dynamic Prompts) nos permiten sufrir de un modo equivalente ;-)

¿De qué es necesario hacer copia de seguridad (Backup)?

Resulta de gran importancia tener claro de qué elementos se necesita realizar las copias de seguridad, para poder recuperar nuestra infraestructura en caso de desastre. Los elementos que deberemos tener cubiertos en nuestras políticas de copia de seguridad son:

  • La base de datos del Repositorio. El repositorio es una base de datos que contiene la definición de todos los objetos de BusinessObjects, como son los usuarios, los informes, las categorías, los permisos, etc. En nuestro caso de ejemplo, se trata de una base de datos SQL Server 2000, pero podría ser un motor de base de datos distinto, como ORACLE, DB2 ó MySQL.
  • El Almacén de Ficheros (File Store). Todos los ficheros almacenados en BusinessObjects Enterprise, (ej: informes de Crystal Reports, instantáneas de los informes, documentos PDF, etc.) son almacenados en el sistema de ficheros, en particular bajo el directorio FileStore. Sin embargo, aunque su almacenamiento físico sea en el sistema de ficheros, es evidente que en el Repositorio queda definido una referencia al fichero físico del FileStore para cada objeto, entre otras cosas. Esto es necesario, debido a que bajo el directorio FileStore existe una jerarquía de directorios propietaria, es decir, si esperamos encontrarnos una jerarquía de ficheros en base a las carpetas de InfoView o en base a algún otro patrón conocido, descubriremos que NO es así y que existe una jerarquía de directorios de aspecto arbitrario.

Como vemos, para poder recuperar nuestro servidor BusinessObjects Enterprise XI, necesitamos poder recuperar tanto la base de datos como el sistema de ficheros (en particular, el directorio FileStore). Por ello, necesitaremos que ambas copias de seguridad (de base de datos y del directorio FileStore) estén en algún modo sincronizadas, esto es, que pertenezcan al mismo momento en el tiempo.

Todo lo dicho es cierto, sin embargo, en la mayoría de las instalaciones se realizan personalizaciones de BusinessObjects Enterprise, para ajustar el producto a las necesidades propias de cada situación. Resulta muy típico personalizar InfoView, principalmente:

  • Modificar el código javascript para ajustar pequeños detalles funcionales de InfoView.
  • Modificar páginas html para ajustar pequeños detalles funcionales, por ejemplo, reprogramando a través de la API de BusinessObjects.
  • Agregar o modificar ficheros de imágenes, u otros recursos (ej: hojas de estilo CSS, etc.) típicos de las aplicaciones Web.
  • Agregar ficheros ejecutables, que programados con Visual Studio utilizando la API de BusinessObjects, permitan realizar tareas administrativas, ya sea ejecutados bajo demanda, ejecutados de forma planificada (ej: a través del administrador de tareas de Windows, etc.).

Todas estas modificaciones, deben de ser tenidas en cuenta en nuestro plan de contingencias, ya que en función del escenario de desastre al que nos enfrentemos, deberemos ser capaz de aplicar y garantizar la implantación de dichos cambios para devolver el entorno a su estado de funcionamiento habitual.

Por ello, en caso de haber realizado modificaciones del producto (ej: modificar InfoView) es necesario incluir en nuestras políticas de copia de seguridad, al menos los elementos modificados, con el fin de poder garantizar su restauración en caso de desastre.

A continuación, se detallan los dos posibles escenarios de recuperación completa: sobre el mismo servidor (volviendo en consecuencia a una situación anterior), o sobre un nuevo servidor (sobre el que deberemos instalar BusinessObjects Enterprise XI).

¿Cómo puedo recuperar BusinessObjects Enterprise a un momento anterior (sobre el mismo servidor)?

Este escenario de recuperación corresponde con el caso en que tenemos un servidor BusinessObjects Enterprise XI funcionando correctamente, y deseamos volver a un momento anterior en el tiempo. Esta situación, se puede provocar por diferentes motivos, como por ejemplo por un paso a producción (o un paso entre entornos a un entorno previo de producción) poco exitoso, una manipulación poco agraciada del Repositorio, etc.

En cualquier caso, en este escenario se parte de la premisa de que los únicos elementos dañados son el Repositorio y/o el FileStore, manteniéndose en buen estado los propios ejecutables y binarios del producto, etc. Los pasos a seguir son los siguientes:

  • Parar todos los servicios de BusinessObjects Enterprise. Esta tarea puede realizarse desde el Administrador de Configuración Central. Es recomendable parar el servicio CMS en último lugar. Si algún servicio no es capaz de detener, matar el proceso desde el administrador de tareas de Windows (esto no debería de ocurrir).
  • Opcionalmente, renombrar el actual directorio FileStore. El motivo de esta acción es para garantizar la posibilidad de poder volver al momento actual. Por ello, del mismo modo es también opcional realizar una copia de seguridad de la base de datos de Repositorio.
  • Recuperar la base de datos del Repositorio. En el caso de SQL Server, es recomendable poner la base de datos en estado OFFLINE para garantizar que nadie puede conectarse a dicha base de datos (recordar que la operación RESTORE DATABASE requiere de exclusividad).
  • Recuperar el directorio FileStore. Recordar que debe de recuperarse al mismo momento en el tiempo al que se recupera el Repositorio.
  • Iniciar todos los servicios de BusinessObjects Enterprise. Esta tarea puede realizarse desde el Administrador de Configuración Central. Primero se debe iniciar el servicio CMS, y después el resto de servicios de BusinessObjects Enterprise.

Realizados estos pasos, se habrá recuperado el servidor BusinessObjects Enterprise a un estado anterior en el tiempo. Es muy recomendable realizar alguna comprobación posterior, como por ejemplo, comprobar que existe algún usuario o algún informe reciente, o que NO existe algún usuario o informe eliminado posteriormente a la copia de seguridad, etc.

¿Cómo puedo recuperar BusinessObjects Enterprise a un momento anterior (sobre un servidor distinto)?

Este escenario de recuperación corresponde con el caso en que hemos perdido el servidor BusinessObjects Enterprise XI, ya sea debido a un problema hardware o software, y deseamos volver a un momento anterior en el tiempo.

En cualquier caso, en este escenario los daños no están localizados únicamente en el Repositorio y el FileStore, ya sea porque existen binarios del producto en mal estado, porque la máquina no arranca, porque se ha instalado un HotFix y se desea volver a un momento anterior, etc.

Este procedimiento, también puede utilizarse para realizar una migración a una nueva máquina, por ejemplo, para poder disfrutar de un hardware más potente.

Los pasos a seguir son los siguientes:

  • Instalar en una nueva máquina BusinessObjects Enterprise XI R2. Suele ser recomendable utilizar el mismo nombre de máquina (nombre NetBIOS) y dirección IP. Si no se mantiene la dirección IP y se utiliza algún nombre de host o alias DNS, será necesario actualizarlo.
  • Parar todos los servicios de BusinessObjects Enterprise. Esta tarea puede realizarse desde el Administrador de Configuración Central. Es recomendable parar el servicio CMS en último lugar. Si algún servicio no es capaz de detener, matar el proceso desde el administrador de tareas de Windows (esto no debería de ocurrir).
  • Opcionalmente, renombrar el actual directorio FileStore. El motivo de esta acción es para garantizar la posibilidad de poder volver al momento actual. Por ello, del mismo modo es también opcional realizar una copia de seguridad de la base de datos de Repositorio.
  • Recuperar la base de datos del Repositorio. En el caso de SQL Server, es recomendable poner la base de datos en estado OFFLINE para garantizar que nadie puede conectarse a dicha base de datos (recordar que la operación RESTORE DATABASE requiere de exclusividad).
  • Recuperar el directorio FileStore. Recordar que debe de recuperarse al mismo momento en el tiempo al que se recupera el Repositorio.
  • Recuperar las personalizaciones existentes en la instalación. Esto es, si existen páginas html modificadas, ficheros de hoja de estilo (CSS), código javascript, etc., también deberá restaurarse, con el fin de dejar el servidor BusinessObjects Enterprise correctamente operativo.
  • Iniciar todos los servicios de BusinessObjects Enterprise. Esta tarea puede realizarse desde el Administrador de Configuración Central. Primero se debe iniciar el servicio CMS, y después el resto de servicios de BusinessObjects Enterprise.

Realizados estos pasos, se habrá recuperado el servidor BusinessObjects Enterprise a un estado anterior en el tiempo. Es muy recomendable realizar alguna comprobación posterior, como por ejemplo, comprobar que existe algún usuario o algún informe reciente, o que NO existe algún usuario o informe eliminado posteriormente a la copia de seguridad, comprobar que las personalizaciones de InfoView (en caso de existir) han sido aplicadas con éxito, etc.

Quizás el principal inconveniente de éste procedimiento esté en el primer paso, la instalación completa de BusinessObjects Enterprise, por el tiempo necesario. Cabe la posibilidad de mantener un servidor pre-instalado. Dicho servidor no puede mantener el mismo nombre de máquina (nombre NetBIOS), ya que esto no es posible (menos aún en un domino de Directorio Activo). En caso de utilizar un servidor pre-instalado, se deberá sustituir los dos primeros pasos anteriores, por los pasos siguientes:

  • Sacar la máquina del dominio, cambiar el SID de la máquina (ej: con la utilidad NewSID de Systernals), cambiar el nombre la máquina (establecer el nombre de máquina, del servidor que queremos restaurar), agregar la máquina al dominio.
  • Parar todos los servicios de BusinessObjects Enterprise. Esta tarea puede realizarse desde el Administrador de Configuración Central. Es recomendable parar el servicio CMS en último lugar. Si algún servicio no es capaz de detener, matar el proceso desde el administrador de tareas de Windows (esto no debería de ocurrir).
  • Modificar la línea de comandos de todos los servicios de BusinessObjects Enterprise para utilizar el actual nombre de CMS. Esta tarea puede realizarse desde el Administrador de Configuración Central.
  • Modificar en el registro de Windows las referencias al antiguo nombre de CMS por el nuevo nombre de CMS. Si se utiliza el nombre de CMS en alguna ruta de fichero, recordar modificar dicha ruta en el sistema de ficheros. Las ramas del registro de Windows que deberemos revisar son las siguientes:
    • HKLM\SOFTWARE\Business Objects\Suite 11.0\CMS\Instances
    • HKLM\SOFTWARE\Business Objects\Suite 11.0\Enterprise\CMSClusterMembers
    • HKLM\SOFTWARE\Business Objects\Suite 11.0\Enterprise\UIControls
    • HKLM\SOFTWARE\Business Objects\Suite 11.0\JobServer\Instances
    • HKLM\SOFTWARE\Business Objects\Suite 11.0\PageServer\Instances
    • HKLM\SOFTWARE\Business Objects\Suite 11.0\Report Aplication Server\Instances
    • HKLM\SOFTWARE\Business Objects\Suite 11.0\Web Component Adapter
    • HKLM\SOFTWARE\Business Objects\Suite 11.0\Web Component AdapterInstances
    • HKLM\SOFTWARE\Business Objects\Suite 11.0\WebIntelligence Report Server\Instances
    Los directorios del sistema de ficheros que deberemos comprobar son los siguientes:
    • X:\Archivos de programa\Business Objects\BusinessObjects Enterprise 11\Data\procSched\
    • X:\Archivos de programa\Business Objects\BusinessObjects Enterprise 11\Data\
  • Modificar el fichero de configuración Web.Config. En este fichero de configuración, se deben sustituir todas las ocurrencias del antiguo nombre de CMS por el nuevo nombre de CMS.
  • Modificar la entrada ODBC utilizada para acceder a la base de datos del Repositorio, configurándola contra la base de datos de repositorio deseada (la base de datos del anterior CMS, es decir, del que estamos recuperando). Esta tarea puede realizarse desde el Administrador de Configuración Central y desde la herramienta administrativa Orígenes de Datos (ODBC).

Comentarios personales sobre éste Artículo

En este Artículo he pretendido mostrar una forma en la que enfocar un Plan de Contingencias para mantener protegido y poder recuperar una infraestructura BusinessObjects Enterprise XI R2 y también la versión anterior, BusinessObjects Enterprise XI (sin el R2 ;-).

La solución que aquí presento, ha sido probada con éxito en entornos de Producción de BusinessObjects Enterprise XI y de BusinessObjects Enterprise XI R2, funcionando correctamente, y presentando unos tiempos de recuperación aceptables (claro está, que el tiempo de recuperación es proporcional al volumen de información a recuperar y al número de ficheros).

Aunque la infraestructura de laboratorio tomada para este artículo, está formada por un único servidor BusinessObjects Enterprise XI R2, es posible adaptar este plan de contingencias para una infraestructura con múltiples servidores BusinessObjects, en la que cada uno de los servidores puede estar ejecutando diferentes servicios (ej: CMS, JobServer, etc.).

Esta NO es la única forma de proteger una infraestructura BusinessObjects Enterprise, de hecho, si por ejemplo utilizamos máquinas virtuales (VMWare, Virtual Server 2005, Hyper-V, etc.), siempre es posible clonar las máquinas virtuales (quizás la solución más sencilla ;-).

El principal inconveniente que encuentro en el plan de recuperación que aquí presento, es que sólo se permite recuperaciones totales, esto es, no se permite una recuperación parcial de un único objeto o de todos los objetos de una categoría o carpeta de InfoView.


Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Oct 2007
  771 usuarios registrados
  86146 pageloads/mes
  Ranking Alexa 498160

Social Networks
Sigue a Portal GuilleSQL en Linkedin !!
Sigue a Portal GuilleSQL en Twitter !!



Archivo

Junio de 2017 (1)
Mayo de 2017 (1)
Marzo de 2017 (3)
Enero de 2017 (4)
Junio de 2016 (1)
Mayo de 2016 (2)
Abril de 2016 (2)
Septiembre de 2015 (2)
Agosto de 2015 (2)
Junio de 2015 (10)
Mayo de 2015 (4)
Abril de 2015 (8)
Marzo de 2015 (11)
Octubre de 2014 (3)
Septiembre de 2014 (7)
Agosto de 2014 (5)
Julio de 2014 (2)
Mayo de 2014 (4)
Abril de 2014 (4)
Marzo de 2014 (4)
Febrero de 2014 (1)
Enero de 2014 (5)
Diciembre de 2013 (8)
Noviembre de 2013 (2)
Octubre de 2013 (7)
Septiembre de 2013 (6)
Agosto de 2013 (1)
Julio de 2013 (6)
Junio de 2013 (11)
Mayo de 2013 (7)
Abril de 2013 (6)
Febrero de 2013 (5)
Enero de 2013 (7)
Diciembre de 2012 (12)
Noviembre de 2012 (13)
Octubre de 2012 (5)
Septiembre de 2012 (3)
Agosto de 2012 (6)
Julio de 2012 (4)
Junio de 2012 (1)
Mayo de 2012 (2)
Abril de 2012 (7)
Marzo de 2012 (16)
Febrero de 2012 (9)
Enero de 2012 (5)
Diciembre de 2011 (10)
Noviembre de 2011 (10)
Octubre de 2011 (4)
Septiembre de 2011 (5)
Agosto de 2011 (2)
Julio de 2011 (2)
Junio de 2011 (4)
Mayo de 2011 (2)
Abril de 2011 (6)
Marzo de 2011 (4)
Febrero de 2011 (10)
Enero de 2011 (5)
Diciembre de 2010 (6)
Noviembre de 2010 (4)
Octubre de 2010 (8)
Septiembre de 2010 (4)
Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






Copyright © 2007 GuilleSQL, todos los derechos reservados.