Nutzen Sie die folgenden Richtlinien für die Verwaltung und Fehlerbehebung für Essbase-Cubes mit föderierten Partitionen.
In diesem Thema wird angenommen, dass Sie eine föderierte Partition erstellt und die Informationen in den vorhergehenden Themen gelesen haben.
Befolgen Sie beim Entwerfen eines Cubes mit föderierter Partition folgende Testrichtlinien, falls die Erstellung zu lange dauert. Diese Richtlinien können nützlich sein, wenn Sie die Fehlerbehebung oder Performanceüberwachung phasenweise durchführen.
Beginnen Sie das Projekt mit der föderierten Partition in einer Testumgebung.
Beginnen Sie mit Cube-Modellen, die folgende Merkmale aufweisen:
Nicht viele Ebenen
Nicht viele gemeinsame Elemente oder Attribute
Planen Sie beim Erstellen einer föderierten Partition Offlinevorgänge, wenn Abfragen für die Instanz nicht zulässig sind.
Trennen Sie aktive Essbase-Benutzersessions nach und nach mit den MaxL-Befehlen alter application disable commands
und/oder disable connects
(um neue Benutzeraktivität zu verhindern), gefolgt von alter system logout session
und/oder kill request
(wenn Sie aktive Sessions beenden möchten, die nicht abgeschlossen werden müssen). Beachten Sie, dass MaxL keine Anforderungen beenden kann, die in Autonomous Data Warehouse ausgeführt werden. Wenn Sie Befehle in der Anwendung deaktivieren, müssen Sie diese nach der Erstellung der föderierten Partition wieder aktivieren.
/etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
/etc/httpd/conf.d/00_base.conf:Timeout 1260
olap.server.netRetryCount
auf 9000.Hinweis:
Wenn beim Erstellen der föderierten Partition der Fehler "Modellstruktur konnte nicht gespeichert werden" angezeigt wird, warten Sie, bis die Sessions abgeschlossen sind, und aktualisieren Sie dann den Browser. Wenn die föderierte Partition erstellt wurde, validieren Sie sie in SQL Developer. Wenn Sie in SQL Developer erfolgreich validiert wird, ist die föderierte Partition zur Verwendung bereit. Wenn sie in SQL Developer nicht validiert werden kann, muss das Modell korrigiert werden, und Sie müssen eine Timeoutoptimierung wie oben in Schritt 3 beschrieben vornehmen.Wenn Essbase eine föderierte Partition enthält, gehen Sie beim Bearbeiten der Cube-Modellstruktur vorsichtig vor. Wenn Sie Elemente hinzufügen oder umbenennen, stellen Sie sicher, dass die Metadatenänderungen auch in der Faktentabelle in Autonomous Data Warehouse widergespiegelt werden.
Wenn die Essbase-Modellstruktur nicht mehr synchron mit der Faktentabelle in Autonomous Data Warehouse ist, wird die föderierte Partition ungültig oder fehlerhaft. Um sie zu korrigieren, müssen Sie die föderierte Partition löschen, Änderungen an der Modellstruktur und der Faktentabelle vornehmen und die föderierte Partition dann erneut erstellen.
Wenn eine föderierte Partition ungültig wird, tritt möglicherweise ein Fehler auf, der wie folgt beginnt: Essbase-Fehler (1040235): Remotewarnung von föderierter Partition
.
Die folgenden Typen von Essbase-Modellstrukturänderungen führen dazu, dass eine föderierte Partition ungültig wird:
Dimensionen hinzufügen, umbenennen oder entfernen
Gespeicherte Elemente in der Pivot-Dimension hinzufügen, umbenennen oder entfernen
Elemente von "Gespeichert" in "Dynamisch'" ändern
Bei anderen Typen vonEssbase-Modellstrukturänderungen, die oben nicht genannt sind (z.B. Element einer Nicht-Pivot-Dimension hinzufügen oder umbenennen) müssen Sie die entsprechende Änderung an der betroffenen Datenzeile in der Faktentabelle vornehmen. Andernfalls funktioniert die föderierte Partition möglicherweise nicht mehr richtig.
Wenn Sie bereits im Voraus wissen, dass Essbase-Modellstrukturmetadaten geändert werden, sollten Sie die föderierte Partition zuerst entfernen, die Modellstrukturänderung vornehmen, die Faktentabelle aktualisieren und dann die föderierte Partition erneut erstellen.
Wenn die föderierte Partition allerdings durch eine Änderung der Essbase-Metadaten ungültig wurde, führen Sie die folgende Aktion aus:
Entfernen Sie die föderierte Partition und die damit verknüpfte Verbindung (wenn sie ansonsten nicht verwendet wird) wie unter Föderierte Partition entfernen beschrieben.
Löschen Sie aus dem Benutzerschema der föderierten Partition in Autonomous Data Warehouse manuell alle von Essbase generierten Tabellen und anderen Objekte, die nicht mit der föderierten Partition entfernt werden konnten.
Stellen Sie sicher, dass die Modellstrukturänderungen im Essbase-Cube abgeschlossen sind.
Erstellen Sie die Faktentabelle erneut. Siehe Faktentabelle erstellen.
Erstellen Sie die Verbindung zu Autonomous Data Warehouse erneut. Dabei kann es sich um eine globale Verbindung (unter dem Hauptsymbol für Quellen in der Essbase-Weboberfläche) oder eine nur für die Anwendung definierte Quelle handeln. Befolgen Sie die Anweisungen unter Verbindung für föderierte Partitionen erstellen.
Erstellen Sie die föderierte Partition erneut, wie unter Föderierte Partition erstellen beschrieben.
Wenn die Details der Autonomous Data Warehouse-Verbindung, die Essbase für eine föderierte Partition verwendet, geändert wurden, müssen Sie die föderierte Partition löschen und erneut erstellen sowie die zugehörigen Objekte und Metadatentabellen aus dem Datenbankschema löschen.
Sie müssen die föderierte Partition löschen und neu erstellen, wenn eines der folgenden Ereignisse nach der Erstellung der föderierten Partition auftritt:
Der Autonomous Data Warehouse-Port wird geändert.
Der Name der Verbindung wird geändert.
Die Verbindung verwendet ein Wallet, und Sie wechseln von einem Servicenamen zu einem anderen (um Performance- oder Nebenläufigkeitsänderungen vorzunehmen).
Die Elementzuordnung zur Faktentabelle wird aufgrund einer Modellstrukturaktualisierung geändert, sodass die föderierte Partition nicht mehr synchron ist. Details dazu finden Sie unter Vorsichtsmaßnahmen zu Metadaten für föderierte Partitions-Cubes.
Wenn Sie bereits im Voraus wissen, dass die Verbindungsdetails geändert werden, sollten Sie die föderierte Partition entfernen, bevor die Änderung stattfindet, und sie anschließend wieder erstellen. Wenn die föderierte Partition allerdings durch eine Verbindungsänderung ungültig wurde, führen Sie die folgenden Schritte aus.
Föderierte Partition löschen
Entfernen Sie die föderierte Partition und die damit verknüpfte Verbindung (wenn sie ansonsten nicht verwendet wird) wie unter Föderierte Partition entfernen beschrieben.
Mit der föderierten Partition verknüpfte Objekte und Metadatentabellen bereinigen
Löschen Sie aus dem Benutzerschema der föderierten Partition in Autonomous Data Warehouse alle von Essbase generierten Tabellen und anderen Objekte, die nicht mit der föderierten Partition entfernt werden konnten.
Stellen Sie als opc-Benutzer eine SSH-Verbindung zum Essbase-Server her.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Wechseln Sie zum oracle-Benutzer (und navigieren Sie zu dessen Home-Verzeichnis).
sudo su - oracle
Navigieren Sie zum Anwendungsverzeichnis.
cd /u01/data/essbase/app
Identifizieren Sie anhand des Essbase-Anwendungs- und Cube-Namens das eindeutige Präfix für die Objekte und Metadaten der föderierten Partition.
Rufen Sie den Anwendungsnamen (AppName) ab. Notieren Sie die genaue Schreibweise, da beim Namen die Groß-/Kleinschreibung beachtet wird. In diesem Beispiel: AppName = Sample.
ls
Sample
Zählen Sie die Anzahl von Zeichen (appx) im Anwendungsnamen.
Beispiel: appx = 6.
Navigieren Sie zum Cube-Verzeichnis, und rufen Sie den Cube-Namen (DbName) ab. Notieren Sie die genaue Schreibweise, da beim Namen die Groß-/Kleinschreibung beachtet wird. In diesem Beispiel: DbName = Basic.
cd /Sample
ls
Basic
Zählen Sie die Anzahl von Zeichen (dby) im Cube-Namen.
Beispiel: dby = 5.
Erstellen Sie das Präfix (Prefix) wie folgt:
ESSAV_<appx><AppName>_<dby><DbName>_
Beispiel:
<Prefix> = ESSAV_6Sample_5Basic_
Stellen Sie mit SQL Developer oder einem anderen Tool eine Verbindung zu Oracle Database als Benutzer des Schemas her, mit dem die föderierte Partition verbunden ist.
Führen Sie eine SELECT-Anweisung aus, um eine Liste mit Objekten zu erstellen, die mit Ihrer Anwendung mit föderierter Partition verknüpft sind. Diese Objekte müssen Sie im nächsten Schritt bereinigen.
Format der SELECT-Anweisung:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like '<Prefix>%';
Beispiel:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
Führen Sie eine PL/SQL-Stored Procedure aus, die alle Analyse-Views, Packages, Hierarchien, Tabellen und anderen Objekte bereinigt, die mit dem Prefix-Wert verknüpft sind.
Beispiel
Ersetzen Sie ESSAV_6Sample_5Basic_
durch den Prefix-Wert.
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; /
Löschen und aktualisieren Sie die verknüpften metadatenbezogenen Tabellen. Als Erstes müssen Sie Werte für ESSBASE_INSTANCE_UNIQUE_ID und OTL_ID abrufen.
Stellen Sie als opc-Benutzer eine SSH-Verbindung zum Essbase-Server her.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Wechseln Sie zum oracle-Benutzer (und navigieren Sie zu dessen Home-Verzeichnis).
sudo su - oracle
Suchen Sie nach dem Essbase-Agent-Prozess.
ps -ef | grep ESSS | grep -v "grep"
Der oben genannte Befehl sollte eine Prozessliste zurückgeben, die mit oracle
beginnt, gefolgt von zwei Prozess-IDs. Beispiel:
oracle 10769 19563 ...
Verwenden Sie die erste Prozess-ID im nächsten Schritt als <PID>
.
Verwenden Sie den strings-Befehl, um den Wert von ESSBASE_INSTANCE_UNIQUE_ID zu erfassen.
strings /proc/<PID>/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
Beispiel:
strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
Der oben genannte Befehl sollte den Wert von ESSBASE_INSTANCE_UNIQUE_ID zurückgeben. Beispiel:
ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
Stellen Sie mit SQL Developer oder einem anderen Tool eine Verbindung zu Oracle Database als Benutzer des Schemas her, mit dem die föderierte Partition verbunden ist.
Führen Sie eine SELECT-Anweisung aus, um den Wert von OTL_ID abzurufen.
Format der SELECT-Anweisung:
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='<AppName>' and "JAGENT_INSTANCE_ID"='<ESSBASE_INSTANCE_UNIQUE_ID>';
Beispiel
Ersetzen Sie ESSAV_6Sample_5Basic
durch Ihren AppName-Wert und 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs'
durch Ihre ESSBASE_INSTANCE_UNIQUE_ID.
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
Die oben genannte Abfrage sollte den Wert von OTL_ID zurückgeben. Beispiel:
62
Führen Sie eine PL/SQL-Stored Procedure aus, um metadatenbezogene Tabellen zu löschen, die mit der OTL_ID verknüpft sind.
Beispiel
Ersetzen Sie 62
durch Ihre 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; /
Führen Sie eine UPDATE-Anweisung aus, um die ESSAV_OTL_MTD_VERSION-Tabelle in den Status "Inaktiv" zu versetzen.
Beispiel
Ersetzen Sie ESSAV_6Sample_5Basic
durch Ihren AppName-Wert und EWRnHFlQteCEzWUhF7P3TPKunf3bYs
durch Ihre ESSBASE_INSTANCE_UNIQUE_ID.
UPDATE "ESSAV_OTL_MTD_VERSION" SET "OTL_STATUS" = 'INACTIVE' where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs'; commit;
Verbindung und föderierte Partition neu erstellen
Erstellen Sie die Verbindung zu Autonomous Data Warehouse erneut. Dabei kann es sich um eine globale Verbindung (unter dem Hauptsymbol für Quellen in der Essbase-Weboberfläche) oder eine nur für die Anwendung definierte Quelle handeln. Befolgen Sie die Anweisungen unter Verbindung. Achten Sie darauf, die Verbindung zu testen und zu speichern.
Erstellen Sie die föderierte Partition erneut, wie unter Föderierte Partition erstellen beschrieben.
Wenn weiterhin ein Verbindungsfehler wie Essbase-Fehler (1350012): Verbindungsversuch zu OCI nicht erfolgreich
angezeigt wird, lesen Sie https://support.oracle.com/rs?type=doc&id=2925030.1.
Föderierte Partitionen werden nicht mit Essbase-Anwendungen migriert. Wenn Sie Ihre Anwendung und Ihren Cube in einen anderen Server verschieben oder zu einer anderen Essbase-Version migrieren möchten, müssen Sie die föderierte Partition löschen und in der neuen Umgebung neu erstellen.
So erstellen Sie ein Backup Ihres Cubes mit föderierter Partition:
Sichern Sie die Anwendung ohne die Daten, aber mit allen anderen Elementen, die Sie benötigen (z.B. Konfigurationseigenschaften, Filter, Variablen, Berechnungsskripte und andere Artefakte). Verwenden Sie dazu LCM Export (oder den Job LCM exportieren in der Essbase-Weboberfläche).
Erstellen Sie ein Backup der Faktentabelle. Siehe Autonome Datenbank sichern und wiederherstellen.
Löschen Sie die Definition der föderierten Partition wie unter Föderierte Partition entfernen beschrieben aus dem Cube.
So stellen Sie Ihren Cube mit föderierter Partition aus dem Backup wieder her:
Erstellen Sie die Anwendung mit LcmImport: Cube-Dateien wiederherstellen (oder dem Job LCM importieren in der Essbase-Weboberfläche) erneut.
Stellen Sie die Faktentabelle gegebenenfalls in Autonomous Data Warehouse wieder her.
Erstellen Sie die Verbindung erneut zu Autonomous Data Warehouse neu. Es wird empfohlen, einen neuen Verbindungsnamen zu verwenden, um Fehler zu vermeiden.
Erstellen Sie die föderierte Partition neu.