Utilizzare le linee guida riportate di seguito per gestire o risolvere i problemi relativi ai cubi Essbase con partizioni federate.
In questo argomento si suppone che l'utente abbia creato una partizione federata e rivisto le informazioni dettagliate negli argomenti precedenti.
Quando si progetta un cubo di partizione federata, seguire le linee guida per il test riportate di seguito se la creazione richiede troppo tempo. Queste linee guida possono essere utili per adottare un approccio graduale alla risoluzione dei problemi o al monitoraggio delle prestazioni.
Avviare il progetto della partizione federata in un ambiente di test.
Iniziare con i modelli di cubo che hanno le caratteristiche seguenti:
non hanno molti livelli
non hanno molti membri o attributi condivisi
Quando si crea una partizione federata, è preferibile pianificare le operazioni non in linea quando le query sull'istanza in corso non sono consentite.
Disconnettere gradualmente le sessioni utente Essbase attive, utilizzando l'istruzione MaxL Alter Application con disable commands
e/o disable connects
(per impedire qualsiasi nuova attività dell'utente), seguita dall'istruzione Alter System con logout session
e/o kill request
(se è necessario terminare le sessioni attive che non devono essere completate). Tenere presente che MaxL non può terminare le richieste in esecuzione in Autonomous Data Warehouse. Se si disabilitano i comandi nell'applicazione, ricordarsi di riabilitarli dopo aver creato la partizione federata.
/etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
/etc/httpd/conf.d/00_base.conf:Timeout 1260
olap.server.netRetryCount
su 9000.Nota:
Se viene visualizzato il messaggio di errore "Impossibile salvare il profilo" durante la creazione della partizione federata, attendere il completamento delle sessioni, quindi aggiornare il browser. Se è stata creata, convalidare la partizione federata in SQL Developer. Una volta convalidata in SQL Developer, la partizione federata è pronta per l'uso. Se la convalida in SQL Developer non riesce, sarà necessario correggere il modello e procedere al tuning del timeout come descritto nel passo 3.Quando Essbase dispone di una partizione federata, è necessario prestare attenzione quando si modifica il profilo del cubo. Se si aggiungono o si rinominano membri, accertarsi che le modifiche ai metadati siano rappresentate anche nella tabella fact in Autonomous Data Warehouse.
Se il profilo Essbase non è più sincronizzato con la tabella fact in Autonomous Data Warehouse, la partizione federata non sarà più valida o non funzionerà correttamente. Per risolvere il problema, è necessario eliminare la partizione federata, apportare modifiche al profilo e alla tabella fact, quindi ricreare la partizione federata.
Se una partizione federata non è più valida, è possibile che venga visualizzato un errore che inizia con Errore Essbase (1040235): Avvertenza remota proveniente dalla partizione federata
.
I tipi di modifiche al profilo Essbase riportati di seguito causeranno l'invalidità della partizione federata:
aggiunta, ridenominazione o rimozione di dimensioni;
aggiunta, ridenominazione o rimozione di membri memorizzati nella dimensione pivot;
modifica di qualsiasi membro da memorizzato a dinamico.
Per altri tipi di modifiche al profilo Essbase non indicate in precedenza, ad esempio l'aggiunta o la ridenominazione di un membro di dimensione non pivot, è necessario apportare la modifica corrispondente alla riga di dati interessata nella tabella fact. In caso contrario, la partizione federata potrebbe non funzionare correttamente.
Se si sa in anticipo che i metadati del profilo Essbase verranno modificati, è preferibile rimuovere prima la partizione federata, apportare le modifiche al profilo, aggiornare la tabella fact, quindi ricreare la partizione federata.
Tuttavia, se i metadati Essbase sono stati modificati rendendo la partizione federata non più valida, attenersi alla procedura riportata di seguito.
Rimuovere la partizione federata e la connessione ad essa associata (se non utilizzata), come descritto in Rimuovere una partizione federata.
Dallo schema utente della partizione federata in Autonomous Data Warehouse, eliminare manualmente tutte le tabelle e gli altri oggetti generati da Essbase che non è stato possibile rimuovere con la partizione federata.
Assicurarsi che le modifiche apportate al profilo siano state completate nel cubo Essbase.
Creare di nuovo la tabella fact. Vedere Creare la tabella fact.
Ricreare la connessione a Autonomous Data Warehouse. Può trattarsi di una connessione globale (sotto l'icona principale Origini nell'interfaccia Web di Essbase) oppure può trovarsi nelle origini definite solo per l'applicazione. Seguire le istruzioni riportate in Creare una connessione per le partizioni federate.
Ricreare la partizione federata, come descritto in Creare una partizione federata.
Se i dettagli di connessione a Autonomous Data Warehouse utilizzati da Essbase per una partizione federata sono stati modificati, sarà necessario eliminare e ricreare la partizione federata ed eseguire il cleanup degli oggetti e delle tabelle di metadati associati nello schema di database.
Se successivamente alla creazione della partizione federata si verifica uno degli eventi riportati di seguito, sarà necessario eliminare e ricreare la partizione federata.
La porta di Autonomous Data Warehouse viene modificata
Il nome della connessione viene modificato
La connessione utilizza un wallet e si passa da un nome di servizio a un altro (per apportare modifiche alle prestazioni o all'accesso concorrente)
Un aggiornamento del profilo modifica il mapping dei membri nella tabella fact, rendendo la partizione federata non sincronizzata. Per informazioni dettagliate, vedere Precauzioni sui metadati per i cubi di partizione federata.
Se si sa in anticipo che i dettagli della connessione verranno modificati, è preferibile rimuovere la partizione federata prima che si verifichi la modifica e crearla di nuovo in seguito. Tuttavia, se la connessione è stata modificata rendendo la partizione federata non più valida, attenersi alla procedura riportata di seguito.
Eliminare la partizione federata
Rimuovere la partizione federata e la connessione ad essa associata (se non utilizzata), come descritto in Rimuovere una partizione federata.
Eseguire il cleanup degli oggetti e delle tabelle di metadati correlati alla partizione federata
Dallo schema utente della partizione federata in Autonomous Data Warehouse, eliminare tutte le tabelle e gli altri oggetti generati da Essbase che non è stato possibile rimuovere con la partizione federata.
Collegarsi tramite SSH all'host del server Essbase come utente opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Passare all'utente oracle e andare alla relativa directory home.
sudo su - oracle
Andare alla directory delle applicazioni.
cd /u01/data/essbase/app
Utilizzando il nome dell'applicazione e del cubo Essbase, identificare il prefisso univoco associato agli oggetti e ai metadati della partizione federata.
Recuperare il nome dell'applicazione (AppName). Il nome fa distinzione tra maiuscole e minuscole, pertanto acquisire la forma esatta. In questo esempio, AppName = Sample.
ls
Sample
Contare il numero di caratteri (appx) nel nome dell'applicazione.
Esempio: appx = 6.
Passare alla directory del cubo e recuperare il nome del cubo (DbName). Il nome fa distinzione tra maiuscole e minuscole, pertanto acquisire la forma esatta. In questo esempio, DbName = Basic.
cd /Sample
ls
Basic
Contare il numero di caratteri (dby) nel nome del cubo.
Esempio: dby = 5.
Creare Prefix come:
ESSAV_<appx><AppName>_<dby><DbName>_
Esempio:
<Prefix> = ESSAV_6Sample_5Basic_
Utilizzando SQL Developer o un altro strumento, connettersi a Oracle Database come utente dello schema a cui è connessa la partizione federata.
Eseguire un'istruzione SELECT per creare una lista di oggetti associati all'applicazione della partizione federata. Si tratta degli oggetti di cui verrà eseguito il cleanup nel passo successivo.
Formato dell'istruzione SELECT:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like '<Prefix>%';
Esempio:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
Eseguire una procedura PL/SQL memorizzata per effettuare il cleanup di tutte le viste analitiche, i package, le gerarchie, le tabelle e gli altri oggetti associati a Prefix.
Esempio
Sostituire ESSAV_6Sample_5Basic_
con 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; /
Eliminare e aggiornare le tabelle associate relative ai metadati. Prima, è necessario recuperare i valori per ESSBASE_INSTANCE_UNIQUE_ID e OTL_ID.
Collegarsi tramite SSH all'host del server Essbase come utente opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Passare all'utente oracle e andare alla relativa directory home.
sudo su - oracle
Cercare il processo dell'agente Essbase.
ps -ef | grep ESSS | grep -v "grep"
Il comando precedente dovrebbe restituire una lista di processi che iniziano con oracle
seguito da due ID processo, ad esempio:
oracle 10769 19563 ...
Prendere in considerazione il primo ID processo che verrà utilizzato come <PID>
nel passo successivo.
Utilizzare il comando strings per acquisire il valore di ESSBASE_INSTANCE_UNIQUE_ID.
strings /proc/<PID>/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
Esempio:
strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
Il comando precedente dovrebbe restituire il valore di ESSBASE_INSTANCE_UNIQUE_ID, ad esempio:
ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
Utilizzando SQL Developer o un altro strumento, connettersi a Oracle Database come utente dello schema a cui è connessa la partizione federata.
Eseguire un'istruzione SELECT per recuperare il valore di OTL_ID.
Formato dell'istruzione SELECT:
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='<AppName>' and "JAGENT_INSTANCE_ID"='<ESSBASE_INSTANCE_UNIQUE_ID>';
Esempio
Sostituire ESSAV_6Sample_5Basic
con AppName e sostituire 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs'
con ESSBASE_INSTANCE_UNIQUE_ID.
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
La query precedente dovrebbe restituire il valore di OTL_ID, ad esempio:
62
Eseguire una procedura PL/SQL memorizzata per eliminare le tabelle correlate ai metadati associate a OTL_ID.
Esempio
Sostituire 62
con 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; /
Eseguire un'istruzione UPDATE per impostare la tabella ESSAV_OTL_MTD_VERSION sullo stato inattivo.
Esempio
Sostituire ESSAV_6Sample_5Basic
con AppName e sostituire EWRnHFlQteCEzWUhF7P3TPKunf3bYs
con ESSBASE_INSTANCE_UNIQUE_ID.
UPDATE "ESSAV_OTL_MTD_VERSION" SET "OTL_STATUS" = 'INACTIVE' where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs'; commit;
Ricreare la connessione e la partizione federata
Ricreare la connessione a Autonomous Data Warehouse. Può trattarsi di una connessione globale (sotto l'icona principale Origini nell'interfaccia Web di Essbase) oppure può trovarsi nelle origini definite solo per l'applicazione. Seguire le istruzioni riportate in connessione. Accertarsi di eseguire il test della connessione e di salvarla.
Ricreare la partizione federata, come descritto in Creare una partizione federata.
Se continua a essere visualizzato un errore di connessione come, ad esempio, Errore Essbase (1350012): Tentativo di connessione a OCI non riuscito
, controllare https://support.oracle.com/rs?type=doc&id=2925030.1.
Le partizioni federate non vengono migrate con le applicazioni Essbase. Quando si prepara lo spostamento dell'applicazione e del cubo in un altro server o la migrazione a un'altra versione Essbase, è necessario eliminare la partizione federata e ricrearla nel nuovo ambiente.
Per eseguire il backup di un cubo di partizione federata, effettuare le operazioni riportate di seguito.
Eseguire il backup dell'applicazione, senza i dati, ma includendo qualsiasi altro elemento che potrebbe essere necessario (ad esempio, proprietà di configurazione, filtri, variabili, script di calcolo e altri artifact). Per eseguire questa operazione, utilizzare l'esportazione LCM oppure il job Esporta LCM nell'interfaccia Web di Essbase.
Eseguire il backup della tabella fact. Vedere Backup e ripristino di Autonomous Database.
Eliminare la definizione di partizione federata dal cubo, attenendosi alla procedura descritta in Rimuovere una partizione federata.
Per ripristinare il cubo di partizione federata dal backup, effettuare le operazioni riportate di seguito.
Ricreare l'applicazione utilizzando l'LcmImport: ripristinare i file di cubo oppure il job Importa LCM nell'interfaccia Web di Essbase.
Se necessario, ripristinare la tabella fact in Autonomous Data Warehouse.
Ricreare la connessione a Autonomous Data Warehouse. Si consiglia di utilizzare un nuovo nome di connessione per evitare che si verifichino errori.
Ricreare la partizione federata.