Yhdistetyn osion sisältävän kuution ylläpito ja virheenkorjaus

Noudata seuraavia ohjeita yhdistettyjä osioita sisältävienEssbase-kuutioiden ylläpidossa ja vianmäärityksessä.

Tässä aiheessa oletetaan, että käytössäsi on luonut yhdistetyn osion ja olet tutustunut edeltävissä aiheissa esitettyihin tietoihin.

Yhdistetyn osion sisältävien kuutioiden mallinnus ja testaus

Kun suunnittelet yhdistetyn osion sisältävää kuutiota, noudata näitä ohjeita, jos osion luominen kestää liian kauan. Näiden ohjeiden avulla toiminnan vianmääritys tai seuranta on mahdollista suorittaa vaiheittain.

  • Aloita yhdistetyn osion projekti testiympäristössä.

  • Aloita kuutiomalleilla. joilla on seuraavat ominaisuudet:

    • ei useita tasoja

    • ei useita jaettuja jäseniä tai määritteitä

  1. Kun luot yhdistettyä osiota, ajoita offline-toimintoja ajankohdille, jolloin instanssi ei salli kyselyjä.

  2. Poista yhteys aktiivisiin Essbase-käyttäjäistuntoihin vaiheittain MaxL:n sovelluksen muutoksen käytöstäpoistokomennoilla ja/tai poistamalla yhteydet käytöstä (käyttäjän uusien toimintojen estämiseksi) ja sitten järjestelmän muutoksen istunnon uloskirjauksella ja/tai lopetuspyynnöllä (jos on tarpeen lopettaa aktiivisia istuntoja, joita ei tarvitse suorittaa loppuun). Huomaa, että MaxL ei pysty lopettamaan pyyntöjä, jotka saattavat olla käynnissä Autonomous Data Warehousessa. Jos otat komentoja pois käytöstä sovelluksessa, muista ottaa ne uudelleen käyttöön yhdistetyn osion luomisen jälkeen.

  3. Säädä aikakatkaisua:
    • HTTPS-välityspalvelin asiakasverkossa – säädä asiakkaan verkon aikakatkaisuja
    • Kuormantasaaja – korota LoadBalance-aikakatkaisu 1260 sekuntiin (21 minuuttia)
    • Korota HTTPD-aikakatkaisut 21 minuuttiin
      /etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
      /etc/httpd/conf.d/00_base.conf:Timeout 1260
    • APS/JAPI-aikakatkaisu:
      • Valitse Essbase-verkkokäyttöliittymässäKonsoli-sivu, valitse Konfiguraatio ja huomioi kohteen olap.server.netSocketTimeOut arvo. Jos arvo on 200 ms, se tarkoittaa, että tämä arvo viisinkertaisena tuottaa yhden sekunnin odotusaikaa.
      • Jos haluat asettaa APS/JAPI-aikakatkaisurajaksi 30 minuuttia, aseta olap.server.netRetryCount arvoon 9000.
  4. Luo yhdistetty osio.
  5. Peruuta vaiheessa 3 tehdyt aikakatkaisun säädöt.
  6. Palauta käyttäjille järjestelmän käyttöoikeus käyttämällä kohdetta sovelluksen muutoksen komentojen käyttöönotto ja/tai yhteydet, jos ne poistettiin käytöstä aiemmin.
  7. Jos kyseessä on raportti, joka on tehty yhdistetyn osion sisältävästä Essbase-kuutiosta, säädä QRYGOVEXECTIME suuremmaksi kuin yhdistetyistä osioista tehtävien kyselyjen odotettu suoritusaika. Huomaa, että QRYGOVEXECTIME ei pysty lopettamaan pyyntöjä, jotka saattavat olla käynnissä Autonomous Data Warehousessa.
  8. Kun testaus ja hienosäätö kehitysympäristössä on valmis, lisää yhdistetty osio tuotantoympäristöön edellisten vaiheiden 1–7 mukaisesti.

Huomautus::

Jos näet Runkoa ei voitu tallentaa -virheen luodessasi yhdistettyä osiota, odota, että istunnot valmistuvat, ja päivitä sitten selain. Jos yhdistetty osio on luotu, vahvista se SQL Developer -ohjelmassa. Jos yhdistetyn osion vahvistus onnistuu SQL Developer -ohjelmassa, se on valmis käyttöön. Jos tarkistus SQL Developer -ohjelmassa ei onnistu, malli täytyy korjata ja sen aikakatkaisua täytyy säätää kuten vaiheessa 3 on edellä kuvattu.

Metatietojen varotoimet yhdistettyjä osioita sisältäville kuutioille

Kun Essbasessa on yhdistetty osio, ole huolellinen muokatessasi kuution runkoa. Jos lisäät tai nimeät uudelleen jäseniä, varmista, että metatietojen muutokset esiintyvät myös faktataulussa Autonomous Data Warehousessa.

Jos Essbase-runko ei enää ole synkronoitu Autonomous Data Warehousen faktataulun kanssa, yhdistetystä osiosta tulee virheellinen tai se ei enää toimi asianmukaisesti. Voit korjata sen poistamalla yhdistetyn osion, tekemällä muutoksia runkoon ja faktatauluun sekä luomalla yhdistetyn osion uudelleen.

Jos yhdistetystä osiosta tulee virheellinen, voit saada virheilmoituksen, jonka alussa on Essbase Error(1040235): Remote warning from federated partition.

Seuraavan tyyppiset Essbase-rungon muutokset tekevät yhdistetystä osiosta virheellisen:

  • Dimensioiden lisääminen, nimeäminen uudelleen tai poistaminen

  • Pivot-dimension tallennettujen jäsenten lisääminen, nimeäminen uudelleen tai poistaminen

  • Minkä tahansa jäsenen muuttaminen tallennetusta dynaamiseksi

Muuntyyppisille, edellä mainitsemattomilleEssbase-rungon muutoksille (esimerkiksi muun kuin pivot-dimension jäsenen lisääminen tai nimeäminen uudelleen) vastaava muutos tulee tehdä faktataulun tietoriville, johon muutos vaikuttaa. Muutoin yhdistetty osio ei välttämättä toimi asianmukaisesti.

Jos tiedät etukäteen, ettäEssbase-rungon metatiedot muuttuvat, on parempi poistaa yhdistetty osio ensin, tehdä rungon muutokset, päivittää faktataulu ja luoda sitten yhdistetty osio uudelleen.

Jos Essbase-metatiedot kuitenkin muuttuivat ja aiheuttivat yhdistetyn osion virheen, toimi seuraavasti:

  1. Poista yhdistetty osio sekä siihen liittyvä (tai muutoin käyttämätön) yhteys kohdassa Yhdistetyn osion poisto kuvatun mukaisesti.

    Poista Autonomous Data Warehouse -palvelun yhdistetyn osion sisältävästä käyttäjärakenteesta manuaalisesti kaikki Essbasen luomat taulut ja muut objektit, joita ei ole poistettu yhdistetyn osion mukana.

  2. varmista, että rungon muutokset on suoritettu loppuun Essbase-kuutiossa.

  3. Luo faktataulu uudelleen. Katso kohta Faktataulun luonti.

  4. Muodosta yhteys Autonomous Data Warehouseen uudelleen. Kyseessä voi olla yleinen yhteys (Lähteet-pääkuvakkeen alla Essbase-verkkokäyttöliittymässä), tai se voi olla nimenomaan sovellusta varten määritetyissä lähteissä. Noudata kohdassa Yhteyden luominen yhdistetyille osioille annettuja ohjeita.

  5. Luo yhdistetty osio uudelleen kohdassa Yhdistetyn osion luonti esitetyn mukaisesti.

Mitä tehdä, jos tietokantayhteyden tiedot ovat muuttuneet

Jos Autonomous Data Warehouse -yhteyden tiedot, joita Essbase käyttää yhdistetylle osiolle, ovat muuttuneet, yhdistetty osio on poistettava ja luotava uudelleen. Lisäksi liittyvät objektit ja metatietotaulut on puhdistettava rakenteesta.

Yhdistetty osio on poistettava ja luotava uudelleen, jos jokin seuraavista on tapahtunut yhdistetyn osion luonnin jälkeen:

  • Autonomous Data Warehouse -portti muuttuu

  • Kohteen yhteys nimi muuttuu

  • Kohde yhteys käyttää lompakkoa ja siirryt yhden palvelun nimestä toiseen (suorituskyky- tai samanaikaisuusmuutoksien takia)

  • Rungon päivitys muuttaa jäsenen määritystä faktatauluun, mistä seuraa yhdistetyn osion epäsynkronisuus. Katso lisätietoja kohdasta Metatietojen varotoimet yhdistetyn osion kuutioille.

Jos tiedät etukäteen, että yhteyden tiedot muuttuvat, on parempi poistaa yhdistetty osio ennen muutosta ja luoda se uudelleen muutoksen jälkeen. Jos yhteys kuitenkin muuttui ja aiheutti yhdistetyn osion virheen, suorita seuraavaksi esiteltävät toimenpiteet.

Yhdistetyn osion poisto

Poista yhdistetty osio sekä siihen liittyvä (tai muutoin käyttämätön) yhteys kohdassa Yhdistetyn osion poisto kuvatun mukaisesti.

Yhdistettyyn osioon liittyvien objektien ja metatietotaulujen puhdistus

Poista Autonomous Data Warehouse -palvelun yhdistetyn osion sisältävästä käyttäjärakenteesta kaikki Essbasen luomat taulut ja muut objektit, joita ei ole poistettu yhdistetyn osion mukana.

  1. SSH Essbase-palvelimen isäntäkoneelle OPC-käyttäjänä.

                      ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
                   
  2. Vaihda Oracle-käyttäjäksi (ja siirry sen kotihakemistoon).

                      sudo su - oracle
                   
  3. Siirry sovellushakemistoon.

                      cd /u01/data/essbase/app
                   
  4. Tunnista yhdistetyn osion objekteihin ja metatietoihin liittyvä yksilöivä prefiksi Essbase-sovellusta ja kuution nimeä käyttäen.

    1. Hae sovelluksen nimi (AppName). Nimi on kirjainkoosta riippuva, joten tallenna se täsmälleen oikeassa muodossa. Tässä esimerkissä AppName = Sample.

      ls
      Sample
    2. Laske merkkien lukumäärä (appx) sovelluksen nimessä.

      Esimerkki: appx = 6.

    3. Siirry kuutiohakemistoon ja hae kuution nimi (DbName). Nimi on kirjainkoosta riippuva, joten tallenna se täsmälleen oikeassa muodossa. Tässä esimerkissä DbName = Basic.

      cd /Sample
      ls
      Basic
    4. Laske merkkien lukumäärä (dby) kuution nimessä.

      Esimerkki: dby = 5.

    5. Muodosta prefiksi seuraavasti:

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

      Esimerkki:

      <Prefix> = ESSAV_6Sample_5Basic_
  5. Muodosta SQL Developeria tai jotakin muuta työkalua käyttäen yhteys Oracle Databaseen sen rakenteen käyttäjänä, johon yhdistetty osio on yhdistetty.

  6. Luo SELECT-lauseen avulla luettelo objekteista, jotka liittyvät yhdistetyn osion sisältävään sovellukseen. Kyseiset objektit puhdistetaan seuraavassa vaiheessa.

    SELECT-lauseen muoto:

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

    Esimerkki:

    SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
  7. Aja tallennettu PL/SQL-proseduuri, joka puhdistaa kaikki analyysinäkymät, paketit, hierarkiat, taulut ja muut liittyvät objektit, joilla on kyseinen prefiksi.

    Esimerkki

    Korvaa ESSAV_6Sample_5Basic_ omalla prefiksilläsi.

    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. Poista ja päivitä asianomaiset metatietoihin liittyvät taulut. Hae ensin arvot kohteille ESSBASE_INSTANCE_UNIQUE_ID ja OTL_ID.

    1. SSH Essbase-palvelimen isäntäkoneelle OPC-käyttäjänä.

                              ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
                           
    2. Vaihda Oracle-käyttäjäksi (ja siirry sen kotihakemistoon).

                              sudo su - oracle
                           
    3. Hae Essbase-taustaohjelman prosessia.

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

      Edellä olevan komennon pitäisi palauttaa prosessiluettelo, jonka alussa on oracle ja sen jälkeen kaksi prosessitunnusta. Esimerkki:

      oracle   10769  19563 ...

      Huomaa, että ensimmäisen prosessin tunnus on<PID>, sitä käytetään seuraavassa vaiheessa.

    4. Sieppaa kohteen ESSBASE_INSTANCE_UNIQUE_ID arvo strings-komennolla.

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

      Esimerkki:

                              strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
                           

      Edellä olevan komennon pitäisi palauttaa kohteen ESSBASE_INSTANCE_UNIQUE_ID arvo. Esimerkki:

      ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
    5. Muodosta SQL Developeria tai jotakin muuta työkalua käyttäen yhteys Oracle Databaseen sen rakenteen käyttäjänä, johon yhdistetty osio on yhdistetty.

    6. Hae kohteen OTL_ID arvo SELECT-lauseen avulla.

      SELECT-lauseen muoto:

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

      Esimerkki

      Korvaa ESSAV_6Sample_5Basic AppName-kohteella ja EWRnHFlQteCEzWUhF7P3TPKunf3bYs ESSBASE_INSTANCE_UNIQUE_ID-kohteella.

      SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
    7. Edellä olevan kyselyn pitäisi palauttaa kohteen OTL_ID arvo. Esimerkki:

      62
    8. Poista kohteeseen OTL_ID liittyvät metatietoja koskevat taulut ajamalla tallennettu PL/SQL-proseduuri.

      Esimerkki

      Korvaa 62 kohteella 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. Määritä ESSAV_OTL_MTD_VERSION-taulu ei-aktiiviseksi UPDATE-lauseen avulla.

      Esimerkki

      Korvaa ESSAV_6Sample_5Basic AppName-kohteella ja EWRnHFlQteCEzWUhF7P3TPKunf3bYs ESSBASE_INSTANCE_UNIQUE_ID-kohteella.

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

Yhteyden ja yhdistetyn osion uudelleenluonti

  1. Muodosta yhteys Autonomous Data Warehouseen uudelleen. Kyseessä voi olla yleinen yhteys (Lähteet-pääkuvakkeen alla Essbase-verkkokäyttöliittymässä), tai se voi olla nimenomaan sovellusta varten määritetyissä lähteissä. Noudata kohdassa yhteys annettuja ohjeita. Muista testata ja tallentaa yhteys.

  2. Luo yhdistetty osio uudelleen kohdassa Yhdistetyn osion luonti esitetyn mukaisesti.

  3. Jos näet edelleen esimerkiksi seuraavanlaisen yhteysvirheen Essbase-virhe(1350012): Yritys muodostaa yhteys OCIin epäonnistui, tarkista https://support.oracle.com/rs?type=doc&id=2925030.1.

Yhdistetyn osion sisältävän sovelluksen varmistus ja palautus

Yhdistettyjä osioita ei siirretä Essbase-sovellusten mukana. Kun valmistaudut siirtämään sovelluksen tai kuution toiseen palvelimeen tai toiseen Essbase-versioon, yhdistetty osio on poistettava ja luotava uudelleen uudessa ympäristössä.

Varmuuskopioi yhdistetyn osion sisältävä kuutio seuraavasti:

  1. Varmuuskopioi sovellus ilman tietoja mutta siten, että se sisältää kaiken muun tarvitsemasi (kuten konfiguraation ominaisuudet, suodattimet, muuttujat, laskentakomentosarjat ja muun sisällön). Voit tehdä tämän käyttämällä kohdetta LCM-vienti (tai työtä LCM-vienti Essbase-verkkokäyttöliittymässä).

  2. Varmuuskopioi faktataulu. Katso kohta Autonomous Database -tietokannan varmuuskopiointi ja palauttaminen.

  3. Poista yhdistetyn osion määritys kuutiosta kohdassa Yhdistetyn osion poisto esitettyjen vaiheiden mukaisesti.

Palauta yhdistetyn osion sisältävä kuutio varmuuskopiosta seuraavasti:

  1. Luo sovellus uudelleen käyttämällä kohdetta LcmImport: kuutiotiedostojen palautus (tai LCM-tuonti-työtä Essbase-verkkokäyttöliittymässä).

  2. Jos tarpeen, palauta faktataulu Autonomous Data Warehousessa.

  3. Yhteyden muodostaminen uudelleen to Autonomous Data Warehouse -palveluun. On suositeltavaa käyttää uutta yhteyden nimeä virheiden estämiseksi.

  4. Luo yhdistetty osio.