Utilisez les directives suivantes pour tenir à jour ou dépanner les cubes Essbase avec des partitions fédérées.
Cette rubrique suppose que vous avez créé une partition fédérée et pris connaissance des informations fournies aux rubriques précédentes.
Lorsque vous concevez un cube de partition fédérée, suivez ces directives de test si la création prend trop de temps. Ces directives peuvent être utiles afin d'adopter une approche progressive pour le dépannage ou la surveillance de la performance.
Commencez le projet de partition fédérée dans un environnement de test.
Commencez avec des modèles de cube présentant les caractéristiques suivantes :
pas trop de niveaux
pas trop de membres ou d'attributs partagés
Lors de la création d'une partition fédérée, programmez des opérations hors ligne lorsque les interrogations ne sont pas permises sur l'instance.
Déconnectez progressivement les sessions d'utilisateur Essbase actives en utilisant l'énoncé MaxL alter application suivi de disable commands
ou de disable connects
(pour empêcher toute nouvelle activité d'utilisateur), puis l'énoncé alter system suivi de logout session
ou de kill request
(si vous devez mettre fin à des sessions actives qui n'ont pas besoin de se terminer). Notez que MaxL ne peut pas mettre fin aux demandes en cours d'exécution dans la base de données Autonomous Data Warehouse. Si vous désactivez des commandes dans l'application, pensez à les réactiver après avoir créé la partition fédérée.
/etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
/etc/httpd/conf.d/00_base.conf:Timeout 1260
olap.server.netRetryCount
à 9000.Note :
Si le message d'erreur "Échec de l'enregistrement de la structure" s'affiche lors de la création de la partition fédérée, attendez la fin des sessions, puis actualisez le navigateur. Si la partition fédérée a été créée, validez-la dans SQL Developer. Si la validation dans SQL Developer aboutit, la partition fédérée est prête à être utilisée. En cas d'échec de la validation dans SQL Developer, vous devez corriger le modèle et effectuer un réglage de la temporisation comme indiqué à l'étape 3 ci-dessus.Si Essbase comporte une partition fédérée, procédez avec précaution lorsque vous modifiez la structure de cube. Si vous ajoutez ou renommez des membres, assurez-vous que les modifications des métadonnées sont également représentées dans la table de faits de la base de données Autonomous Data Warehouse.
Si la structure Essbase n'est plus synchronisée avec la table de faits dans la base de données Autonomous Data Warehouse, la partition fédérée devient non valide ou ne fonctionne plus correctement. Pour corriger ce problème, vous devez supprimer la partition fédérée, modifier la structure et la table de faits, puis recréer la partition fédérée.
Si une partition fédérée devient non valide, vous risquez d'obtenir une erreur commençant par Erreur Essbase (1040235) : Avertissement distant de la partition fédérée
.
Les types de modification de structure Essbase suivants rendront une partition fédérée non valide :
Ajout, suppression ou changement de nom de dimensions
Ajout, suppression ou changement de nom de membres stockés dans la dimension dynamique
Passage d'un membre de type Stocké au type Dynamique
Pour les autres types de modification de structure Essbase non indiqués ci-dessus (par exemple, l'ajout ou le changement de nom d'un membre de dimension non dynamique), vous devez apporter la modification correspondante à la rangée de données concernée dans la table de faits. Sinon, la partition fédérée peut ne pas fonctionner correctement.
Si vous savez à l'avance que les métadonnées de la structure Essbase seront modifiées, il est préférable de supprimer d'abord la partition fédérée, de modifier la structure, de mettre à jour la table de faits, puis de recréer la partition fédérée.
Toutefois, si les métadonnées Essbase ont été modifiées et que la partition fédérée est devenue non valide, effectuez l'opération suivante :
Supprimez la partition fédérée, ainsi que la connexion associée (si elle n'est utilisée à aucune autre fin), comme expliqué dans Supprimer une partition fédérée.
À partir du schéma d'utilisateur de la partition fédérée dans la base de données Autonomous Data Warehouse, supprimez manuellement toutes les tables générées par Essbase et les autres objets qui n'ont pas été supprimés avec la partition fédérée.
Assurez-vous que les modifications de structure sont terminées dans le cube Essbase.
Recréez la table de faits. Voir Créer la table de faits.
Recréez la connexion à la base de données Autonomous Data Warehouse. Il peut s'agir d'une connexion globale (sous l'icône principale Sources dans l'interface Web d'Essbase) ou d'une connexion existant dans les sources définies uniquement pour l'application. Suivez les instructions décrites dans Créer une connexion pour des partitions fédérées.
Recréez la partition fédérée, comme expliqué dans Créer une partition fédérée.
Si les détails de la connexion à la base de données Autonomous Data Warehouse utilisés par Essbase pour une partition fédérée ont été modifiés, vous devrez supprimer et recréer la partition fédérée, puis nettoyer les objets et tables de métadonnées associés du schéma de la base de données.
Vous devrez supprimer et recréer la partition fédérée si l'un des événements suivants survient après la création de la partition fédérée :
Le port de la base de données Autonomous Data Warehouse est modifié
Le nom de la connexion est modifié
La connexion utilise un portefeuille et vous passez d'un nom de service à un autre (pour modifier la performance ou la concurrence)
À l'occasion d'une mise à jour de structure, le mappage de membre à la table de faits est modifié, ce qui provoque la désynchronisation de la partition fédérée. Pour plus de détails, voir Précautions relatives aux métadonnées pour les cubes de partition fédérée.
Si vous savez à l'avance que les détails de la connexion seront modifiés, il est préférable de supprimer la partition fédérée avant la modification et de la récréer après. Toutefois, si la connexion a été modifiée et que la partition fédérée est devenue non valide, effectuez les étapes suivantes :
Supprimer la partition fédérée
Supprimez la partition fédérée, ainsi que la connexion associée (si elle n'est utilisée à aucune autre fin), comme expliqué dans Supprimer une partition fédérée.
Nettoyer les objets et tables de métadonnées associés de la partition fédérée
À partir du schéma d'utilisateur de la partition fédérée dans la base de données Autonomous Data Warehouse, supprimez toutes les tables générées par Essbase et les autres objets qui n'ont pas été supprimés avec la partition fédérée.
ssh vers l'hôte du serveur Essbase en tant qu'utilisateur opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Passez à l'utilisateur oracle (et allez à son répertoire de base).
sudo su - oracle
Naviguez jusqu'au répertoire des applications.
cd /u01/data/essbase/app
En utilisant l'application Essbase et le nom du cube, identifiez le préfixe unique associé à vos objets et métadonnées de partition fédérée.
Obtenez le nom de l'application (AppName). Le nom est sensible à la casse. Il faut donc saisir la casse exacte. Dans cet exemple, AppName = Sample.
ls
Sample
Comptez le nombre de caractères (appx) dans le nom de l'application.
Exemple : appx = 6.
Naviguez jusqu'au répertoire du cube et obtenez le nom du cube (DbName). Le nom est sensible à la casse. Il faut donc saisir la casse exacte. Dans cet exemple, DbName = Basic.
cd /Sample
ls
Basic
Comptez le nombre de caractères (dby) dans le nom du cube.
Exemple : dby = 5.
Créez le préfixe comme suit :
ESSAV_<appx><AppName>_<dby><DbName>_
Exemple :
<Prefix> = ESSAV_6Sample_5Basic_
À l'aide de SQL Developer ou d'un autre outil, connectez-vous à Oracle Database en tant qu'utilisateur du schéma auquel la partition fédérée est connectée.
Exécutez un énoncé SELECT pour créer une liste d'objets associés à votre application de partition fédérée. Ce sont les objets que vous nettoierez à l'étape suivante.
Le format de l'énoncé SELECT est :
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like '<Prefix>%';
Exemple :
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
Exécutez une procédure PL/SQL stockée qui nettoie toutes les vues analytiques, les ensembles, les hiérarchies, les tables et les autres objets associés au préfixe.
Exemple
Remplacez ESSAV_6Sample_5Basic_
par votre préfixe.
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; /
Supprimez et mettez à jour les tables associées aux métadonnées. Tout d'abord, vous devez obtenir des valeurs pour ESSBASE_INSTANCE_UNIQUE_ID et OTL_ID.
ssh vers l'hôte du serveur Essbase en tant qu'utilisateur opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Passez à l'utilisateur oracle (et allez à son répertoire de base).
sudo su - oracle
Recherchez le processus Essbase Agent.
ps -ef | grep ESSS | grep -v "grep"
La commande ci-dessus devrait retourner une liste de processus qui commence par oracle
suivi de deux ID de processus. Par exemple,
oracle 10769 19563 ...
Considérez que le premier ID processus est <PID>
, que vous utiliserez dans l'étape suivante.
Utilisez la commande strings pour saisir la valeur pour ESSBASE_INSTANCE_UNIQUE_ID.
strings /proc/<PID>/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
Exemple :
strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
La commande ci-dessus devrait retourner la valeur pour ESSBASE_INSTANCE_UNIQUE_ID. Par exemple,
ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
À l'aide de SQL Developer ou d'un autre outil, connectez-vous à Oracle Database en tant qu'utilisateur du schéma auquel la partition fédérée est connectée.
Exécutez un énoncé SELECT pour obtenir la valeur pour OTL_ID.
Le format de l'énoncé SELECT est :
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='<AppName>' and "JAGENT_INSTANCE_ID"='<ESSBASE_INSTANCE_UNIQUE_ID>';
Exemple
Remplacez ESSAV_6Sample_5Basic
par le nom de votre application (AppName), puis remplacez 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs'
par votre ESSBASE_INSTANCE_UNIQUE_ID.
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
L'interrogation ci-dessus devrait retourner la valeur pour OTL_ID. Par exemple,
62
Exécutez une procédure PL/SQL stockée pour supprimer les tables de métadonnées associées à OTL_ID.
Exemple
Remplacez 62
par votre 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; /
Exécutez un énoncé UPDATE pour régler la table ESSAV_OTL_MTD_VERSION au statut Inactif.
Exemple
Remplacez ESSAV_6Sample_5Basic
par le nom de votre application (AppName), puis remplacez EWRnHFlQteCEzWUhF7P3TPKunf3bYs
par votre ESSBASE_INSTANCE_UNIQUE_ID.
UPDATE "ESSAV_OTL_MTD_VERSION" SET "OTL_STATUS" = 'INACTIVE' where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs'; commit;
Recréer la connexion et la partition fédérée
Recréez la connexion à la base de données Autonomous Data Warehouse. Il peut s'agir d'une connexion globale (sous l'icône principale Sources dans l'interface Web d'Essbase) ou d'une connexion existant dans les sources définies uniquement pour l'application. Suivez les instructions décrites dans connexion. Assurez-vous de tester et d'enregistrer la connexion.
Recréez la partition fédérée, comme expliqué dans Créer une partition fédérée.
Si vous continuez d'obtenir une erreur de connexion telle que Erreur Essbase (1350012) : Échec de la tentative de connexion à OCI
, consultez https://support.oracle.com/rs?type=doc&id=2925030.1.
Les partitions fédérées ne sont pas migrées avec les applications Essbase. Lors de la préparation du déplacement de votre application et de votre cube vers un autre serveur ou de la migration vers une autre version Essbase, vous devez supprimer la partition fédérée et la recréer dans le nouvel environnement.
Pour sauvegarder votre cube de partition fédérée,
Sauvegardez l'application, sans les données, mais en incluant tout ce dont vous pouvez avoir besoin (comme les propriétés de configuration, les filtres, les variables, les scripts de calcul et d'autres artefacts). Pour ce faire, utilisez LCMExport (ou le travail Exporter par LCM dans l'interface Web d'Essbase).
Sauvegardez la table de faits. Voir Sauvegarde et restauration d'une base de données autonome.
Supprimez la définition de partition fédérée du cube en suivant les étapes décrites dans Supprimer une partition fédérée.
Pour restaurer votre cube de partition fédérée à partir d'une sauvegarde,
Recréez l'application à l'aide de la commande lcmImport : Restaurer les fichiers de cube (ou du travail Importer par LCM dans l'interface Web d'Essbase).
Si nécessaire, restaurez la table de faits dans la base de données Autonomous Data Warehouse.
Recréez la connexion à Autonomous Data Warehouse. Il est recommandé d'utiliser le nom de la nouvelle connexion pour éviter que des erreurs ne se produisent.
Recréez la partition fédérée.