Hanteer de volgende richtlijnen voor het onderhouden van Essbase kubussen met federatieve partities en het oplossen van problemen hiermee.
In dit onderwerp wordt ervan uitgegaan dat u een federatieve partitie hebt gemaakt en de informatie in de voorgaande onderwerpen hebt gelezen.
Volg wanneer u een federatieve partitiekubus ontwerpt deze testrichtlijnen als het te lang duurt om deze te maken. Deze richtlijnen kunnen nuttig zijn wanneer er sprake is van een gefaseerde aanpak bij het oplossen van problemen of het monitoren van de prestaties.
Begin het federatieve partitieproject in een testomgeving.
Begin met kubusmodellen die de volgende kenmerken hebben:
niet veel niveaus
niet veel gedeelde onderdelen of kenmerken
Als u een federatieve partitie maakt, plant u offlinebewerkingen in wanneer query's niet zijn toegestaan voor de instance.
Koppel actieve Essbase gebruikerssessies geleidelijk los met behulp van MaxL applicatie wijzigen deactiveringscommando's
en/of deactiveringsverbindingen
(om nieuwe gebruikersactiviteit te voorkomen), gevolgd door systeem wijzigen uitloggen van sessie
en/of aanvraag beëindigen
(als u actieve sessies moet beëindigen die niet te hoeven worden voltooid). Houd er rekening mee dat MaxL geen aanvragen kan beëindigen die mogelijk worden uitgevoerd in Autonomous Data Warehouse. Als u in de toepassing opdrachten uitschakelt, vergeet dan niet om de opdrachten opnieuw in te schakelen nadat u de federatieve partitie hebt gemaakt.
/etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
/etc/httpd/conf.d/00_base.conf:Timeout 1260
olap.server.netRetryCount
in op 9000.Opmerking:
Als u de foutmelding "Opslaan van structuur is mislukt" ziet bij het maken van de federatieve partitie, wacht u totdat de sessie is voltooid en vernieuwt u dan de browser. Als de federatieve partitie is gemaakt, valideert u deze in SQL Developer. Als de federatieve partitie is gevalideerd in SQL Developer, is deze klaar voor gebruik. Als de federatieve partitie niet wordt gevalideerd in SQL Developer, moeten problemen met het model worden opgelost en is aanpassing van de timeout nodig, zoals hierboven beschreven in stap 3.Als Essbase een federatieve partitie heeft, moet u zorgvuldig te werk gaan bij het bewerken van de kubusstructuur. Als u onderdelen toevoegt of hernoemt, moeten deze wijzigingen van de metagegevens ook worden doorgevoerd in de feitentabel in Autonomous Data Warehouse.
Als de Essbase structuur niet meer gesynchroniseerd is met de feitentabel in Autonomous Data Warehouse, is de federatieve partitie niet meer geldig of werkt deze niet meer goed. U kunt dit probleem oplossen door de federatieve partitie te verwijderen, de structuur en de feitentabel aan te passen en de federatieve partitie vervolgens opnieuw te maken.
Als een federatieve partitie ongeldig wordt, kan er een foutmelding worden weergegeven die begint met Essbase fout(1040235): externe waarschuwing van federatieve partitie
.
De volgende soorten wijzigingen aan de Essbase structuur hebben tot gevolg dat een federatieve partitie ongeldig wordt:
Dimensies toevoegen, hernoemen of verwijderen
Opgeslagen onderdelen in de draaitabeldimensie toevoegen, hernoemen of verwijderen
Een onderdeel wijzigen van opgeslagen in dynamisch
Voor soorten wijzigingen aan de Essbase structuur anders dan hierboven aangegeven (zoals het toevoegen of hernoemen van een onderdeel van een andere dimensie dan de draaitabeldimensie), moet u de overeenkomende wijziging doorvoeren in de betreffende gegevensrij in de feitentabel. Als u dat niet doet, werkt de federatieve partitie mogelijk niet goed.
Als u vooraf weet dat de metagegevens van de Essbase structuur gaan veranderen, is het beter om de federatieve partitie eerst te verwijderen, de structuur aan te passen, de feitentabel bij te werken en ten slotte de federatieve partitie opnieuw te maken.
Als de metagegevens van Essbase echter zijn gewijzigd en de federatieve partitie daardoor ongeldig is geworden, onderneemt u de volgende actie:
Verwijder de federatieve partitie en de bijbehorende verbinding (indien verder niet in gebruik). Zie Een federatieve partitie verwijderen voor meer informatie.
Verwijder handmatig van het gebruikersschema van de federatieve partitie in Autonomous Data Warehouse door Essbase gegenereerde tabellen en andere objecten die niet met de federatieve partitie zijn verwijderd.
Zorg ervoor dat de structuurwijzigingen zijn voltooid in de Essbase kubus.
Maak de feitentabel opnieuw. Zie voor meer informatie: De feitentabel maken.
Maak de verbinding naar Autonomous Data Warehouse opnieuw. Dit kan een algemene verbinding zijn (onder het hoofdpictogram 'Bronnen' in de Essbase webinterface) of het kan een verbinding zijn in de bronnen die uitsluitend voor de applicatie is bedoeld. Volg de instructies in Een verbinding maken voor federatieve partities.
Maak de federatieve partitie opnieuw, zoals beschreven in Een federatieve partitie maken.
Als de verbindingsdetails van Autonomous Data Warehouse die Essbase gebruikt voor een federatieve partitie zijn gewijzigd, moet u de federatieve partitie verwijderen en opnieuw maken. Daarnaast moet u bijbehorende objecten en metagegevenstabellen uit het databaseschema opschonen.
U moet de federatieve partitie verwijderen en opnieuw maken als een van de volgende events optreedt nadat de federatieve partitie is gemaakt:
De poort van Autonomous Data Warehouse wordt gewijzigd.
De naam van verbinding wordt gewijzigd.
verbinding gebruikt een wallet en u schakelt van de ene service naar de andere (om prestatie- of concurrencywijzigingen door te voeren).
Door het bijwerken van de structuur wordt de onderdeeltoewijzing aan de feitentabel gewijzigd, waardoor de federatieve partitie niet meer gesynchroniseerd is. Zie Voorzorgsmaatregelen voor metagegevens voor federatieve partitiekubussen voor meer informatie.
Als u vooraf weet dat de verbindingsdetails worden gewijzigd, is het beter om de federatieve partitie vóór de wijziging te verwijderen en daarna opnieuw te maken. Als de verbinding echter is gewijzigd en de federatieve partitie daardoor ongeldig is geworden, onderneemt u de volgende stappen.
De federatieve partitie verwijderen
Verwijder de federatieve partitie en de bijbehorende verbinding (indien verder niet in gebruik). Zie Een federatieve partitie verwijderen voor meer informatie.
Aan de federatieve partitie gerelateerde objecten en metagegevenstabellen opschonen
Verwijder van het gebruikersschema van de federatieve partitie in Autonomous Data Warehouse door Essbase gegenereerde tabellen en andere objecten die niet met de federatieve partitie zijn verwijderd.
Kopieer via ssh naar de Essbase serverhost als de opc-gebruiker.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Wijzig naar Oracle gebruiker (en ga naar de basisdirectory).
sudo su - oracle
Navigeer naar de applicatiedirectory.
cd /u01/data/essbase/app
Identificeer met behulp van de Essbase applicatie en kubusnaam het unieke voorvoegsel waaraan uw federatieve partitie-objecten en metagegevens zijn gekoppeld.
Haal de applicatienaam (AppName) op. De naam is hoofdlettergevoelig, dus gebruik de juiste vorm. In dit voorbeeld:AppName = Sample.
ls
Sample
Tel het aantal tekens (appx) in de applicatienaam.
Voorbeeld: appx = 6.
Navigeer naar de kubusdirectory en gebruik de kubusnaam (DbName). De naam is hoofdlettergevoelig, dus gebruik de juiste vorm. In dit voorbeeld: DbName = Basic.
cd /Sample
ls
Basic
Tel het aantal tekens (dby) in de kubusnaam.
Voorbeeld: dby = 5.
Bouw het voorvoegsel als volgt:
ESSAV_<appx><AppName>_<dby><DbName>_
Voorbeeld:
<Prefix> = ESSAV_6Sample_5Basic_
Maak met behulp van SQL Developer of een ander hulpprogramma verbinding met Oracle Database als gebruiker van het schema waarmee de federatieve partitie is verbonden.
Voer een SELECT-statement uit om een lijst objecten te maken die zijn gekoppeld aan uw federatieve partitie-applicatie. Dit zijn de objecten die u in de volgende stap opschoont.
De opmaak van het SELECT-statement is:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like '<Prefix>%';
Voorbeeld:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
Voer een opgeslagen PL/SQL-procedure uit die alle analytische weergaven, pakketten, hiërarchieën, tabellen en andere objecten opschoont die aan het voorvoegsel zijn gekoppeld.
Voorbeeld
Vervang ESSAV_6Sample_5Basic_
door uw voorvoegsel.
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; /
Verwijder gekoppelde metagegevens-gerelateerde tabellen en werk ze bij. U moet eerst waarden verkrijgen voor ESSBASE_INSTANCE_UNIQUE_ID en OTL_ID.
Kopieer via ssh naar de Essbase serverhost als de opc-gebruiker.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Wijzig naar Oracle gebruiker (en ga naar de basisdirectory).
sudo su - oracle
Zoek naar het proces Essbase Agent.
ps -ef | grep ESSS | grep -v "grep"
Met de opdracht hierboven verkrijgt u een procesvermelding die begint met oracle
en wordt gevolgd door twee proces-ID's; bijvoorbeeld,
oracle 10769 19563 ...
Stelt u zich voor dat het eerste proces-ID <PID>
is, die u in de volgende stap gebruikt.
Gebruik de strings-opdracht om de waarde van ESSBASE_INSTANCE_UNIQUE_ID vast te leggen.
strings /proc/<PID>/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
Voorbeeld:
strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
Met de bovenstaande opdracht verkrijgt u de waarde van ESSBASE_INSTANCE_UNIQUE_ID; bijvoorbeeld,
ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
Maak met behulp van SQL Developer of een ander hulpprogramma verbinding met Oracle Database als gebruiker van het schema waarmee de federatieve partitie is verbonden.
Voer een SELECT-statement uit om de waarde van OTL_ID te verkrijgen.
De opmaak van het SELECT-statement is:
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='<AppName>' and "JAGENT_INSTANCE_ID"='<ESSBASE_INSTANCE_UNIQUE_ID>';
Voorbeeld
Vervang ESSAV_6Sample_5Basic
door uw AppName en vervang 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs'
door uw ESSBASE_INSTANCE_UNIQUE_ID.
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
Met de bovenstaande query verkrijgt u de waarde van OTL_ID; bijvoorbeeld,
62
Voer een opgeslagen PL/SQL-procedure uit om metagegevens-gerelateerde tabellen die aan OTL_ID zijn gekoppeld, te verwijderen.
Voorbeeld
Vervang 62
met uw 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; /
Voer een UPDATE-statement uit om de tabel ESSAV_OTL_MTD_VERSION een inactieve status te geven.
Voorbeeld
Vervang ESSAV_6Sample_5Basic
door uw AppName en vervang EWRnHFlQteCEzWUhF7P3TPKunf3bYs
door uw ESSBASE_INSTANCE_UNIQUE_ID.
UPDATE "ESSAV_OTL_MTD_VERSION" SET "OTL_STATUS" = 'INACTIVE' where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs'; commit;
De verbinding en federatieve partitie opnieuw maken
Maak de verbinding naar Autonomous Data Warehouse opnieuw. Dit kan een algemene verbinding zijn (onder het hoofdpictogram 'Bronnen' in de Essbase webinterface) of het kan een verbinding zijn in de bronnen die uitsluitend voor de applicatie is bedoeld. Volg de instructies in verbinding. Vergeet niet om de verbinding te testen en op te slaan.
Maak de federatieve partitie opnieuw, zoals beschreven in Een federatieve partitie maken.
Als er een verbindingsfout blijft optreden zoals Essbase fout(1350012): Poging om verbinding te maken met OCI is mislukt.
, controleert u https://support.oracle.com/rs?type=doc&id=2925030.1.
Federatieve partities worden niet gemigreerd met Essbase applicaties. Als u voorbereidingen treft om uw applicatie en kubus te verplaatsen naar een andere server of te migreren naar een andere Essbase versie, moet u de federatieve partitie verwijderen en vervolgens opnieuw maken in de nieuwe omgeving.
Als u een back-up van de federatieve partitiekubus wilt maken:
Maak een backup van de applicatie zonder de gegevens, maar verder met alles wat u nodig hebt (zoals configuratie-eigenschappen, filters, variabelen, berekeningsscripts en andere artefacten). Dit kunt u doen met LCM exporteren (of de taak LCM exporteren in de Essbase webinterface).
Maak een back-up van de feitentabel. Zie voor meer informatie: Een back-up maken van een autonome database en deze herstellen.
Verwijder de definitie van de federatieve partitie uit de kubus. Volg hiervoor de stappen in Een federatieve partitie verwijderen.
Als u uw federatieve partitiekubus wilt herstellen van de back-up:
Maak de applicatie opnieuw. Dit kunt u doen met LcmImport: kubusbestanden herstellen (of de taak LCM importeren in de Essbase webinterface).
Herstel indien nodig de feitentabel in Autonomous Data Warehouse.
De verbinding opnieuw makenmet Autonomous Data Warehouse. Het wordt aangeraden een nieuwe verbindingsnaam te gebruiken om zo fouten te voorkomen.
Opnieuw maken: de federatieve partitie.