Utilice las siguientes directrices para realizar el mantenimiento o solucionar problemas de cubos de Essbase con particiones federadas.
En este tema se asume que ha creado una partición federada y ha revisado la información detallada en los temas anteriores.
Al diseñar un cubo de partición federada, siga las directrices de prueba siguientes si la creación tarda mucho tiempo. Estas directrices pueden resultar útiles para adoptar un enfoque en fases de solución de problemas o supervisión del rendimiento.
Inicie el proyecto de partición federada en un entorno de prueba.
Comience con modelos de cubo que tengan las siguientes características:
que no tengan demasiados niveles
que no tengan demasiados miembros o atributos compartidos
Al crear una partición federada, programe operaciones fuera de línea cuando no estén permitidas las consultas en la instancia.
Desconecte gradualmente las sesiones de usuario activas de Essbase utilizando alter application disable commands
y/o disable connects
(para impedir cualquier actividad de usuario) de MaxL seguidos de alter system logout session
y/o kill request
(si necesita terminar cualquier sesión activa que no sea necesario completar). Tenga en cuenta que MaxL no puede terminar ninguna solicitud que se pueda estar ejecutando en Autonomous Data Warehouse. Si desactiva comandos en la aplicación, no olvide volver a activar los comandos después de crear la partición federada.
/etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
/etc/httpd/conf.d/00_base.conf:Timeout 1260
olap.server.netRetryCount
en 9000.Nota:
Si aparece el error "Fallo al guardar el esquema" al crear la partición federada, espere a que la sesión se complete y, a continuación, refresque el explorador. Si se ha creado la partición federada, valídela en SQL Developer. Si se valida en SQL Developer, la partición federada estará lista para usarla. Si no se valida en SQL Developer, será necesario corregir el modelo y ajustar el timeout como se describe en el paso 3.Si Essbase tiene una partición federada, tenga cuidado al editar el esquema del cubo. Si agrega o renombra miembros, asegúrese de que los cambios en los metadatos también se representen en la tabla de hechos en Autonomous Data Warehouse.
Si el esquema de Essbase deja de estar sincronizado con la tabla de hechos en Autonomous Data Warehouse, la partición federada ya no será válida o no funcionará correctamente. Para corregirlo, deberá borrar la partición federada, realizar cambios en el esquema y la tabla de hechos y, a continuación, volver a crear la partición federada.
Si una partición federada dejar de ser válida, es posible que obtenga un error que empiece por Essbase Error(1040235): Remote warning from federated partition
.
Los siguientes tipos de cambios de esquema de Essbase provocarán que la partición federada deje de ser válida:
Adición, renombrado y eliminación de dimensiones
Adición, renombrado y eliminación de miembros almacenados en la dimensión de giro
Cambio de cualquier miembro de almacenado a dinámico
En el caso de otros tipos de cambios de esquema de Essbase no indicados anteriormente (por ejemplo, agregar o renombrar un miembro de dimensión de tabla no dinámica), debe realizar el cambio correspondiente en la fila de datos afectada de la tabla de hechos. De lo contario, es posible que la partición federada no funcione correctamente.
Si sabe con antelación que van a cambiar los metadatos del esquema de Essbase, es mejor eliminar primero la partición federada, realizar los cambios de esquema, actualizar la tabla de hechos y, a continuación, volver a crear la partición de federación.
Sin embargo, si los metadatos de Essbase han cambiado y esto ha provocado que la partición federada deje de ser válida, realice la siguiente acción:
Elimine la partición federada y la conexión asociada a esta (si no se utiliza de otro modo), como se describe en Eliminación de una partición federada.
En el esquema de usuario de la partición federada de Autonomous Data Warehouse, suprima manualmente todas las tablas y otros objetos generados por Essbase que no se hayan podido eliminar con la partición federada.
Asegúrese de que los cambios del esquema se hayan completado en el cubo de Essbase.
Vuelva a crear la tabla de hechos. Consulte Creación de la tabla de hechos.
Vuelva a crear la conexión a Autonomous Data Warehouse. Esta puede ser una conexión global (bajo el icono principal Orígenes en la interfaz web de Essbase), o puede estar en los Orígenes que se han definido solo para la aplicación. Siga las instrucciones de Creación de una conexión para particiones federadas.
Vuelva a crear la partición federada, como se describe en Creación de una partición federada.
Si han cambiado los detalles de la conexión a Autonomous Data Warehouse que utiliza Essbase para una partición federada, debe borrar y volver a crear la partición federada y limpiar los objetos y las tablas de metadatos asociados del esquema de base de datos.
Debe borrar y volver a crear la partición federada si se produce alguno de los siguientes eventos después de la creación de la partición federada:
El puerto de Autonomous Data Warehouse cambia
El nombre de la conexión cambia
La conexión utiliza una cartera y cambia de un nombre de servicio a otro (para realizar cambios de rendimiento o simultaneidad)
Una actualización de esquema cambia la asignación de miembros a la tabla de hechos, lo que provoca que la partición federada quede desincronizada. Consulte Precauciones con los metadatos para los cubos de partición federada para obtener más información.
Si sabe con antelación que van a cambiar los detalles de conexión, es mejor eliminar la partición federada antes de que se produzca el cambio y volver crearla. Sin embargo, si la conexión ha cambiado y ha causado que la partición federada deje de ser válida, realice los siguientes pasos.
Borrar la partición federada
Elimine la partición federada y la conexión asociada a esta (si no se utiliza de otro modo), como se describe en Eliminación de una partición federada.
Limpiar las tablas de metadatos y los objetos relacionados con la partición federada
En el esquema de usuario de la partición federada de Autonomous Data Warehouse, borre todas las tablas y otros objetos generados por Essbase que no se hayan podido eliminar con la partición federada.
Utilice ssh para conectarse al host del servidor de Essbase como usuario opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Cambie al usuario oracle (y vaya a su directorio de inicio).
sudo su - oracle
Vaya hasta el directorio de aplicaciones.
cd /u01/data/essbase/app
Mediante la aplicación de Essbase y el nombre de cubo, identifique el prefijo único asociado a los objetos y los metadatos de su partición federada.
Obtenga el nombre de aplicación (AppName). El nombre distingue entre mayúsculas y minúsculas, por lo que debe utilizar las mayúsculas/minúsculas exactas. En este ejemplo, AppName = Sample.
ls
Sample
Cuente el número de caracteres (appx) en el nombre de aplicación.
Ejemplo: appx = 6.
Navegue al directorio de cubos y obtenga el nombre del cubo (DbName). El nombre distingue entre mayúsculas y minúsculas, por lo que debe utilizar las mayúsculas/minúsculas exactas. En este ejemplo, DbName = Basic.
cd /Sample
ls
Basic
Cuente el número de caracteres (dby) en el nombre del cubo.
Ejemplo: dby = 5.
Cree Prefix del siguiente modo:
ESSAV_<appx><AppName>_<dby><DbName>_
Ejemplo:
<Prefix> = ESSAV_6Sample_5Basic_
Mediante SQL Developer u otra herramienta, conéctese a Oracle Database como usuario del esquema al que está conectada la partición federada.
Ejecute una sentencia SELECT para crear una lista de objetos asociados a su aplicación de partición federada. Estos son los objetos que limpiará en el siguiente paso.
El formato de la sentencia SELECT es el siguiente:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like '<Prefix>%';
Ejemplo:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
Ejecute un procedimiento PL/SQL almacenado que limpie todas las vistas analíticas, paquetes, jerarquías, tablas y otros objetos asociados a Prefix.
Ejemplo
Reemplace ESSAV_6Sample_5Basic_
por Prefix.
SET SERVEROUTPUT ON; declare prefix_str varchar2(70) := 'ESSAV_6Sample_5Basic_'; BEGIN FOR c IN ( SELECT ANALYTIC_VIEW_NAME FROM user_analytic_views WHERE ANALYTIC_VIEW_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP ANALYTIC VIEW "' || c.ANALYTIC_VIEW_NAME || '" '; DBMS_OUTPUT.PUT_LINE('ANALYTIC VIEW ' || c.ANALYTIC_VIEW_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct OBJECT_NAME FROM USER_PROCEDURES WHERE OBJECT_TYPE='PACKAGE' and OBJECT_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP PACKAGE "' || c.OBJECT_NAME || '" '; DBMS_OUTPUT.PUT_LINE('PACKAGE ' || c.OBJECT_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct HIER_NAME FROM USER_HIERARCHIES WHERE HIER_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP HIERARCHY "' || c.HIER_NAME || '" '; DBMS_OUTPUT.PUT_LINE('HIERARCHY ' || c.HIER_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct DIMENSION_NAME FROM USER_ATTRIBUTE_DIM_TABLES_AE WHERE DIMENSION_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP ATTRIBUTE DIMENSION "' || c.DIMENSION_NAME || '" '; DBMS_OUTPUT.PUT_LINE('ATTRIBUTE DIMENSION ' || c.DIMENSION_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP TABLE "' || c.TABLE_NAME || '" purge'; DBMS_OUTPUT.PUT_LINE('TABLE ' || c.TABLE_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct VIEW_NAME FROM USER_VIEWS WHERE VIEW_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP VIEW "' || c.VIEW_NAME || '" '; DBMS_OUTPUT.PUT_LINE('VIEW ' || c.VIEW_NAME || ' dropped successfully.'); END LOOP; FOR c IN ( SELECT distinct TYPE_NAME FROM USER_TYPES WHERE TYPE_NAME like prefix_str || '%' ) LOOP EXECUTE IMMEDIATE 'DROP TYPE "' || c.TYPE_NAME || '" FORCE'; DBMS_OUTPUT.PUT_LINE('TYPE ' || c.TYPE_NAME || ' dropped successfully.'); END LOOP; END; /
Borre y actualice las tablas relacionadas con los metadatos asociados. Primero, debe obtener los valores de ESSBASE_INSTANCE_UNIQUE_ID y OTL_ID.
Utilice ssh para conectarse al host del servidor de Essbase como usuario opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Cambie al usuario oracle (y vaya a su directorio de inicio).
sudo su - oracle
Busque el proceso del agente de Essbase.
ps -ef | grep ESSS | grep -v "grep"
El comando anterior debería devolver una lista de procesos que comiencen por oracle
seguido de dos identificadores de proceso; por ejemplo,
oracle 10769 19563 ...
Suponga que el primer identificador de proceso es <PID>
, que utilizará en el siguiente paso.
Utilice el comando strings para capturar el valor de ESSBASE_INSTANCE_UNIQUE_ID.
strings /proc/<PID>/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
Ejemplo:
strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
El comando anterior debería devolver el valor de ESSBASE_INSTANCE_UNIQUE_ID; por ejemplo,
ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
Mediante SQL Developer u otra herramienta, conéctese a Oracle Database como usuario del esquema al que está conectada la partición federada.
Ejecute una sentencia SELECT para obtener el valor de OTL_ID.
El formato de la sentencia SELECT es el siguiente:
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='<AppName>' and "JAGENT_INSTANCE_ID"='<ESSBASE_INSTANCE_UNIQUE_ID>';
Ejemplo
Reemplace ESSAV_6Sample_5Basic
por su AppName, y 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs'
por su ESSBASE_INSTANCE_UNIQUE_ID.
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
La consulta anterior debería devolver el valor de OTL_ID; por ejemplo,
62
Ejecute un procedimiento PL/SQL para borrar tablas relacionadas con metadatos asociadas a OTL_ID.
Ejemplo
Reemplace 62
por su OTL_ID.
SET SERVEROUTPUT ON; BEGIN FOR c IN ( SELECT distinct TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME like 'ESSAV_MTD_62_%' ) LOOP EXECUTE IMMEDIATE 'DROP TABLE "' || c.TABLE_NAME || '" purge'; DBMS_OUTPUT.PUT_LINE('TABLE ' || c.TABLE_NAME || ' dropped successfully.'); END LOOP; END; /
Ejecute una sentencia UPDATE para definir la tabla ESSAV_OTL_MTD_VERSION en el estado inactivo.
Ejemplo
Reemplace ESSAV_6Sample_5Basic
por su AppName, y EWRnHFlQteCEzWUhF7P3TPKunf3bYs
por su ESSBASE_INSTANCE_UNIQUE_ID.
UPDATE "ESSAV_OTL_MTD_VERSION" SET "OTL_STATUS" = 'INACTIVE' where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs'; commit;
Volver a crear la conexión y la partición federada
Vuelva a crear la conexión a Autonomous Data Warehouse. Esta puede ser una conexión global (bajo el icono principal Orígenes en la interfaz web de Essbase), o puede estar en los Orígenes que se han definido solo para la aplicación. Siga las instrucciones de conexión. Asegúrese de Probar y Guardar la conexión.
Vuelva a crear la partición de federación como se describe en Creación de una partición federada.
Si sigue apareciendo un error de conexión como Essbase Error(1350012): Attempt to connect to OCI failed
, compruebe https://support.oracle.com/rs?type=doc&id=2925030.1.
Las particiones federadas no se migran con las aplicaciones de Essbase. Durante la preparación para mover la aplicación y el cubo a otro servidor o realizar la migración a otra versión de Essbase, tendrá que suprimir la partición federada y volver a crearla en el nuevo entorno.
Para hacer una copia de seguridad del cubo de partición federada:
Realice una copia de seguridad de la aplicación, sin los datos, pero incluyendo todo lo que necesite (como las propiedades de configuración, los filtros, las variables, los scripts de cálculo y otros artefactos). Para ello, utilice la exportación de LCM (o el trabajo Exportar LCM en la interfaz web de Essbase).
Realice una copia de seguridad de la tabla de hechos. Consulte Copia de seguridad y restauración de Autonomous Database.
Suprima la definición de partición federada del cubo, siguiendo los pasos que se indican en Eliminación de una partición federada.
Para restaurar el cubo de partición federada a partir de la copia de seguridad:
Vuelva a crear la aplicación utilizando LcmImport: Restauración de archivos de cubo (o el trabajo Importar LCM en la interfaz web de Essbase).
Si es necesario, restaure la tabla de hechos en Autonomous Data Warehouse.
Vuelva a crear la conexión en Autonomous Data Warehouse. Se recomienda utilizar un nuevo nombre de conexión para evitar que se produzcan errores.
Vuelva a crear la partición federada.