Vedligeholde og fejlfinde en kube med samlet partition

Brug følgende retningslinjer til at vedligeholde eller foretage fejlfinding af Essbase-kuber med samlede partitioner.

Dette emne antager, at du har oprettet en samlet partition og gennemgået oplysningerne i ovenstående emner.

Modellere og teste kuber i samlet partition

Når du designer en kube i en samlet partition, skal du følge disse retningslinjer for test, hvis det tager for længe at oprette den. Disse retningslinjer kan bruges, hvis du ønsker at opdele fejlfinding eller overvågning af ydeevnen i flere faser.

  • Start projektet med samlet partition i et testmiljø.

  • Start med kubemodeller, der har følgende karakteristika:

    • ikke mange niveauer

    • ikke mange delte medlemmer eller attributter

  1. Når du opretter en samlet partition, skal du planlægge offlineoperationer, hvor forespørgsler mod instansen ikke er tilladt.

  2. Afbryd gradvist forbindelsen til aktive Essbase-brugersessioner ved at bruge MaxL alter application disable commands og/eller disable connects (for at forhindre ny brugeraktivitet), efterfulgt af alter system logout session og/eller kill request (hvis du vil afslutte aktive sessioner, der ikke behøver at blive fuldført). Bemærk, at MaxL ikke kan afslutte nogen anmodninger, der eventuelt kører i Autonomous Data Warehouse. Hvis du deaktiverer kommandoer i applikationen, skal du huske at aktivere kommandoerne igen, når du har oprettet den samlede partition.

  3. Udfør timeoutoptimering:
    • HTTPS-proxy på kundenetværk - optimer timeouts for kundenetværk
    • Belastningsfordeler - forøg timeout for LoadBalance til 1260 sekunder (21 minutter)
    • Forøg HTTPD-timeouts til 21 minutter
      /etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
      /etc/httpd/conf.d/00_base.conf:Timeout 1260
    • APS/JAPI-timeout:
      • Vælg Konfiguration på siden Konsol i Essbase-webinterfacet, og noter værdien af olap.server.netSocketTimeOut. Hvis værdien er 200 ms, betyder det, at hver 5 af disse egenskaber medfører 1 sekunds ventetid.
      • For at angive APS/JAPI-timeoutgrænsen til 30 minutter skal du angive olap.server.netRetryCount til 9000.
  4. Opret den samlede partition.
  5. Tilbagefør timeoutjusteringerne i trin 3.
  6. Aktiver brugerne i systemet igen ved hjælp af alter application enable commands og/eller connects, hvis disse tidligere blev deaktiveret.
  7. I forbindelse med rapporter på en Essbase-kube med en samlet partition skal du optimere QRYGOVEXECTIME til at være større end den forventede tid til udførelse af forespørgsler mod samlede partitioner. Bemærk, at QRYGOVEXECTIME ikke kan afslutte nogen anmodninger, der eventuelt kører i Autonomous Data Warehouse.
  8. Når test og optimering er fuldført i udviklingsmiljøet, skal du føje den samlede partition til et produktionsmiljø ved at udføre trin 1 til 7 ovenfor.

Bemærk:

Hvis fejlmeddelelsen "Kunne ikke gemme outline" bliver vist, når du opretter den samlede partition, skal du vente, indtil sessionerne er fuldført, og derefter opfriske browseren. Hvis den samlede partition er oprettet, skal du validere den i SQL Developer. Hvis den samlede partition bliver valideret i SQL Developer, er den klar til brug. Hvis validering af den i SQL Developer fejler, skal modellen tilrettes, og der er behov for timeoutoptimering som beskrevet i trin 3 ovenfor.

Forholdsregler for metadata til samlede partitionskuber

Hvis Essbase har en samlet partition, skal du være forsigtig, når du redigerer kube-outlinen. Hvis du tilføjer eller omdøber medlemmer, skal du sørge for, at metadataændringerne også repræsenteres i faktatabellen i Autonomous Data Warehouse.

Hvis Essbase-outlinen ikke er synkroniseret med faktatabellen i Autonomous Data Warehouse, bliver den samlede partition ugyldig eller fungerer ikke korrekt. Du retter fejlen ved at droppe den samlede partition, foretage ændringer af outlinen og faktatabellen og derefter genoprette den samlede partition.

Hvis en samlet partition bliver ugyldig, kan der opstå en fejl, der starter med Essbase-fejl (1040235): Ekstern advarsel fra samlet partition.

Følgende typer ændringer af Essbase-outlinen forårsager, at den samlede partition bliver ugyldig:

  • Tilføjelse, omdøbning eller fjernelse af dimensioner

  • Tilføjelse, omdøbning eller fjernelse af lagrede medlemmer i pivotdimensionen

  • Ændring af et medlem fra lagret til dynamisk

I forbindelse med andre typer ændringer af Essbase-outlinen, som ikke er angivet ovenfor (for eksempel tilføjelse eller omdøbning af et medlem af en ikke-pivotdimension), skal du foretage den tilsvarende ændring af den påvirkede datarække i faktatabellen. I modsat fald fungerer den samlede partition muligvis ikke korrekt.

Hvis du på forhånd ved, at Essbase-outline-metadataene ændres, er det bedre at fjerne den samlede partition først, foretage outline-ændringerne, opdatere faktatabellen og derefter genoprette den samlede partition.

Hvis Essbase-metadataene er ændret, og det bevirkede, at den samlede partition blev ugyldig, skal du imidlertid gøre følgende:

  1. Fjern den samlede partition og den forbindelse, der er knyttet til den (hvis den ellers ikke bruges), som beskrevet i Fjerne en samlet partition.

    Slet alle Essbase-genererede tabeller og andre objekter, der ikke blev fjernet sammen med den samlede partition, fra den samlede partitions brugerskema i Autonomous Data Warehouse.

  2. Sørg for, at outline-ændringerne er fuldført i Essbase-kuben.

  3. Opret faktatabellen igen. Se Oprette faktatabellen.

  4. Genopret forbindelsen til Autonomous Data Warehouse. Dette kan være en global forbindelse (under hovedikonet for kilder i Essbase-webinterfacet), eller det kan være i de kilder, der kun er defineret for applikationen. Følg instruktionerne i Oprette en forbindelse for samlede partitioner.

  5. Genopret den samlede partition som beskrevet i Oprette en samlet partition.

Hvad du skal gøre, hvis detaljerne om databaseforbindelse er ændret

Hvis detaljerne om den Autonomous Data Warehouse-forbindelse, som Essbase bruger til en samlet partition, er ændret, skal du droppe og genoprette den samlede partition og rydde de tilknyttede objekter og metadatatabeller fra databaseskemaet.

Du skal droppe og genoprette den samlede partition, hvis nogen af følgende begivenheder opstår, efter at den samlede partition blev oprettet:

  • Autonomous Data Warehouse-porten ændres

  • Navnet på Forbindelsen ændres

  • Forbindelsen bruger en wallet, og du skifter fra ét servicenavn til et andet (for at foretage ændringer af ydeevne eller samtidighed)

  • En outline-opdatering ændrer medlems-mappingen til faktatabellen, hvilket bevirker, at den samlede partition ikke er synkroniseret. Se Forholdsregler for metadata til samlede partitionskuber for at få detaljer.

Hvis du på forhånd ved, at forbindelsesdetaljerne vil blive ændret, er det bedre at fjerne den samlede partition, før ændringen finder sted, og oprette den igen bagefter. Hvis forbindelsen er ændret, og bevirkede, at den samlede partition blev ugyldig, skal du imidlertid udføre følgende trin.

Droppe den samlede partition

Fjern den samlede partition og den forbindelse, der er knyttet til den (hvis den ellers ikke bruges), som beskrevet i Fjerne en samlet partition.

Rydde objekter og metadatatabeller, der er relateret til samlet partition

Drop alle Essbase-genererede tabeller og andre objekter, der ikke blev fjernet sammen med den samlede partition, fra den samlede partitions brugerskema i Autonomous Data Warehouse.

  1. ssh til Essbase Server-værten som brugeren opc.

                      ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
                   
  2. Skift til brugeren oracle (og gå til dennes startkatalog).

                      sudo su - oracle
                   
  3. Naviger til applikationskataloget.

                      cd /u01/data/essbase/app
                   
  4. Brug Essbase-applikations- og kubenavnet til at identificere det entydige præfiks, der er knyttet til dine samlede partitionsobjekter og metadata.

    1. Hent applikationsnavnet (AppName). Der skelnes mellem store/små bogstaver, så hent de nøjagtige store/små bogstaver. I dette eksempel er AppName = Sample.

      ls
      Sample
    2. Tæl antallet af tegn (appx) i applikationsnavnet.

      Eksempel: appx = 6.

    3. Naviger til kubekataloget, og hent kubenavnet (DbName). Der skelnes mellem store/små bogstaver, så hent de nøjagtige store/små bogstaver. I dette eksempel er DbName = Basic.

      cd /Sample
      ls
      Basic
    4. Tæl antallet af tegn (dby) i kubenavnet.

      Eksempel: dby = 5.

    5. Opbyg Prefix som:

      ESSAV_<appx><AppName>_<dby><DbName>_

      Eksempel:

      <Prefix> = ESSAV_6Sample_5Basic_
  5. Brug SQL Developer eller et andet værktøj til at oprette forbindelse til Oracle Database som bruger af det skema, som den samlede partition er forbundet med.

  6. Kør en SQL SELECT-sætning for at oprette en liste over objekter, der er knyttet til din samlede partitionsapplikation. Det er disse objekter, som du skal rydde i det næste trin.

    SQL SELECT-sætningens format er:

    SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like '<Prefix>%';

    Eksempel:

    SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
  7. Kør en lagret PL/SQL-procedure, som rydder alle de analytiske visninger, pakker, hierarkier, tabeller og andre objekter, der er knyttet til Prefix.

    Eksempel

    Erstat ESSAV_6Sample_5Basic_ med dit 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;
    /
    
  8. Drop og opdater tilknyttede metadatarelaterede tabeller. Først skal du hente værdier for ESSBASE_INSTANCE_UNIQUE_ID og OTL_ID.

    1. ssh til Essbase Server-værten som brugeren opc.

                              ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
                           
    2. Skift til brugeren oracle (og gå til dennes startkatalog).

                              sudo su - oracle
                           
    3. Søg efter Essbase Agent-processen.

                              ps -ef | grep ESSS | grep -v "grep"
                           

      Ovenstående kommando skal returnere en procesliste, der begynder med oracle, efterfulgt af to proces-id'er, for eksempel:

      oracle   10769  19563 ...

      Anse den første proces-id for at være <PID>, som du skal bruge i det næste trin.

    4. Brug kommandoen strings til at hente værdien af ESSBASE_INSTANCE_UNIQUE_ID.

      strings /proc/<PID>/environ | grep ESSBASE_INSTANCE_UNIQUE_ID

      Eksempel:

                              strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
                           

      Ovenstående kommando skal returnere værdien af ESSBASE_INSTANCE_UNIQUE_ID, for eksempel:

      ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
    5. Brug SQL Developer eller et andet værktøj til at oprette forbindelse til Oracle Database som bruger af det skema, som den samlede partition er forbundet med.

    6. Kør en SQL SELECT-sætning for at hente værdien af OTL_ID.

      SQL SELECT-sætningens format er:

      SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='<AppName>' and "JAGENT_INSTANCE_ID"='<ESSBASE_INSTANCE_UNIQUE_ID>';

      Eksempel

      Erstat ESSAV_6Sample_5Basic med dit AppName, og erstat 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs' med din ESSBASE_INSTANCE_UNIQUE_ID.

      SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
    7. Ovenstående forespørgsel skal returnere værdien af OTL_ID, for eksempel:

      62
    8. Kør en lagret PL/SQL-procedure for at droppe metadatarelaterede tabeller, der er knyttet til OTL_ID.

      Eksempel

      Erstat 62 med din 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;
      /
      
    9. Kør en UPDATE-sætning for at indstille ESSAV_OTL_MTD_VERSION-tabellen til inaktiv status.

      Eksempel

      Erstat ESSAV_6Sample_5Basic med dit AppName, og erstat EWRnHFlQteCEzWUhF7P3TPKunf3bYs med din ESSBASE_INSTANCE_UNIQUE_ID.

      UPDATE "ESSAV_OTL_MTD_VERSION" SET  "OTL_STATUS" = 'INACTIVE'  where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
      commit;

Genoprette forbindelsen og den samlede partition

  1. Genopret forbindelsen til Autonomous Data Warehouse. Dette kan være en global forbindelse (under hovedikonet for kilder i Essbase-webinterfacet), eller det kan være i de kilder, der kun er defineret for applikationen. Følg instruktionerne i Forbindelsen. Sørg for at teste og gemme forbindelsen.

  2. Genopret den samlede partition som beskrevet i Oprette en samlet partition.

  3. Hvis du fortsætter med at se en forbindelsesfejl, såsom Essbase-fejl (1350012): Forsøg på at oprette forbindelse til OCI fejlede, skal du se https://support.oracle.com/rs?type=doc&id=2925030.1.

Sikkerhedskopiere og gendanne en samlet partitionsapplikation

Samlede partitioner migreres ikke sammen med Essbase-applikationer. Når du forbereder en flytning af din applikation og kube til en anden server eller en migrering til en anden Essbase-version, skal du slette den samlede partition og genoprette den i det nye miljø.

Sådan sikkerhedskopierer du din samlede partitionskube:

  1. Sikkerhedskopier applikationen uden dataene, men med alt andet, som du kan få brug for (såsom konfigurationsegenskaber, filtre, variabler, beregningsscripts og andre artefakter). Det gør du ved hjælp af LCM-eksport (eller jobbet Eksporter LCM i Essbase-webinterfacet).

  2. Sikkerhedskopier faktatabellen. Se Sikkerhedskopiering og gendannelse af Autonomous Database.

  3. Slet definitionen af den samlede partition fra kuben ved at følge trinnene i Fjerne en samlet partition.

Sådan gendanner du din samlede partitionskube fra sikkerhedskopien:

  1. Genopret applikationen ved hjælp af LcmImport: Gendanne kubefiler (eller jobbet Importer LCM i Essbase-webinterfacet).

  2. Gendan om nødvendigt faktatabellen i Autonomous Data Warehouse.

  3. Genopret forbindelsen til Autonomous Data Warehouse. Det anbefales at bruge et nyt forbindelsesnavn for at undgå, at der opstår fejl.

  4. Genopret den samlede partition.