Use as diretrizes a seguir para fazer manutenção ou solucionar problemas de cubos do Essbase com partições federadas.
Este tópico presume que você criou uma partição federada e revisou as informações detalhadas nos tópicos anteriores.
Ao projetar um cubo de partição federada, siga estas diretrizes de teste se a criação levar muito tempo. Essas diretrizes podem ser úteis ao adotar uma abordagem de fases para solucionar problemas ou monitorar o desempenho.
Comece o projeto de partição federada em um ambiente de teste.
Comece com modelos de cubo que tenham as seguintes características:
não tem muitos níveis
não tem muitos membros ou atributos compartilhados
Ao criar uma partição federada, programe as operações off-line quando as consultas não forem permitidas na instância.
Desconecte gradualmente as sessões ativas de usuários do Essbase, utilizando MaxL alterar aplicativo disable commands
e/ou disable connects
(para impedir qualquer nova atividade do usuário), seguido de alterar sistema logout session
e/ou kill request
(caso precise encerrar qualquer sessão ativa que não precisa ser concluída). Observe que MaxL não pode encerrar solicitações que possam estar em execução no Autonomous Data Warehouse. Se você desativar comandos no aplicativo, lembre-se de reativá-los após a criação da partição federada.
/etc/httpd/conf.d/00_base.conf:ProxyTimeout 1260
/etc/httpd/conf.d/00_base.conf:Timeout 1260
olap.server.netRetryCount
como 9000.Nota:
Se você vir um erro "Falha ao salvar o outline" quando criar a partição federada, aguarde a conclusão das sessões e,, em seguida, atualize o browser. Se a partição federada tiver sido criada, valide-a no SQL Developer. Se for validada no SQL Developer, a partição federada estará pronta para uso. Se não for validada no SQL Developer, o modelo precisa ser corrigido e o ajuste de timeout é necessário, conforme descrito acima na etapa 3.Quando o Essbase tiver uma partição federada, tenha cuidado ao editar o outline do cubo. Se você adicionar ou renomear membros, certifique-se de que as alterações de metadados também sejam representadas na tabela de fatos do Autonomous Data Warehouse.
Se o outline do Essbase ficar fora de sincronização com a tabela de fatos no Autonomous Data Warehouse, a partição federada se tornará inválida ou não funcionará corretamente. Para corrigi-la, elimine a partição federada, faça as alterações no outline e na tabela de fatos e, em seguida, recrie a partição federada.
Se uma partição federada se tornar inválida, você poderá encontrar um erro que começa com Essbase Error(1040235): Remote warning from federated partition
.
Os seguintes tipos de alterações no outline do Essbase farão com que uma partição federada se torne inválida:
Adicionando, renomeando ou removendo dimensões
Adicionando, renomeando ou removendo membros armazenados na dimensão dinâmica
Alterando qualquer membro de armazenado para dinâmico
Para outros tipos de alterações no outline do Essbase não indicadas acima (por exemplo, adicionar ou renomear um membro de dimensão não dinâmica), faça a alteração correspondente na linha de dados afetada da tabela de fatos. Caso contrário, a partição federada poderá não funcionar corretamente.
Se você souber por antecedência que os metadados do outline do Essbase serão alterados, o melhor será remover a partição federada primeiro, fazer as alterações no outline, atualizar a tabela de fatos e, em seguida, recriar a partição federada.
No entanto, se os metadados do Essbase forem alterados e tornarem a partição federada inválida, execute a seguinte ação:
Remova a partição federada e a conexão associada a ela (se, de outra forma, não for utilizada), conforme descrito em Remover uma Partição Federada.
No esquema de usuário da partição federada no Autonomous Data Warehouse, exclua manualmente quaisquer tabelas geradas pelo Essbase e outros objetos que não foram removidos com a partição federada.
Certifique-se de que as alterações no outline sejam concluídas no cubo do Essbase.
Crie a tabela de fatos novamente. Consulte Criar a Tabela de Fatos.
Recrie a conexão com o Autonomous Data Warehouse. Essa pode ser uma conexão global (abaixo do ícone Origens principal na interface Web do Essbase) ou pode estar nas Origens definidas apenas para o aplicativo. Siga as instruções em Criar uma Conexão para Partições Federadas.
Recrie a partição federada, conforme descrito em Criar uma Partição Federada.
Se os detalhes da conexão do Autonomous Data Warehouse que o Essbase usa para uma partição federada tiverem sido alterados, elimine e recrie a partição federada. Remova objetos associados e tabelas de metadados do esquema do banco de dados.
Será necessário eliminar a partição federada e recriá-la se algum dos seguintes eventos ocorrerem após a criação da partição federada:
A porta do Autonomous Data Warehouse é alterada
O nome da conexão é alterado
A conexão usa uma wallet e você alterna de um nome de serviço para outro (para fazer alterações de desempenho ou simultaneidade)
Uma atualização de outline altera o mapeamento de membros para a tabela de fatos, fazendo com que a partição federada fique fora de sincronização. Consulte Precauções de Metadados para Cubos de Partições Federadas para obter detalhes.
Se você souber com antecedência que os detalhes de conexão vão mudar, o melhor será remover a partição federada antes da alteração e criá-la novamente depois. No entanto, se a conexão foi alterada e tornou a partição federada inválida, execute as etapas que se seguem.
Eliminar a Partição Federada
Remova a partição federada e a conexão associada a ela (se, de outra forma, não for utilizada), conforme descrito em Remover uma Partição Federada.
Remover Objetos Relacionados à Partição Federada e Tabelas de Metadados
No esquema de usuário partição federada no Autonomous Data Warehouse, elimine quaisquer tabelas geradas pelo Essbase e outros objetos que não foram removidos com a partição federada.
ssh para o host do Servidor do Essbase como o usuário opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Altere para o usuário oracle (e vá para o respectivo diretório home).
sudo su - oracle
Navegue até o diretório de aplicativos.
cd /u01/data/essbase/app
Usando o aplicativo Essbase e o nome do cubo, identifique o prefixo exclusivo associado aos seus objetos e metadados da partição federada.
Obtenha o nome do aplicativo (AppName). O nome faz distinção entre maiúsculas e minúsculas; portanto, capture o tipo de letra exato. Neste exemplo, AppName = Amostra.
ls
Sample
Conte o número de caracteres (appx) no nome do aplicativo.
Exemplo: appx = 6.
Navegue até o diretório do cubo e obtenha o nome do cubo (DbName). O nome faz distinção entre maiúsculas e minúsculas; portanto, capture o tipo de letra exato. Neste exemplo, DbName = Básico.
cd /Sample
ls
Basic
Conte o número de caracteres (dby) no nome do cubo.
Exemplo: dby = 5.
Crie o Prefixo como:
ESSAV_<appx><AppName>_<dby><DbName>_
Exemplo:
<Prefix> = ESSAV_6Sample_5Basic_
Usando o SQL Developer ou outra ferramenta, estabeleça conexão com o Oracle Database como o usuário do esquema ao qual a Partição Federada está conectada.
Execute uma instrução SELECT para criar uma lista de objetos associados ao seu aplicativo de partição federada. Esses são objetos que você vai remover na próxima etapa.
O formato da instrução SELECT é:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like '<Prefix>%';
Exemplo:
SELECT * FROM user_OBJECTS WHERE OBJECT_NAME like 'ESSAV_6Sample_5Basic_%';
Execute um procedure PL/SQL armazenado que remova todas as views analíticas, pacotes, hierarquias, tabelas e outros objetos associados ao Prefixo.
Exemplo
Substitua ESSAV_6Sample_5Basic_
pelo seu Prefixo.
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; /
Elimine e atualize tabelas associadas relativas a metadados. Primeiro, você precisa obter valores para ESSBASE_INSTANCE_UNIQUE_ID e OTL_ID.
ssh para o host do Servidor do Essbase como o usuário opc.
ssh -i MPOCI_KEY.pem opc@100.xxx.xxx.xxx
Altere para o usuário oracle (e vá para o respectivo diretório home).
sudo su - oracle
Procure o processo Agente do Essbase.
ps -ef | grep ESSS | grep -v "grep"
O comando acima deve retornar uma listagem de processos que começa com oracle
seguido de dois IDs de processo; por exemplo,
oracle 10769 19563 ...
Considere o primeiro ID do processo como sendo <PID>
, o qual você vai usar na próxima etapa.
Use o comando strings para capturar o valor de ESSBASE_INSTANCE_UNIQUE_ID.
strings /proc/<PID>/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
Exemplo:
strings /proc/10769/environ | grep ESSBASE_INSTANCE_UNIQUE_ID
O comando acima deve retornar o valor de ESSBASE_INSTANCE_UNIQUE_ID; por exemplo,
ESSBASE_INSTANCE_UNIQUE_ID=EWRnHFlQteCEzWUhF7P3TPKunf3bYs
Usando o SQL Developer ou outra ferramenta, estabeleça conexão com o Oracle Database como o usuário do esquema ao qual a Partição Federada está conectada.
Execute uma instrução SELECT para obter o valor de OTL_ID.
O formato da instrução SELECT é:
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='<AppName>' and "JAGENT_INSTANCE_ID"='<ESSBASE_INSTANCE_UNIQUE_ID>';
Exemplo
Substitua ESSAV_6Sample_5Basic
por seu AppName e substitua 'EWRnHFlQteCEzWUhF7P3TPKunf3bYs'
por seu ESSBASE_INSTANCE_UNIQUE_ID.
SELECT OTL_ID FROM ESSAV_OTL_MTD_VERSION where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs';
A consulta acima deve retornar o valor de OTL_ID; por exemplo,
62
Execute um procedure PL/SQL armazenado para eliminar tabelas relativas a metadados associadas a OTL_ID.
Exemplo
Substitua 62
por seu 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; /
Execute uma instrução UPDATE para definir a tabela ESSAV_OTL_MTD_VERSION para o status inativo.
Exemplo
Substitua ESSAV_6Sample_5Basic
por seu AppName e substitua EWRnHFlQteCEzWUhF7P3TPKunf3bYs
por seu ESSBASE_INSTANCE_UNIQUE_ID.
UPDATE "ESSAV_OTL_MTD_VERSION" SET "OTL_STATUS" = 'INACTIVE' where APPNAME ='ESSAV_6Sample_5Basic' and "JAGENT_INSTANCE_ID"='EWRnHFlQteCEzWUhF7P3TPKunf3bYs'; commit;
Recrie a Conexão e a Partição Federada
Recrie a conexão com o Autonomous Data Warehouse. Essa pode ser uma conexão global (abaixo do ícone Origens principal na interface Web do Essbase) ou pode estar nas Origens definidas apenas para o aplicativo. Siga as instruções em conexão. Certifique-se de Testar e Salvar a conexão.
Recrie a partição federada, conforme descrito em Criar uma Partição Federada.
Se você continuar a ver um erro de conexão, como Essbase Error(1350012): Attempt to connect to OCI failed
, verifique https://support.oracle.com/rs?type=doc&id=2925030.1.
As partições federadas não são migradas com os aplicativos do Essbase. Ao preparar-se para mover seu aplicativo e cubo para outro servidor ou migrar para outra versão do Essbase, exclua a partição federada e crie-a novamente no novo ambiente.
Para fazer backup do cubo da partição federada,
Faça backup do aplicativo, sem os dados, mas incluindo tudo o mais de que você possa precisar (como propriedades de configuração, filtros, variáveis, scripts de cálculo e outros artefatos). Para fazer isso, use Exportação do LCM (ou o job Exportar LCM na interface Web do Essbase).
Faça backup da tabela de fatos. Consulte Fazendo Backup e Restaurando o Banco de Dados Autônomo.
Exclua a definição de partição federada do cubo, seguindo as etapas em Remover uma Partição Federada.
Para restaurar o cubo da partição federada por meio do backup,
Para recriar o aplicativo, usando LcmImport: Restaurar Arquivos de Cubo (ou o job Importar LCM na interface Web do Essbase).
Se necessário, restaure a tabela de fatos no Autonomous Data Warehouse.
Recrie a conexão com o Autonomous Data Warehouse. Recomenda-se usar um novo nome de conexão para evitar encontrar erros.
Recrie a partição federada.