Federated Cube - Wartung und Fehlerbehebung

Nutzen Sie die folgenden Richtlinien für die Verwaltung und Fehlerbehebung von föderierten Essbase-Cubes.

In diesem Thema wird angenommen, dass Sie die föderierte Partition erstellt haben und die Informationen in den vorhergehenden Themen geprüft haben.

Federated Cubes modellieren und testen

Befolgen Sie beim Entwerfen eines Essbase-Federated Cube die folgenden Design- und Testrichtlinien, um eine schrittweise Lösung zur Fehlerbehebung oder Überwachung der Performance zu erhalten.

  • Beginnen Sie das Projekt Federated Cube in einer Testumgebung.

  • Beginnen Sie mit Essbase ASO- oder BSO-Cube-Modellen, die folgende Merkmale aufweisen:

    • Nicht viele Ebenen

    • Nicht viele gemeinsame Elemente oder Attribute

  1. Planen Sie beim Erstellen einer föderierten Partition Offlinevorgänge, wenn Abfragen für die Instanz nicht zulässig sind.

  2. Ziehen Sie nach und nach aktive Essbase-Benutzersessions ab, indem Sie MaxL alter application disable commands und/oder disable connects (um neue Benutzeraktivitäten zu verhindern) verwenden, 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 AI Lakehouse ausgeführt werden. Wenn Sie Befehle in der Anwendung deaktivieren, müssen Sie diese nach der Erstellung der föderierten Partition wieder aktivieren.

    Um Anforderungen zu beenden, die als SQL-Sessions in Autonomous AI Lakehouse ausgeführt werden, sind zusätzliche Schritte erforderlich. Siehe SQL mit langer Ausführungszeit auf föderierten Cubes abbrechen.

  3. Timeoutoptimierung ausführen:
    • HTTPS-Proxy im Kundennetzwerk: Passen Sie die Timeouts im Kundennetzwerk an
    • Load Balancer: Erhöhen Sie den LoadBalance-Timeout auf 1260 Sekunden (21 Minuten)
    • Erhöhen Sie die HTTPD-Timeouts auf 21 Minuten
      /etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
      /etc/httpd/conf.d/00_base.conf:Timeout 1260
    • APS/JAPI-Timeout:
      • Wählen Sie auf der Seite Konsole der Essbase-Weboberfläche die Option Konfiguration aus, und notieren Sie den Wert von olap.server.netSocketTimeOut. Ein Wert von 200 ms bedeutet, dass bei Vorliegen von jeweils 5 dieser Eigenschaften 1 Sekunde Wartezeit entsteht.
      • Um einen APS/JAPI-Timeoutgrenzwert von 30 Minuten festzulegen, setzen Sie olap.server.netRetryCount auf 9000.
  4. Erstellen Sie die föderierte Partition.
  5. Machen Sie die Timeoutanpassungen aus Schritt 3 rückgängig.
  6. Aktivieren Sie Benutzer mit enable commands enable commands und/oder connects wieder im System, falls diese zuvor deaktiviert wurden.
  7. Bei Berichten zu einem föderierten Cube optimieren Sie QRYGOVEXECTIME so, dass es größer ist als die erwartete Zeit zum Ausführen von Abfragen für föderierte Partitionen. Beachten Sie, dass QRYGOVEXECTIME keine Anforderungen beenden kann, die in Autonomous AI Lakehouse ausgeführt werden.
  8. Nachdem der Test und die Optimierung der Entwicklungsumgebung abgeschlossen sind, verwenden Sie die oben genannten Schritte 1 bis 7 zur Implementierung einer Produktionsumgebung.

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 validiert wird, ist der föderierte Cube zur Verwendung bereit. Andernfalls muss das Modell korrigiert werden, und es muss eine Timeoutoptimierung wie oben in Schritt 3 beschrieben vorgenommen werden.

Vorsichtsmaßnahmen für Metadaten für Federated Cubes

Gehen Sie vorsichtig vor, wenn Sie die Modellstruktur für einen nicht von Essbase verwalteten föderierten Cube bearbeiten. Wenn Sie Elemente hinzufügen oder umbenennen, vergewissern Sie sich, dass die Metadatenänderungen auch in Ihrer Faktentabelle in Autonomous AI Lakehouse dargestellt werden.

Dieses Thema gilt nicht für föderierte Cubes mit verwaltetem Essbase-Datenspeicher.

Wenn die Essbase-Modellstruktur nicht mehr synchron mit der Faktentabelle in Autonomous AI Lakehouse ist, wird der föderierte Cube 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 ein föderierter Cube ungültig wird, tritt möglicherweise ein Fehler auf, der mit Essbase Error(1040235): Remote warning from federated partition beginnt.

Die folgenden Typen von Essbase-Modellstrukturänderungen führen dazu, dass ein (nicht von Essbase verwalteter) föderierter Cube 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 der föderierte Cube möglicherweise nicht ordnungsgemäß.

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:

  1. 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 in Autonomous AI Lakehouse manuell alle Essbase-generierten Tabellen und anderen Objekte, die nicht mit der föderierten Partition entfernt werden konnten.

  2. Stellen Sie sicher, dass die Modellstrukturänderungen im Essbase-Cube abgeschlossen sind.

  3. Erstellen Sie die Faktentabelle erneut. Siehe Faktentabelle erstellen.

  4. Erstellen Sie die Verbindung zu Autonomous AI Lakehouse 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 Cubes erstellen.

  5. Erstellen Sie die föderierte Partition erneut, wie unter Föderierte Partition erstellen beschrieben.

SQL mit langer Ausführungszeit auf föderierten Cubes abbrechen

Sie können SQL-Sessions abbrechen, die auf föderierten Essbase-Cubes ausgeführt werden. Eine SQL-Abbruch kann erforderlich sein, wenn eine Berechnung zu lange dauert oder wenn der föderierte Cube ein Backup oder Recovery benötigt.

Wenn Essbase-Berechnungen, Dataloads oder Aggregationen, die auf föderierten Cubes ausgeführt werden, SQL-Anweisungen mit langer Ausführungszeit generieren, können die Sessions abgebrochen werden, obwohl sie auf Autonomous AI Lakehouse ausgeführt werden.

Bevor der Abbruch der SQL-Session über Essbase verfügbar werden kann, muss ein kurzer Workflow mit Schritten abgeschlossen sein, um SQL Session Governor in Essbase zu aktivieren.

Benutzer mit den folgenden Zugriffstypen sind an den Vorbereitungsschritten beteiligt.

Benutzertyp Rolle im Workflow
DB-Admin

Kennt den Namen und das Kennwort des Administratorschemas für Autonomous AI Lakehouse. Kann gespeicherte PL/SQL-Prozeduren in Autonomous AI Lakehouse erstellen und anderen Benutzern Berechtigungen erteilen.

DB-Benutzer

Wird auch als Benutzer der föderierten Partition bezeichnet

Kennt den Schemanamen und Kennwort von Autonomous AI Lakehouse, dasselbe Schema und Kennwort, das zum Erstellen der Essbase-Verbindung zu Oracle Database (eine obligatorische Voraussetzung vor dem Erstellen der föderierten Partition) verwendet wird.

Essbase-Anwendungsmanager

Der Manager/Eigentümer einer Essbase-Anwendung, die für einen föderierten Cube verwendet wird.

Der folgende Workflow der Schritte muss abgeschlossen sein, um SQL Session Governor zu aktivieren:

  1. DB-Admin: Erstellen Sie die folgenden gespeicherten PL/SQL-Prozeduren in Autonomous AI Lakehouse, und erteilen Sie dem DB-Benutzer die EXECUTE-Berechtigung:

    Hinweis:

    Die Stored Procedures müssen im Datenbankbenutzerschema erstellt werden.
    1. ESS_SESSION_SET_MODULE (jagent_id in VARCHAR2,app_name in VARCHAR2, db_name in VARCHAR2, req_id in VARCHAR2)

      Erstellen Sie das Verfahren mit der folgenden Anweisung:

      CREATE OR REPLACE NONEDITIONABLE PROCEDURE "ESS_SESSION_SET_MODULE" (jagent_id in VARCHAR2, app_name in VARCHAR2, db_name in VARCHAR2, req_id in VARCHAR2) AS
          ess_jagentid VARCHAR2(256);
          ess_appname VARCHAR2(256);
          ess_dbname VARCHAR2(256);
          ess_reqid VARCHAR2(256);
          hash_str VARCHAR2(100);
      BEGIN
          IF jagent_id is not NULL AND app_name is not NULL AND db_name is not NULL AND req_id is not NULL THEN
              -- add prefixes to identify essbase sessions
              ess_jagentid := CONCAT('ess_jagentid_', jagent_id);
              ess_appname := CONCAT('ess_appname_', app_name);
              ess_dbname := CONCAT('ess_dbname_', db_name);
              ess_reqid := CONCAT('ess_reqid_', req_id);
      
              -- ess_jagentid is stored in client_info
              dbms_application_info.set_client_info(ess_jagentid);
      
              -- create hash out of CONCAT(ess_jagentid, ess_appname, ess_dbname)
              -- the hash identifies the fed partition
              -- store the hash as the module
              -- store the ess_reqid as the action
              SELECT TO_CHAR(ORA_HASH(CONCAT(CONCAT(ess_jagentid, ess_appname), ess_dbname))) INTO hash_str from dual;
              dbms_application_info.set_module(module_name => hash_str, action_name => ess_reqid);
              
          ELSIF jagent_id is NULL AND app_name is NULL AND db_name is NULL AND req_id is NULL THEN
              -- reset session
              dbms_application_info.set_module(null,null);
              dbms_application_info.set_client_info(null);
          END IF;
      END ESS_SESSION_SET_MODULE;
      
    2. ESS_SESSION_CANCEL (jagent_id in VARCHAR2, app_name in VARCHAR2, db_name in VARCHAR2, req_id in VARCHAR2)

      Erstellen Sie das Verfahren mit der folgenden Anweisung:

      CREATE OR REPLACE NONEDITIONABLE PROCEDURE "ESS_SESSION_CANCEL" (jagent_id in VARCHAR2, app_name in VARCHAR2, db_name in VARCHAR2, req_id in VARCHAR2) AS
          ess_jagentid VARCHAR2(256);
          ess_appname VARCHAR2(256);
          ess_dbname VARCHAR2(256);
          ess_reqid VARCHAR2(256);
          uname VARCHAR2(100);
          hash_str VARCHAR2(100);
          sessionid VARCHAR2(100);
          killcmd VARCHAR2(1000);
          XCP_MARKED_FOR_TERMINATION exception;
          pragma exception_init (XCP_MARKED_FOR_TERMINATION, -00031);
      BEGIN
          -- add prefixes to identify Essbase sessions
          ess_jagentid := CONCAT('ess_jagentid_', jagent_id);
          ess_appname := CONCAT('ess_appname_', app_name);
          ess_dbname := CONCAT('ess_dbname_', db_name);
          ess_reqid := CONCAT('ess_reqid_', req_id);
      
          -- create hash out of CONCAT(ess_jagentid, ess_appname, ess_dbname)
          -- the hash identifies the federated partition
          SELECT TO_CHAR(ORA_HASH(CONCAT(CONCAT(ess_jagentid, ess_appname), ess_dbname))) INTO hash_str from dual;
          uname := SYS_CONTEXT('USERENV', 'SESSION_USER');
      
          IF jagent_id is not NULL AND app_name is not NULL AND db_name is not NULL AND req_id is not NULL THEN
              -- valid jagent_id, app_name, db_name, req_id
              -- kill sessions associated with the given federated cube and request id
              FOR r IN (select sid,serial# from v$session where username=uname AND module=hash_str AND action=ess_reqid)
              LOOP
                  BEGIN
                      sessionid := DBMS_ASSERT.ENQUOTE_LITERAL(r.sid || ',' || r.serial#);
                      killcmd:='ALTER SYSTEM KILL SESSION ' || sessionid || ' IMMEDIATE';
                      EXECUTE IMMEDIATE killcmd;
                  EXCEPTION
                      WHEN XCP_MARKED_FOR_TERMINATION THEN
                          -- ignore - the session could not be terminated immediately, but is marked for termination.
                          NULL;
                  END;
              END LOOP;
          ELSIF jagent_id is not NULL AND app_name is not NULL AND db_name is not NULL AND req_id is NULL THEN
              -- null req_id
              -- kill all sessions for the given federated cube - invoked at app startup
              FOR r IN (select sid,serial# from v$session where username=uname AND module=hash_str)
              LOOP
                  BEGIN
                      sessionid := DBMS_ASSERT.ENQUOTE_LITERAL(r.sid || ',' || r.serial#);
                      killcmd:='ALTER SYSTEM KILL SESSION ' || sessionid || ' IMMEDIATE';
                      EXECUTE IMMEDIATE killcmd;
                  EXCEPTION
                      WHEN XCP_MARKED_FOR_TERMINATION THEN
                          -- ignore - the session could not be terminated immediately, but is marked for termination.
                          NULL;
                  END;
              END LOOP;
          END IF;
      
          EXCEPTION
              WHEN OTHERS THEN
                  RAISE;
      END ESS_SESSION_CANCEL;
      
    3. Erteilen Sie dem DB-Benutzer EXECUTE-Berechtigungen für die oben gespeicherten Prozeduren.

      GRANT EXECUTE on ESS_SESSION_SET_MODULE TO "DB User";
      GRANT EXECUTE on ESS_SESSION_CANCEL TO "DB User";
      CREATE OR REPLACE SYNONYM "DB User".ESS_SESSION_SET_MODULE FOR ESS_SESSION_SET_MODULE;
      CREATE OR REPLACE SYNONYM "DB User".ESS_SESSION_CANCEL FOR ESS_SESSION_CANCEL;
  2. DB-Benutzer: Bestätigen Sie in Ihrem Autonomous AI Lakehouse-Schema, dass Sie unter Synonyme Zugriff auf die folgenden gespeicherten Prozeduren haben:

    • ESS_SESSION_SET_MODULE
    • ESS_SESSION_ABBRECHEN
  3. Wenn diese Voraussetzungen erfüllt sind, können SQL-Anforderungen mit langer Ausführungszeit im föderierten Cube genauso abgebrochen werden wie andere Essbase-Anforderungen. Anforderungen können in der Essbase-Weboberfläche im Bereich Sessions der Konsole abgebrochen werden. Wenn Sie MaxL verwenden, können Sie Anforderungen mit der Anweisung alter system kill request abbrechen. Richtlinien zum Beenden der Session finden Sie unter Model and Test Federated Partition Cubes.

Vorgehensweise, wenn die Datenbankverbindungsdetails geändert wurden

Wenn die Autonomous AI Lakehouse-Verbindungsdetails geändert wurden, die Essbase für einen föderierten Cube verwendet, müssen Sie die föderierte Partition löschen und neu erstellen und die zugehörigen Objekte und Metadatentabellen aus dem Datenbankschema bereinigen.

Dieses Thema gilt nicht für föderierte Cubes mit verwaltetem Essbase-Datenspeicher.

Sie müssen die föderierte Partition löschen und neu erstellen, wenn eines der folgenden Ereignisse nach ihrer Erstellung auftritt:

  • Die Änderungen am Autonomous AI Lakehouse-Port

  • Der Name der Verbindung ändert sich

  • 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. Weitere Informationen finden Sie unter Metadatenvorsichtsmaßnahmen für föderierte 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 sich die Verbindung jedoch geändert hat und der föderierte Cube 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

Entfernen Sie aus dem Benutzerschema in Autonomous AI Lakehouse alle von der Essbase generierten Tabellen und anderen Objekte, die nicht mit der föderierten Partition entfernt werden konnten.

  1. Stellen Sie als opc-Benutzer eine SSH-Verbindung zum Essbase-Server her.

    ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
  2. Wechseln Sie zum oracle-Benutzer (und navigieren Sie zu dessen Home-Verzeichnis).

    sudo su - oracle
  3. Navigieren Sie zum Anwendungsverzeichnis.

    cd /u01/data/essbase/app
  4. Identifizieren Sie anhand des Essbase-Anwendungs- und Cube-Namens das eindeutige Präfix für die Objekte und Metadaten der föderierten Partition.

    1. Rufen Sie den Anwendungsnamen ab (AppName). Notieren Sie die genaue Schreibweise, da beim Namen die Groß-/Kleinschreibung beachtet wird. In diesem Beispiel ist AppName = Sample.

      ls
      Sample
    2. 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 ist DbName = Basic.

      cd /Sample
      ls
      Basic
    3. Stellen Sie mit SQL Developer oder einem anderen Tool eine Verbindung zu Autonomous AI Database als Benutzer des Schemas her, mit dem der föderierte Cube verbunden ist (oder war).

    4. Führen Sie in SQL Developer eine SELECT-Anweisung aus, um den Wert OTL_ID und OTL_STATUS abzurufen.

      Format der SELECT-Anweisung:

      SELECT OTL_ID, OTL_STATUS, TRC_HOST FROM ESSAV_OTL_MTD_VERSION where APPNAME ='<AppName>';

      Beispiel

      Ersetzen Sie Sample durch AppName.

      SELECT OTL_ID, OTL_STATUS, TRC_HOST FROM ESSAV_OTL_MTD_VERSION WHERE APPNAME='Sample';

      Die obige Abfrage muss den Wert OTL_ID zurückgeben. Beispiel:

      987

      Hinweis:

      Wenn Zeilen zurückgegeben werden, bei denen OTL_STATUS ACTIVE lautet, sollten Sie versuchen, die Anwendung aus der Instanz TRC_HOST zu löschen, bevor Sie mit dem nächsten Schritt fortfahren.
    5. Erstellen Sie die Prefix wie folgt:

      ESSAV_<OTL_ID>_

      Beispiel:

      <Prefix> = ESSAV_987_
  5. Führen Sie eine SELECT-Anweisung aus, um eine Liste der Objekte zu erstellen, die mit dem föderierten Cube 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>%' ESCAPE '\';

    Beispiel:

    SELECT * FROM user_OBJECTS WHERE OBJECT_NAME LIKE 'ESSAV_987_%' ESCAPE '\';
  6. Führen Sie eine gespeicherte PL/SQL-Prozedur aus, die alle Analyse-Views, Packages, Hierarchien, Tabellen und anderen Objekte bereinigt, die mit dem Prefix-Wert verknüpft sind.

    Beispiel

    Ersetzen Sie ESSAV_987_ durch Prefix.

    SET SERVEROUTPUT ON;
    
    declare
      prefix_str varchar2(70) := 'ESSAV_987_';
    
    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 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 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 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;
    /
    
  7. Löschen und aktualisieren Sie die verknüpften metadatenbezogenen Tabellen.

    1. Führen Sie eine gespeicherte PL/SQL-Prozedur aus, um metadatenbezogene Tabellen zu löschen, die mit der OTL_ID verknüpft sind.

      Beispiel

      Ersetzen Sie 987 durch OTL_ID.

      SET SERVEROUTPUT ON;
      BEGIN
        FOR c IN ( SELECT distinct TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME like 'ESSAV_MTD_987_%' )
        LOOP
          EXECUTE IMMEDIATE 'DROP TABLE "' || c.TABLE_NAME || '" purge';
          DBMS_OUTPUT.PUT_LINE('TABLE ' || c.TABLE_NAME || ' dropped successfully.');
        END LOOP;
      END;
      /
      
    2. Führen Sie eine UPDATE-Anweisung aus, um die ESSAV_OTL_MTD_VERSION-Tabelle in den Status "Inaktiv" zu versetzen.

      Beispiel

      Ersetzen Sie Sample durch AppName.

      UPDATE "ESSAV_OTL_MTD_VERSION" SET  "OTL_STATUS" = 'INACTIVE'  where APPNAME ='Sample';
      commit;

Hinweis:

Da nur eine Essbase-Instanz das Schema Autonome KI-Datenbank verwenden darf, müssen Sie die ESSBASE_INSTANCE_UNIQUE_ID nicht angeben, wenn Sie die Bereinigungsaufgaben ausführen. Weitere Informationen finden Sie unter Einschränkungen für föderierte Cubes.

Verbindung und föderierte Partition neu erstellen

  1. Erstellen Sie die Verbindung zu Autonomous AI Lakehouse 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 Connection. Achten Sie darauf, die Verbindung zu testen und zu speichern.

  2. Erstellen Sie die föderierte Partition erneut, wie unter Föderierte Partition erstellen beschrieben.

  3. Wenn weiterhin ein Verbindungsfehler wie Essbase Error(1350012): Attempt to connect to OCI failed angezeigt wird, prüfen Sie https://support.oracle.com/rs?type=doc&id=2925030.1.

Föderierten Cube sichern und wiederherstellen

Föderierte Partitionen werden nicht mit Essbase-Anwendungen migriert. Wenn Sie den föderierten Cube auf 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 sichern Sie Ihren föderierten Cubes:

  1. 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 LcmExport (oder den Job LCM exportieren in der Essbase-Weboberfläche).

  2. Erstellen Sie ein Backup der Faktentabelle. Siehe Autonomous Database sichern und wiederherstellen.

  3. Löschen Sie die Definition der föderierten Partition aus dem Cube, wie unter Föderierte Partition entfernen beschrieben.

So stellen Sie Ihren föderierten Cube aus dem Backup wieder her:

  1. Erstellen Sie die Anwendung mit LcmImport (oder dem Job LCM importieren in der Essbase-Weboberfläche) neu.

  2. Stellen Sie gegebenenfalls die Faktentabelle in Autonomous AI Lakehouse wieder her.

  3. Erstellen Sie die Verbindung zu Autonomous AI Lakehouse erneut. Es wird empfohlen, einen neuen Verbindungsnamen zu verwenden, um Fehler zu vermeiden.

  4. Erstellen Sie die föderierte Partition neu.