Održavanje objedinjene particije i rješavanje problema

Slijedite sljedeće smjernice za održavanje ili rješavanje problema s Essbase kockama s objedinjenim particijama.

U ovoj temi pretpostavlja se da ste stvorili objedinjenu particiju i pregledali informacije navedene u prethodnim temama.

Modeliranje i testiranje kocki objedinjene particije

Kada dizajnirate kocku objedinjene particije, slijedite ove smjernice za testiranje ako stvaranje traje predugo. Ove smjernice mogu biti korisne za postupni pristup rješavanju problema ili praćenju izvedbe.

  • Započnite projekt objedinjene particije na testnom okruženju.

  • Započnite s modelima kocke koji imaju sljedeće karakteristike:

    • nema puno razina

    • nema puno dijeljenih sadržaja ili atributa

  1. Kad stvarate objedinjenu particiju, isplanirajte offline operacije kad upiti nisu dopušteni u odnosu na instancu.

  2. Postupno isključite aktivne Essbase korisničke sesije tako da upotrijebite MaxL alter application disable commands i/ili disable connects (kako biste spriječili novu korisničku aktivnost), a zatim alter system logout session i/ili kill request (ako trebate prekinuti aktivne sesije koje se ne moraju dovršiti). Uzmite u obzir da MaxL ne može prekinuti bilo koji zahtjev pokrenut u servisu Autonomous Data Warehouse. Ako onemogućite naredbe u aplikaciji, ne zaboravite ponovo omogućiti naredbe nakon stvaranja objedinjene particije.

  3. Izvršite prilagodbu isteka vremena:
    • HTTPS proxy na korisničkoj mreži - namještanje isteka vremena korisničke mreže
    • Load balancer - povećanje isteka vremena za LoadBalance na 1260 sekundi (21 minuta)
    • Povećanje isteka vremena za HTTPS na 21 minutu
      /etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
      /etc/httpd/conf.d/00_base.conf:Timeout 1260
    • APS/JAPI istek vremena:
      • Na stranici Konzola u Essbase web-sučelju odaberite Konfiguracija i zapišite vrijednost olap.server.netSocketTimeOut. Vrijednost od 200 ms znači da se za svakih 5 za ta svojstva daje 1 sekunda vremena čekanja.
      • Za postavljanje APS/JAPI isteka vremena na 30 minuta, postavite olap.server.netRetryCount na 9000.
  4. Stvori objedinjenu particiju.
  5. Vratite namještanja isteka vremena u 3. koraku.
  6. Omogućite korisnicima povratak na sustav pomoću opcije alter application i enable commands i/ili connects, ako je to prethodno bilo omogućeno.
  7. Za izvješća u Essbase kocki s objedinjenom particijom, prilagodite QRYGOVEXECTIME da bude veći od očekivanog vremena kako biste izvršili upite u odnosu na objedinjene particije. Uzmite u obzir da QRYGOVEXECTIME ne može prekinuti bilo koji zahtjev pokrenut u servisu Autonomous Data Warehouse.
  8. Nakon testiranja razvojnog okruženja i dovršetka prilagodbe, upotrijebite ranije navedene korake od 1 do 7 za dodavanje objedinjene particije u produkcijsko okruženje.

Bilješka:

Ako vidite pogrešku "Spremanje strukture nije uspjelo" kad stvarate objedinjenu particiju, pričekajte da se sesija dovrši i zatim osvježite preglednik. Ako je stvorena objedinjena particija, provjerite njezinu valjanost u alatu SQL Developer. Ako se može provjeriti u alatu SQL Developer, tada je objedinjena particija spremna za upotrebu. Ako se ne može provjeriti u alatu SQL Developer, tada model treba popraviti i potrebno je prilagoditi istek vremena kako je opisano u 3. koraku.

Mjere zaštite metapodataka za kocke objedinjene particije

Kada Essbase sadrži objedinjenu particiju, pazite pri uređivanju strukture kocke. Ako dodajete ili promijenite naziv članova, pobrinite se da promjene metapodataka postoje u tablici činjenica u servisu Autonomous Data Warehouse.

Ako Essbase struktura prestane biti sinkronizirana s tablicom činjenica u servisu Autonomous Data Warehouse, objedinjena particija prestat će biti valjana ili neće ispravno funkcionirati. Kako biste to popravili, morate ispustiti objedinjenu particiju, izvršiti promjene strukture i tablice činjenica pa ponovo izraditi objedinjenu particiju.

Ako objedinjena particija prestane biti valjana, može se prikazati pogreška koja počinje s Essbase Error(1040235): Remote warning from federated partition.

Zbog sljedećih vrsta promjena Essbase strukture objedinjena particija prestat će biti valjana:

  • Dodavanje, promjena naziva ili uklanjanje dimenzija

  • Dodavanje, promjena naziva ili uklanjanje spremljenih članova u zaokretnoj dimenziji

  • Promjena člana iz spremljenog u dinamičkog

Za druge vrste promjena Essbase strukture koje nisu gore navedene (na primjer, dodavanje ili promjena naziva člana koji nije u zaokretnoj dimenziji), trebali biste izvršiti odgovarajuću promjenu u zahvaćenom retku podataka u tablici činjenica. Inače objedinjena particija neće ispravno funkcionirati.

Ako unaprijed znate da će se metapodaci Essbase strukture promijeniti, radije prvo uklonite objedinjenu particiju, izvršite promjene strukture, ažurirajte tablicu činjenica pa ponovo stvorite objedinjenu particiju.

No ako su se Essbase metapodaci promijenili i zato objedinjena particija nije valjana, poduzmite sljedeću akciju:

  1. Uklonite objedinjenu particiju i vezu koja je s njom povezana (ako se inače ne upotrebljava), na način opisan u dijelu Uklanjanje objedinjene particije.

    Iz korisničke sheme objedinjene particije u servisu Autonomous Data Warehouse ručno izbrišite sve tablice i ostale objekte koje je generirao Essbase i koji nisu uspješno uklonjeni putem objedinjene particije.

  2. Pobrinite se da su promjene strukture dovršene u Essbase kocki.

  3. Ponovo stvorite tablicu činjenica. Pogledajte Stvaranje tablice činjenica.

  4. Ponovo stvorite vezu sa servisom Autonomous Data Warehouse. To može biti globalna veza (pod glavnom ikonom Izvori u Essbase web-sučelju) ili može biti u izvorima definiranim samo za aplikaciju. Slijedite upute u dijelu Kreiranje veze za objedinjene particije.

  5. Ponovo stvorite objedinjenu particiju na način opisan u Stvaranje objedinjene particije.

Što napraviti ako se promijene pojedinosti veze baze podataka

Ako su se pojedinosti veze Autonomous Data Warehouse koje Essbase upotrebljava za objedinjenu particiju promijenili, morat ćete ispustiti i ponovo stvoriti objedinjenu particiju te očistiti povezane objekte i tablice metapodataka iz sheme baze podataka.

Morat ćete ispustiti i ponovno stvoriti objedinjenu particiju ako se bilo koji od sljedećih događaja dogodi nakon stvaranja objedinjene particije:

  • Mijenja se Autonomous Data Warehouse ulaz

  • Mijenja se naziv za Veza

  • Veza upotrebljava wallet i prebacujete s jednog naziva servisa na drugi (za promjene izvedbe ili istodobnosti)

  • Ažuriranje strukture mijenja mapiranje člana u tablicu činjenica, zbog čega objedinjena particija prestaje biti sinkronizirana. Pojedinosti potražite u poglavlju Mjere zaštite metapodataka za kocke objedinjene particije.

Ako unaprijed znate da će se pojedinosti veze promijeniti, bolje je ukloniti objedinjenu particiju prije nego što dođe do promjene i ponovo je stvoriti nakon toga. Međutim, ako se veza promijenila te zbog toga objedinjena particija više nije valjana, pratite korake u nastavku.

Ispuštanje objedinjene particije

Uklonite objedinjenu particiju i vezu koja je s njom povezana (ako se inače ne upotrebljava), na način opisan u dijelu Uklanjanje objedinjene particije.

Čišćenje objekata i tablica baza podataka povezanih s objedinjenom particijom

Iz korisničke sheme objedinjene particije u servisu Autonomous Data Warehouse ispustite sve tablice i ostale objekte koje je generirao Essbase i koji nisu uspješno uklonjeni putem objedinjene particije.

  1. ssh za glavno računalo servisa Essbase Server kao opc korisnik.

                      ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
                   
  2. Promijenite na oracle korisnika (i prijeđite na glavni direktorij).

                      sudo su - oracle
                   
  3. Prijeđite u direktorij applications.

                      cd /u01/data/essbase/app
                   
  4. S pomoću naziva Essbase aplikacije i kocke prepoznajte jedinstveni prefiks povezan s objektima i metapodacima objedinjene particije.

    1. Dohvatite naziv aplikacije (AppName). U nazivu se razlikuju velika i mala slova, pa točno zabilježite slova. U ovom primjeru, AppName = Sample.

      ls
      Sample
    2. Prebrojite znakove (appx) u nazivu aplikacije.

      Primjer: appx = 6.

    3. Prijeđite u direktorij kocke i dohvatite naziv kocke (DbName). U nazivu se razlikuju velika i mala slova, pa točno zabilježite slova. U ovom primjeru, DbName = Basic.

      cd /Sample
      ls
      Basic
    4. Prebrojte znakove (dby) u nazivu kocke.

      Primjer: dby = 5.

    5. Izradite Prefix kao:

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

      Primjer:

      <Prefix> = ESSAV_6Sample_5Basic_
  5. U alatu SQL Developer ili drugom alatu uspostavite vezu sa servisom Oracle Database kao korisnikom sheme s kojom je objedinjena veza povezana.

  6. Pokrenite naredbu SELECT kako biste izradili popis objekata povezanih s aplikacijom objedinjene particije. To su objekti koje ćete očistiti u sljedećem koraku.

    Format naredbe SELECT je:

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

    Primjer:

    SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
  7. Pokrenite spremljenu PL/SQL proceduru koja će očistiti sve analitičke prikaze, pakete, hijerarhije, tablice i ostale objekte povezane s varijablom Prefix.

    Primjer

    Zamijenite ESSAV_6Sample_5Basic_ s varijablom 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. Ispustite i ažurirajte povezane tablice koje se odnose na metapodatke. Najprije trebate dohvatiti vrijednost za ESSBASE_INSTANCE_UNIQUE_ID i OTL_ID.

    1. ssh za glavno računalo servisa Essbase Server kao opc korisnik.

                              ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
                           
    2. Promijenite na oracle korisnika (i prijeđite na glavni direktorij).

                              sudo su - oracle
                           
    3. Potražite proces Essbase Agent.

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

      Gornja naredba trebala bi vratiti popis procesa koji počinje s oracle, iza čega slijede dva ID-a procesa; na primjer,

      oracle   10769  19563 ...

      Pretpostavimo da je prvi ID procesa <PID>, koji ćete upotrijebiti u sljedećem koraku.

    4. Upotrijebite naredbu strings kako biste zabilježili vrijednost ESSBASE_INSTANCE_UNIQUE_ID.

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

      Primjer:

                              strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
                           

      Gornja naredba trebala bi vratiti vrijednost ESSBASE_INSTANCE_UNIQUE_ID; na primjer,

      ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
    5. U alatu SQL Developer ili drugom alatu uspostavite vezu sa servisom Oracle Database kao korisnikom sheme s kojom je objedinjena veza povezana.

    6. Pokrenite naredbu SEELCT kako biste dohvatili vrijednost OTL_ID.

      Format naredbe SELECT je:

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

      Primjer

      Zamijenite ESSAV_6Sample_5Basic s AppName te zamijenite 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs' s ESSBASE_INSTANCE_UNIQUE_ID.

      SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
    7. Gornji upit trebao bi vratiti vrijednost OTL_ID; na primjer,

      62
    8. Pokrenite spremljenu PL/SQL proceduru kako biste ispustili tablice koje se odnose na metapodatke i povezane su s OTL_ID.

      Primjer

      Zamijenite 62 s 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. Pokrenite naredbu UPDATE kako biste tablicu ESSAV_OTL_MTD_VERSION postavili na status Neaktivno.

      Primjer

      Zamijenite ESSAV_6Sample_5Basic s AppName i zamijenite EWRnHFlQteCEzWUhF7P3TPKunf3bYs s ESSBASE_INSTANCE_UNIQUE_ID.

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

Ponovno stvaranje veze i objedinjene particije

  1. Ponovo stvorite vezu sa servisom Autonomous Data Warehouse. To može biti globalna veza (pod glavnom ikonom Izvori u Essbase web-sučelju) ili može biti u izvorima definiranim samo za aplikaciju. Slijedite upute u dijelu Veza. Obavezno testirajte i spremite vezu.

  2. Ponovo stvorite objedinjenju particiju na način opisan u Stvaranje objedinjene particije.

  3. Ako se nastavi prikazivati pogreška veze poput Essbase Error(1350012): Attempt to connect to OCI failed, provjerite https://support.oracle.com/rs?type=doc&id=2925030.1.

Sigurnosno kopiranje i vraćanje aplikacije objedinjene particije

Objedinjene particije ne migriraju se s Essbase aplikacijama. Kod pripreme za premještanje aplikacije i kocke na drugi poslužitelj ili migraciju na drugu Essbase verziju, morat ćete izbrisati objedinjenu particiju i ponovo je stvoriti u novom okruženju.

Sigurnosno kopiranje kocke objedinjene particije:

  1. Napravite sigurnosnu kopiju aplikacije, bez podataka, ali uključite sve ostalo što vam može trebati (primjerice svojstva konfiguracije, filtri, varijable, izračunske skripte i drugi elementi). Kako biste to napravili, upotrijebite LCM izvoz (ili zadatak LCM izvoz u Essbase web-sučelju).

  2. Napravite sigurnosnu kopiju tablice činjenica. Pogledajte Sigurnosno kopiranje i vraćanje autonomne baze podataka.

  3. Izbrišite definiciju objedinjene particije iz kocke tako da slijedite korake u Uklanjanje objedinjene particije.

Kako biste svoju kocku objedinjene particijevratili iz sigurnosne kopije,

  1. Ponovo stvorite aplikaciju tako da upotrijebite LcmImport: vraćanje datoteka kocke (ili zadatak LCM uvoz u Essbase web-sučelju).

  2. Ako je potrebno, vratite tablicu činjenica na servis Autonomous Data Warehouse.

  3. Ponovo stvorite vezu u Autonomous Data Warehouse. Preporučuje se upotreba novog naziva veze kako bi se izbjegle pogreške.

  4. Ponovo stvorite objedinjenu particiju.