Nasledujúce pokyny sú určené pre údržbu alebo riešenie problémov kociek Essbase s federovanými partíciami.
V tejto téme sa predpokladá, že ste vytvorili federovanú partíciu a oboznámili sa s informáciami v predchádzajúcich témach.
Ak pri navrhovaní kocky federovanej partície trvá vytváranie príliš dlho, postupujte podľa týchto pokynov na testovanie. Tieto pokyny môžu byť užitočné na implementáciu fázovaného prístupu pri riešení problémov s výkonom alebo pri monitorovaní výkonu.
Spustite projekt federovanej partície v testovacom prostredí.
Začnite s modelmi kocky, ktoré majú nasledujúce vlastnosti:
nemajú veľa úrovní,
nemajú veľa zdieľaných členov ani atribútov.
Pri vytváraní federovanej partície naplánujte offline operácie, keď nie sú povolené dopyty voči inštancii.
Postupne odpojte aktívne používateľské relácie služby Essbase s použitím príkazov MaxL alter application disable commands
a/alebo disable connects
(aby sa zabránilo novej činnosti používateľa), za ktorými nasleduje príkaz alter system logout session
a/alebo kill request
(ak potrebujete ukončiť všetky aktívne relácie, ktoré nie je potrebné dokončiť). Upozorňujeme, že príkaz MaxL nemôže ukončiť žiadne požiadavky, ktoré môžu byť spustené v databáze Autonomous Data Warehouse. Ak deaktivujete príkazy v aplikácii, po vytvorení federovanej partície ich nezabudnite znova aktivovať.
/etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
/etc/httpd/conf.d/00_base.conf:Timeout 1260
olap.server.netRetryCount
na 9000.Poznámka:
Ak sa pri vytváraní federovanej partície zobrazí chyba „Nepodarilo sa uložiť štruktúru“, počkajte na dokončenie relácií a potom obnovte prehľadávač. Ak bola federovaná partícia vytvorená, overte ju v nástroji SQL Developer. Ak ju nástroj SQL Developer overí, federovaná partícia je pripravená na použitie. Ak ju nástroj SQL Developer neoverí, model je potrebné opraviť a je potrebné vyladiť časový limit, ako je opísané vyššie v kroku 3.Keď Essbase obsahuje federovanú partíciu, pri úprave štruktúry kocky postupujte opatrne. Ak pridáte alebo premenujete členy, uistite sa, že zmeny metadát sa prejavia aj v tabuľke faktov v databáze Autonomous Data Warehouse.
Ak štruktúra Essbase nebude synchronizovaná s tabuľkou faktov v databáze Autonomous Data Warehouse, federovaná partícia bude neplatná alebo nebude fungovať správne. Na odstránenie tohto problému bude potrebné zrušiť federovanú partíciu, vykonať zmeny v štruktúre a tabuľke faktov a potom znova vytvoriť federovanú partíciu.
Ak bude federovaná partícia neplatná, môže sa vyskytnúť chyba, ktorá sa začína textom Chyba Essbase (1040235): Vzdialené upozornenie z federovanej partície
.
Nasledujúce typy zmien štruktúry Essbase zapríčinia, že federovaná partícia bude neplatná:
Pridanie, premenovanie alebo odobratie dimenzií
Pridanie, premenovanie alebo odobratie uložených členov v dimenzii kontingenčnej tabuľky
Zmena ľubovoľného člena z uloženého na dynamický
V prípade iných typov zmien štruktúry Essbase, ktoré nie sú uvedené vyššie (napríklad pridanie alebo premenovanie člena inej dimenzie než dimenzie kontingenčnej tabuľky), by ste mali vykonať zodpovedajúcu zmenu v ovplyvnenom riadku dát v tabuľke faktov. V opačnom prípade nemusí federovaná partícia fungovať správne.
Ak vopred viete, že dôjde k zmene metadát štruktúry Essbase, je lepšie najprv odobrať federovanú partíciu, vykonať zmeny štruktúry, aktualizovať tabuľku faktov a potom federovanú partíciu znova vytvoriť.
Ak sa však metadáta Essbase zmenili a zapríčinili neplatnosť federovanej partície, vykonajte nasledujúcu akciu:
Odoberte federovanú partíciu a k nej priradené pripojenie (ak sa inak nepoužíva), ako je opísané v časti Odobratie federovanej partície.
Zo schémy používateľa federovanej partície v databáze Autonomous Data Warehouse manuálne odstráňte všetky tabuľky vygenerované službou Essbase a ostatné objekty, ktoré sa nepodarilo odobrať s federovanou partíciou.
Uistite sa, že zmeny štruktúry sú v kocke Essbase dokončené.
Znova vytvorte tabuľku faktov. Pozrite si časť Vytvorenie tabuľky faktov.
Znova vytvorte pripojenie k databáze Autonomous Data Warehouse. Môže ísť o globálne pripojenie (pod hlavnou ikonou Zdroje vo webovom rozhraní Essbase) alebo sa môže nachádzať v zdrojoch definovaných práve pre danú aplikáciu. Postupujte podľa pokynov v časti Vytvorenie pripojenia pre federované partície.
Znova vytvorte federovanú partíciu, ako je opísané v časti Vytvorenie federovanej partície.
Ak sa zmenili detaily pripojenia databázy Autonomous Data Warehouse, ktorú služba Essbase používa pre federovanú partíciu, bude potrebné túto federovanú partíciu zrušiť a znova vytvoriť, a tiež vyčistiť priradené objekty a tabuľky metadát z databázovej schémy.
Ak sa po vytvorení federovanej partície vyskytne ktorákoľvek z nasledujúcich udalostí, bude potrebné túto federovanú partíciu zrušiť a znova vytvoriť:
Zmení sa port databázy Autonomous Data Warehouse.
Zmení sa názov Pripojenie.
Pripojenie používa wallet a vy môžete prepnúť z jedného názvu služby na iný názov (s cieľom vykonať zmeny vo výkone alebo súbežnosti).
Aktualizácia štruktúry zmení mapovanie člena k tabuľke faktov, čo spôsobí, že federovaná partícia nebude synchronizovaná. Detaily nájdete v časti Preventívne opatrenia pre metadáta pre kocky federovanej partície.
Ak vopred viete, že dôjde k zmene detailov pripojenia, je lepšie odobrať federovanú partíciu ešte pred vykonaním danej zmeny a potom ju znova vytvoriť. Ak sa však pripojenie zmenilo a zapríčinilo neplatnosť federovanej partície, vykonajte nasledujúce kroky.
Zrušenie federovanej partície
Odoberte federovanú partíciu a k nej priradené pripojenie (ak sa inak nepoužíva), ako je opísané v časti Odobratie federovanej partície.
Vyčistenie súvisiacich objektov a tabuliek metadát federovanej partície
Zo schémy používateľa federovanej partície v databáze Autonomous Data Warehouse zrušte všetky tabuľky vygenerované službou Essbase a ostatné objekty, ktoré sa nepodarilo odobrať s federovanou partíciou.
Pomocou príkazu ssh sa pripojte k hostiteľovi servera Essbase ako používateľ opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Prepnite na používateľa oracle (a prejdite do jeho domovského adresára).
sudo su - oracle
Prejdite do adresára aplikácií.
cd /u01/data/essbase/app
Pomocou aplikácie Essbase a názvu kocky identifikujte jednoznačnú predponu spojenú s objektmi a metadátami federovanej partície.
Získajte názov aplikácie (AppName). V názve sa rozlišujú malé a veľké písmená, a preto ho zaznamenajte presne. V tomto príklade AppName = Sample.
ls
Sample
Spočítajte znaky (appx) v názve aplikácie.
Príklad: appx = 6.
Prejdite do adresára kocky a získajte názov kocky (DbName). V názve sa rozlišujú malé a veľké písmená, a preto ho zaznamenajte presne. V tomto príklade DbName = Basic.
cd /Sample
ls
Basic
Spočítajte znaky (dby) v názve kocky.
Príklad: dby = 5.
Zostavte predponu nasledujúcim spôsobom:
ESSAV_<appx><AppName>_<dby><DbName>_
Príklad:
<Prefix> = ESSAV_6Sample_5Basic_
Pomocou nástroja SQL Developer alebo iného nástroja sa pripojte k databáze Oracle ako používateľ schémy, ku ktorej je pripojená federovaná partícia.
Spustením príkazu SELECT vytvorte zoznam objektov spojených s vašou aplikáciou federovanej partície. Tieto objekty vyčistíte v ďalšom kroku.
Formát príkazu SELECT je:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like '<Prefix>%';
Príklad:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
Spustite uloženú procedúru PL/SQL, ktorá vyčistí všetky analytické zobrazenia, balíky, hierarchie, tabuľky a ďalšie objekty spojené s predponou.
Príklad
Reťazec ESSAV_6Sample_5Basic_
nahraďte predponou.
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; /
Zrušte a aktualizujte príslušné tabuľky súvisiace s metadátami. Najskôr je potrebné získať hodnoty pre ESSBASE_INSTANCE_UNIQUE_ID a OTL_ID.
Pomocou príkazu ssh sa pripojte k hostiteľovi servera Essbase ako používateľ opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Prepnite na používateľa oracle (a prejdite do jeho domovského adresára).
sudo su - oracle
Vyhľadajte proces agenta Essbase.
ps -ef | grep ESSS | grep -v "grep"
Vyššie uvedený príkaz by mal vrátiť záznam procesu začínajúci sa reťazcom oracle
, po ktorom nasledujú dve ID procesu, napríklad:
oracle 10769 19563 ...
Prvé ID procesu môžete považovať za identifikátor <PID>
, ktorý použijete v ďalšom kroku.
Pomocou príkazu strings zaznamenajte hodnotu ESSBASE_INSTANCE_UNIQUE_ID.
strings /proc/<PID>/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
Príklad:
strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
Vyššie uvedený príkaz by mal vrátiť hodnotu ESSBASE_INSTANCE_UNIQUE_ID, napríklad:
ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
Pomocou nástroja SQL Developer alebo iného nástroja sa pripojte k databáze Oracle ako používateľ schémy, ku ktorej je pripojená federovaná partícia.
Pomocou príkazu SELECT získajte hodnotu OTL_ID.
Formát príkazu SELECT je:
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='<AppName>' and "JAGENT_INSTANCE_ID"='<ESSBASE_INSTANCE_UNIQUE_ID>';
Príklad
Reťazec ESSAV_6Sample_5Basic
nahraďte názvom aplikácie a reťazec 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs'
identifikátorom ESSBASE_INSTANCE_UNIQUE_ID.
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
Vyššie uvedený dopyt by mal vrátiť hodnotu OTL_ID, napríklad:
62
Spustením uloženej procedúry PL/SQL zrušte tabuľky súvisiace s metadátami, ktoré sú spojené s identifikátorom OTL_ID.
Príklad
Hodnotu 62
nahraďte identifikátorom 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; /
Spustením príkazu UPDATE nastavte tabuľku ESSAV_OTL_MTD_VERSION do neaktívneho stavu.
Príklad
Reťazec ESSAV_6Sample_5Basic
nahraďte názvom aplikácie a reťazec EWRnHFlQteCEzWUhF7P3TPKunf3bYs
identifikátorom ESSBASE_INSTANCE_UNIQUE_ID.
UPDATE "ESSAV_OTL_MTD_VERSION" SET "OTL_STATUS" = 'INACTIVE' where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs'; commit;
Opätovné vytvorenie pripojenia a federovanej partície
Znova vytvorte pripojenie k databáze Autonomous Data Warehouse. Môže ísť o globálne pripojenie (pod hlavnou ikonou Zdroje vo webovom rozhraní Essbase) alebo sa môže nachádzať v zdrojoch definovaných práve pre danú aplikáciu. Postupujte podľa pokynov týkajúcich sa Pripojenie. Dbajte na to, aby ste pripojenie otestovali a uložili.
Znova vytvorte federovanú partíciu, ako je opísané v časti Vytvorenie federovanej partície.
Ak sa bude naďalej zobrazovať chyba pripojenia, ako napríklad Chyba Essbase (1350012): Pokus o pripojenie k OCI zlyhal
, pozrite si stránku https://support.oracle.com/rs?type=doc&id=2925030.1.
Federované partície sa nemigrujú s aplikáciami Essbase. Keď pripravujete presun aplikácie a kocky na iný server alebo migráciu na inú verziu Essbase, je potrebné federovanú partíciu odstrániť a znova ju vytvoriť v novom prostredí.
Ako zálohovať kocku federovanej partície:
Zálohujte aplikáciu bez dát, ale vrátane všetkého ostatného, čo môžete potrebovať (napríklad vlastnosti konfigurácie, filtre, premenné, skripty výpočtov a iné artefakty). Na tento účel použite export LCM (alebo úlohu Export LCM vo webovom rozhraní Essbase).
Zálohujte tabuľku faktov. Pozrite si časť Zálohovanie a obnovenie autonómnej databázy.
Odstráňte definíciu federovanej partície z kocky, pričom postupujte podľa krokov v časti Odobratie federovanej partície.
Ako obnoviť kocku federovanej partície zo zálohy:
Znova vytvorte aplikáciu pomocou postupu v časti LcmImport: Obnovenie súborov kocky (alebo úlohy Import LCM vo webovom rozhraní Essbase).
V prípade potreby obnovte tabuľku faktov v databáze Autonomous Data Warehouse.
Znova vytvorte pripojenie k databáze Autonomous Data Warehouse. Odporúča sa použiť nový názov pripojenia, aby ste zabránili výskytu chýb.
Znova vytvorte federovanú partíciu.