Underhåll och felsökning av kuber för samordnade partitioner

Följ de här riktlinjerna för att hantera och felsöka Essbase-kuber med samordnade partitioner.

Det här ämnet antar att du har skapat en samordnad partition och granskat informationen i de föregående ämnena.

Modellera och testa kuber för samordnade partitioner

När du utformar en kub för samordnade partitioner följer du dessa riktlinjer för testning om skapandet tar för lång tid. De här anvisningarna kan vara användbara när felsökning och övervakning av prestanda utförs stegvis.

  • Påbörja projektet med samordnade partitioner i en testmiljö.

  • Börja med kubmodeller som har följande egenskaper:

    • inte många nivåer

    • inte många delade medlemmar eller attribut

  1. När du skapar en samordnad partition schemalägger du offlineåtgärder när frågor inte tillåts mot instansen.

  2. Koppla gradvis ned aktiva användarsessioner i Essbase med MaxL ändra applikation disable commands eller disable connects (för att förhindra ny användaraktivitet), följt av ändra system logout session eller kill request (om du behöver avsluta aktiva sessioner som inte behöver slutföras). Observera att MaxL inte kan avsluta begäranden som körs i ett autonomt datalager. Om du avaktiverar kommandon i applikationen ska du komma ihåg att återaktivera kommandona när du har skapat den samordnade partitionen.

  3. Justera tidsgränser:
    • HTTPS-proxy i kundnätverk - justera tidsgränser för kundnätverket
    • Lastbalanserare - öka LoadBalance-tidsgränsen till 1 260 sekunder (21 minuter)
    • Öka HTTPD-tidsgränsen till 21 minuter
      /etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
      /etc/httpd/conf.d/00_base.conf:Timeout 1260
    • APS/JAPI-tidsgräns:
      • På sidan Konsol i webbgränssnittet för Essbase väljer du Konfiguration och antecknar värdet för olap.server.netSocketTimeOut. Ett värde om 200 ms innebär att varje gång dessa egenskaper uppgår till 5 infaller 1 sekunds väntetid.
      • Du anger APS/JAPI-tidsgränsen till 30 minuter genom att ställa in olap.server.netRetryCount på 9000.
  4. Skapa den samordnade partitionen.
  5. Återställ tidsgränsjusteringarna i steg 3.
  6. Återaktivera användarna i systemet med ändra applikation enable commands eller connects om de avaktiverades tidigare.
  7. För rapporter om en Essbase-kub med en samordnad partition ställer du in QRYGOVEXECTIME till ett högre värde än den förväntade tiden för att köra frågor mot samordnade partitioner. Observera att QRYGOVEXECTIME inte kan avsluta begäranden som körs i det autonoma datalagret.
  8. När testning och justering av utvecklingsmiljön är slutförd lägger du till den samordnade partitionen i en produktionsmiljö genom att följa steg 1 till 7 ovan.

Obs!:

Om du ser felet "Kunde inte spara disposition" när du skapar den samordnade partitionen väntar du på att sessionerna ska slutföras och förnyar sedan webbläsaren. Om den samordnade partitionen har skapats validerar du den i SQL Developer. Om den valideras i SQL Developer är den samordnade partitionen redo att användas. Om den inte valideras i SQL Developer måste modellen åtgärdas och tidsgränsen justeras enligt beskrivningen i steg 3.

Metadataåtgärder för kuber för samordnade partitioner

När Essbase har en samordnad partition ska du tänka efter när du redigerar kubdispositionen. Om du lägger till eller ändrar namn på medlemmar ska du kontrollera att metadataändringarna även återspeglas i faktatabellen i det autonoma datalagret.

Om dispositionen i Essbase blir osynkad med faktatabellen i det autonoma datalagret blir den samordnade partitionen ogiltig eller slutar fungera som den ska. För att åtgärda det måste du radera den samordnade partitionen, göra ändringar i dispositionen och faktatabellen och sedan återskapa den samordnade partitionen.

Om en samordnad partition blir ogiltig kan du få ett fel som börjar med Essbase Error(1040235): Remote warning from federated partition.

Följande typer av ändringar av Essbase-dispositionen gör att en samordnad partition blir ogiltig:

  • tillägg, namnändring eller borttagande av dimensioner

  • tillägg, namnändring eller borttagande av lagrade medlemmar i pivotdimensionen

  • ändring av en medlem från lagrad till dynamisk

För andra typer av ändringar av en disposition i Essbase som inte har angetts ovan (till exempel tillägg eller namnändring av en medlem i en icke-pivotdimension) gör du motsvarande ändring av den berörda dataraden i faktatabellen. Annars kanske den samordnade partitionen inte fungerar som den ska.

Om du vet i förväg att dispositionens metadata i Essbase kommer att ändras är det bättre att först ta bort den samordnade partitionen, göra dispositionsändringarna, uppdatera faktatabellen och sedan återskapa den samordnade partitionen.

Om metadata i Essbase emellertid har ändrats och gjort att den samordnade partitionen blivit ogiltig vidtar du följande åtgärd:

  1. Ta bort den samordnade partitionen och den anslutning som är associerad med den (om den inte används i övrigt) enligt beskrivningen i Ta bort en samordnad partition.

    Från användarschemat för den samordnade partitionen i det autonoma datalagret, tar du manuellt bort de Essbase-genererade tabeller och andra objekt som inte togs bort tillsammans med den samordnade partitionen.

  2. Kontrollera att dispositionsändringarna har slutförts i kuben i Essbase.

  3. Skapa faktatabellen igen. Se Skapa faktatabellen.

  4. Återskapa anslutningen till det autonoma datalagret. Det kan vara en global anslutning (under ikonen för huvudsakliga källor i webbgränssnittet för Essbase) eller så kan den finnas i de källor som angetts just för applikationen. Följ anvisningarna i Skapa en anslutning för samordnade partitioner.

  5. Återskapa den samordnade partitionen enligt beskrivningen i Skapa en samordnad partition.

Åtgärder om uppgifterna om databasanslutningen har ändrats

Om anslutningsuppgifterna för det autonoma datalagret som Essbase använder för en samordnad partition har ändrats måste du radera och återskapa den samordnade partitionen och rensa alla associerade objekt och metadatatabeller från databasschemat.

Du måste radera och återskapa den samordnade partitionen om någon av följande händelser inträffar efter det att den samordnade partitionen har skapats:

  • Porten för det autonoma datalagret ändras

  • Namnet anslutning ändras

  • anslutning använder en plånbok och du växlar från ett tjänstenamn till ett annat (för att göra prestanda- eller samtidighetsändringar)

  • En dispositionsuppdatering ändrar mappningen av medlemmar till faktatabellen, vilket gör att den samordnade partitionenblir osynkad. Mer information finns i Metadataåtgärder för samordnade partitionskuber.

Om du vet i förväg att anslutningsuppgifterna ska ändras är det bättre att ta bort den samordnade partitionen innan ändringen äger rum och skapa den igen efteråt. Om anslutningen har ändrats och gjort att den samordnade partitionen blivit ogiltig utför du nedanstående steg.

Radera den samordnade partitionen

Ta bort den samordnade partitionen och den anslutning som är associerad med den (om den inte används i övrigt) enligt beskrivningen i Ta bort en samordnad partition.

Rensa objekt och metadatatabeller relaterade till samordnade partitioner

Från användarschemat för den samordnade partitionen i det autonoma datalagret, raderar du de Essbase-genererade tabeller och andra objekt som inte togs bort tillsammans med den samordnade partitionen.

  1. Logga in via SSH till värden för Essbase-servern som användaren opc.

                      ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
                   
  2. Ändra till användaren oracle (och gå till dess hemkatalog).

                      sudo su - oracle
                   
  3. Gå till applikationskatalogen.

                      cd /u01/data/essbase/app
                   
  4. Med Essbase-applikationen och kubnamnet identifierar du det unika prefix som är associerat med den samordnade partitionens objekt och metadata.

    1. Hämta applikationsnamnet (AppName). Namnet är skiftlägeskänsligt så du måste registrera det exakta skiftläget. I det här exemplet AppName = Sample.

      ls
      Sample
    2. Räkna antalet tecken (appx) i applikationsnamnet.

      Exempel: appx = 6.

    3. Gå till kubkatalogen och hämta kubnamnet (DbName). Namnet är skiftlägeskänsligt så du måste registrera det exakta skiftläget. I det här exemplet DbName = Basic.

      cd /Sample
      ls
      Basic
    4. Räkna antalet tecken (dby) i kubnamnet.

      Exempel: dby = 5.

    5. Skapa ett prefix som:

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

      Exempel:

      <Prefix> = ESSAV_6Sample_5Basic_
  5. Använd SQL Developer eller ett annat verktyg för att ansluta till Oracle Database som användaren av det schema som den samordnade partitionen är ansluten till.

  6. Kör en SELECT-sats för att skapa en lista med objekt associerade med den samordnade partitionsapplikationen. Det är de objekt du ska rensa i nästa steg.

    SELECT-satsens format är:

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

    Exempel:

    SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
  7. Kör en lagrad PL/SQL-procedur som rensar alla analysvyer, paket, hierarkier, tabeller och andra objekt som är associerade med ditt prefix.

    Exempel

    Ersätt ESSAV_6Sample_5Basic_ med ditt 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. Radera och uppdatera associerade metadatarelaterade tabeller. Först måste du hämta värdena för ESSBASE_INSTANCE_UNIQUE_ID och OTL_ID.

    1. Logga in via SSH till värden för Essbase-servern som användaren opc.

                              ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
                           
    2. Ändra till användaren oracle (och gå till dess hemkatalog).

                              sudo su - oracle
                           
    3. Sök efter processen för Essbase-agenten.

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

      Ovanstående kommando bör returnera en processlista som inleds med oracle följt av två process-id:n, till exempel

      oracle   10769  19563 ...

      Det första process-id:t ska vara <PID>, vilket du ska använda i nästa steg.

    4. Använd kommandot strings för att registrera värdet för ESSBASE_INSTANCE_UNIQUE_ID.

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

      Exempel:

                              strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
                           

      Ovanstående kommando bör returnera värdet för ESSBASE_INSTANCE_UNIQUE_ID, till exempel

      ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
    5. Använd SQL Developer eller ett annat verktyg för att ansluta till Oracle Database som användaren av det schema som den samordnade partitionen är ansluten till.

    6. Kör en SELECT-sats för att hämta värdet för OTL_ID.

      SELECT-satsens format är:

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

      Exempel

      Ersätt ESSAV_6Sample_5Basic med ditt värde för AppName och ersätt 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs' med ditt värde för ESSBASE_INSTANCE_UNIQUE_ID.

      SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
    7. Ovanstående fråga bör returnera värdet för OTL_ID, till exempel

      62
    8. Kör en lagrad PL/SQL-procedur för att släppa metadatarelaterade tabeller associerade med OTL_ID.

      Exempel

      Ersätt 62 med ditt 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-sats för att ange inaktiv status för tabellen ESSAV_OTL_MTD_VERSION.

      Exempel

      Ersätt ESSAV_6Sample_5Basic med ditt värde för AppName och ersätt EWRnHFlQteCEzWUhF7P3TPKunf3bYs med ditt värde för ESSBASE_INSTANCE_UNIQUE_ID.

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

Återskapa anslutningen och den samordnade partitionen

  1. Återskapa anslutningen till det autonoma datalagret. Det kan vara en global anslutning (under ikonen för huvudsakliga källor i webbgränssnittet för Essbase) eller så kan den finnas i de källor som angetts just för applikationen. Följ anvisningarna i anslutning. Se till att testa och spara anslutningen.

  2. Återskapa den samordnade partitionen enligt beskrivningen i Skapa en samordnad partition.

  3. Om du fortfarande ser ett anslutningsfel som Essbase Error(1350012): Attempt to connect to OCI failed kontrollerar du https://support.oracle.com/rs?type=doc&id=2925030.1.

Säkerhetskopiera och återställa en applikation för samordnade partitioner

Samordnade partitioner migreras inte med Essbase-applikationer. När du förbereder en flytt av applikationen och kuben till en annan server eller en migrering till en annan version av Essbase måste du ta bort den samordnade partitionen och återskapa den i den nya miljön.

Säkerhetskopiera kuben för samordnade partitioner

  1. Säkerhetskopiera applikationen, utan data men med allt annat du kan behöva (som konfigurationsegenskaper, filter, variabler, beräkningsskript och andra artefakter). Du gör det genom att använda LCM-export (eller jobbet Exportera LCM i webbgränssnittet för Essbase).

  2. Säkerhetskopiera faktatabellen. Se Säkerhetskopiera och återställa autonom databas.

  3. Ta bort definitionen av samordnad partition från kuben enligt anvisningarna i Ta bort en samordnad partition.

Återställa kuben för samordnade partitioner från säkerhetskopian

  1. Återskapa applikationen med LcmImport: Återställ kubfiler (eller jobbet Importera LCM i webbgränssnittet för Essbase).

  2. Om det behövs återställer du faktatabellen i det autonoma datalagret.

  3. Återskapa anslutningen till autonomt datalager. Du rekommenderas att använda ett nytt anslutningsnamn för att undvika att fel uppstår.

  4. Återskapa den samordnade partitionen.