Datapatch falha devido ao OLAP, mas OLAP está válido no registro

Olá DBAs, a vida tá boa?

“… Nesta loooongaaa estradaaaa da vidaaaaa, aplico patches e não posso, PARAAAAAAARRRRRRRR…”

Hoje vou mostrar para voces um problema que enfrentei aplicando um patch em uma base 12.1.0.2, que inicialmente foi meio estranho pois o erro não batia com o diagnóstico, mas depois tudo fez sentido. E só pra fazer graça, o post de hoje terá algumas referencias musicais, vê se voce pega aí…srsrsrsrsrs

Vejamos a incrível história do Patch que falhou por causa do OLAP, item este que danadinho, estava válido no registro e sem demonstrações de que havia algo errado, mas, por trás daquele rosto lindo e sorriso encantador, havia um segredo, ele não tava nada bem, e por culpa dele, meu datapatch falhou no momento mais derradeiro: Na hora de aplicar.

Ao olhar a mensagem de erro acima, ela é super clara, não deixando dúvidas de onde está o problema, então vou checar, espalho as coisas sobre o chão de giz, já que há meros devaneios tolos a me torturar.

Bom, vemos aqui que meu patch apply tem erros, que apontam segundo os logs para o OLAP, mas que o OLAP está valido no registro. Então, o que será o que será, que faz meu patch lindo ir a falhar?

Ao checar os objetos inválidos no meu DB, vi uma quantidade considerável de objetos inválidos para o OLAPSYS

O primeiro impulso foi recompilá-los, mas não obtive sucesso.

Sendo assim, hora de iniciar as pesquisa, e encontrei no seguinte Oracle DOC

Database Patch Install Fails with: ORA-37002, ORA-12663, ORA-36961, ORA-36961: Oracle OLAP is not available (Doc ID 2867972.1)

Onde estavam descritos os erros que eu estou enfrentando em um dos cenários possíveis:

Ahhh… que beleza, aqui então eu já tinha uma luz. Quando te vi, enlouqueci, tive vontade te amar, já neste DOC eu pude ver, a solução que tinhas pra me dar.

A causa era simples, pois informava que apesar do OLAP ser opcional, de acordo com o time de patch da Oracle, se houver instalação de OLAP, esta precisa estar instalada e configurada corretamente, ou o datapatch falhará e retornará erros.

A primeira solução descrita no documento é usar o “chopt” pra ativar e validar o OLAP, mas, e se o OLAP já está válido e ativo? O que fazer? Bom… já que eu tinha uma option com falhas e não era possível utilizá-la, decidi reisntalar o OLAP seguindo o DOC

How to add Oracle OLAP to a 12c+ Database? (Doc ID 1936550.1)

Após o reinstall, olha quem apareceu?

O Analytics Workspace, que não estava listado como option anteriormente.

Sim, eu não tinha me atentado a isso antes, pois no calor da janela de manutenção, meus olhos e meus olhares com milhares de sensações, só viram que a API estava instalada corretamente e válida, o OAW não estava, mas o ver a option OLAP listada e válida, não me atentei a outros itens da mesma option. Provavelmente, em algum ponto do tempo, alguém foi designado a desinstalar o OLAP neste database, e desintalou somente o Analytics Workspace, deixando a API lá.

Após a instalação, o datapatch ocorreu lindão e sem problemas:

Após ter o patch instalado com sucesso, fiquei pensando que, se alguém havia tentado desinstalar o OLAP em algum momento (e falhou miseravelmente ao faze-lo), talvez o OLAP não devesse estar mais neste DB. Em conversa com o cliente, realmente verificamos que não deveria mais haver OLAP ali, fiz então a desinstalação da option, completa, APS e API.

É… gosto muito de te ver patchzinho, instalado sob o sol, funcionando e aplicado com sucesso. Sendo assim, terminamos aqui mais uma dica de como resolver esse probleminha ao utilizar o datapatch, num banco com OLAP aparentemente OK, mas que ao olhar mais no detalhe, descobrimos que não estava tão OK assim. No calor de uma janela de manutenção, podemos passar desapercebidos por itens que seriam simples em cenários de menor criticidade.

Como sempre, Fiquem a vontade para fazer quaisquer pontuações caso já tenham vivenciado algo do tipo.

Essa é a dica 0800 pra vocês desta vez.

“Saber das coisas vale ouro. Compartilhar esse conhecimento não tem preço.”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *