segunda-feira, 21 de maio de 2018

Utilizando o WGET para fazer download de arquivos no eDelivery

Olá,

Hoje perdi algum tempo para acertar a sintaxe do WGET para baixar arquivos do Oracle eDelivery para um servidor.

Por isso resolvi escrever um post rápido, pois pode ajudar alguém.

Existe a opção de realizar o download do script wget.sh diretamente no eDelivery, onde será solicitado seu usuário e senha para fazer download da media:



Ou você pode utilizar a opção via cookies.


A primeira tentativa é para demonstrar que como o eDevilery exige autenticação, não é possível baixar os arquivos diretamente:


Para exportar os cookies após a autenticação no site, utilizei essa extensão do Chrome:



Após isso efetuei o login o eDelivery:


Fiz a busca da media que eu precisava e exportei os cookeis usando a extensão instalada anteriormente:


É gerado um arquivo cookies.txt que deve ser transferido para o servidor onde você fará o download da media utilizando o wget:



Sintaxe correta para o comando WGET:

wget -x --load-cookies cookies.txt "https://edelivery.oracle.com/osdc/softwareDownload?fileName=V840012-01.zip&token=QnN4Z1pUUTRhWFRIbEUwTVN4OVVPUSE6OiFmaWxlSWQ9OTI3NjM4OTgmZmlsZVNldENpZD03ODQ5NjAmcmVsZWFzZUNpZHM9NzIzMzk2JnBsYXRmb3JtQ2lkcz0zNSZkb3dubG9hZFR5cGU9OTU3NjQmYWdyZWVtZW50SWQ9NDQ2NDQzNyZlbWFpbEFkZHJlc3M9YWxleC56YWJhbGxhQGFjY2VudHVyZS5jb20mdXNlck5hbWU9RVBELUFMRVguWkFCQUxMQUBBQ0NFTlRVUkUuQ09NJmNvdW50cnlDb2RlPUJSJmRscENpZHM9ODE1MzY2JnNlYXJjaFN0cmluZz1PcmFjbGUgRGF0YWJhc2UgMTJjIEVudGVycHJpc2UgRWRpdGlvbg" -O V840012-01.zip



Agora é só aguardar a finalização do download.

Para baixar patches do My Oracle Support, também pode ser utilizado dessa forma.
Porém eu prefiro utilizar o getMOSPatch, que oferece uma variedade de opções.






sexta-feira, 27 de abril de 2018

OEM 13cR2 Agent - Resyncronization error

Olá pessoal,

Estava instalando um agent do OEM 13cR2 para monitorar um Exadata e tive um pequeno problema. Devido a um erro na configuração do firewall, o OEM não conseguia se comunicar com o Agent na porta 3872.

Após o time de rede resolver o problema, o status do agent continuava pendente:





Tentei usar o RESYNC do agent, mas ocorreu o seguinte erro:

System has detected that this agent never uploaded to the repository successfully. Repository does not have enough information to restore this agent.


Para resolver o problema, utilizei os seguintes comandos:


./emctl config agent addinternaltargets

./emctl upload agent




domingo, 25 de março de 2018

Copiando arquivos do Docker para o Host

Olá pessoal,

Estou usando um banco de dados Oracle 12.2  em um container Docker.

Ao realizar um trace 10053, fiquei pensando em como faria para acessar esse arquivo de trace, visto que ele está dentro do container.

Uma das soluções que encontrei foi utilizar o comando "docker cp".

Realizando o trace e pegando o nome do arquivo gerado:



Descobrindo o Container ID que será usado no comando de cópia do arquivo:



Executando o comando para copiar o arquivo:

docker cp abcee3352bd5:/opt/oracle/diag/rdbms/orclcdb/ORCLCDB/trace/ORCLCDB_ora_380.trc .





Por hoje é isso!
Até mais!



segunda-feira, 19 de fevereiro de 2018

Verificando os valores dos parâmetros de outra sessão - parte 2

Olá pessoal,

Conforme prometido, segue a parte 2 do post realizado na semana passada.

Para verificar os parâmetros alterados em outra sessão(mesmo os que não tem relação com o otimizador), podemos utilizar o ORADEBUG.

Para nosso teste, vamos iniciar uma sessão no Oracle e alterar o parâmetro "ddl_lock_timeout":



Feito isso, vamos descobrir qual o ID desse processo no SO:




Agora podemos utilizar o comando "oradebug dump modified_parameters 1":




Verificando o arquivo gerado:



sexta-feira, 16 de fevereiro de 2018

Verificando os valores dos parâmetros de outra sessão - parte 1

Olá pessoal,

Hoje fizeram outra pergunta interessante!

Como eu faço para saber se algum parâmetro do otimizador de outra sessão do Oracle foi alterado?

Existe uma view chamada V$SES_OPTIMIZER_ENVque é uma das formas de obter essa informação.



Vamos abrir uma nova sessão e alterar o parâmetro "optimizer_features_enable":



Para verificar se existe algum parâmetro alterado em outra sessão, podemos utilizar o SELECT abaixo:

SELECT
    ses.sid,
    ses.serial#,
    ses_alter.name,
    ses_alter.value value_ses,
    orig.value value_db
FROM
    v$ses_optimizer_env ses_alter,
    v$sys_optimizer_env orig, 
    v$session ses 
WHERE ses.sid=69
  and ses.sid = ses_alter.sid   
  and ses_alter.id = orig.id
  and ses_alter.value < > orig.value;





Ok, mas e se o parâmetro alterado não tiver relação com o otimizador ?

Esse será o assunto do próximo post :)




quarta-feira, 14 de fevereiro de 2018

Verificando os possíveis valores para um parâmetro do Oracle Database

Olá pessoal,

Hoje me questionaram sobre uma forma de verificar todos os valores possíveis para um parâmetro do Oracle sem precisar consultar a documentação.

Existe uma view chamada V$PARAMETER_VALID_VALUES que fornece essa informação.





A limitação desta view é que ela apenas nos mostra os valores dos parâmetros "suportados".

E se eu quiser saber os valores de um parâmetro oculto?

Para isso existe a X$KSPVLD_VALUES.




P.S. Não altere nenhum parâmetro oculto em produção sem o apoio do suporte da Oracle ou sem saber realmente o que você está fazendo.



quinta-feira, 18 de janeiro de 2018

Azure - 4k - Sector Size - DB STARTUP FAIL

Recentemente estive "lutando" com um problema ao realizar um duplicate para montar um physical standby na Azure.

Durante o duplicate recebia erros: ORA-03113: end-of-file on communication channel

Ivenstigando, cheguei em um problema de I/O dentro do ASM, que gerava erros ORA-00600 kfk_submit_lib_ioq

Então tentei criar um banco de testes via DBCA e recebi o erro abaixo:




Depois de muito pesquisar, cheguei no erro abaixo:

Bug 16870214 : DB STARTUP FAILS WITH ORA-17510 IF SPFILE IS IN 4K SECTOR SIZE DISKGROUP


Existe uma recomendação de criar o DISKGROUP que estão os REDO LOGS com sector size de 4k para discos premium ssd na azure.

http://dbaharrison.blogspot.com.br/2017/03/oracle-asm-in-azure-with-premium-ssd.html


Verificando essa VM, vi que os diskgroups estavam todos com sector size de 4k:



Baixei e apliquei o seguinte patch:

p16870214_112040_Linux-x86-64.zip



Para resolver o erro 126 no Opatch, faltava um chmod 755 na GCC.


Após isso, o banco foi criado com sucesso:



terça-feira, 2 de janeiro de 2018

Utilizando o Oracle Database 12.2 no Docker


Neste artigo irei demostrar como instalar o Docker no Mac OS Sierra e criar um banco de dados Oracle versão 12c release 2.

O que é o Docker?

Docker é uma plataforma Open Source escrita em Go, que é uma linguagem de programação de alto desempenho desenvolvida dentro do Google, a qual facilita a criação e administração de ambientes isolados. Foi criado por uma empresa chamada Dotcloud que hoje é somente Docker.

Com o Docker, podemos criar e implantar ambientes rapidamente. O Docker cria pacotes de software em unidades padronizadas chamadas de contêineres, que têm tudo o que o software precisa para ser executado, inclusive bibliotecas, ferramentas de sistema, etc. Ele possibilita o empacotamento de uma aplicação ou ambiente inteiro dentro de um único container.

O Docker é uma VM?

Não, containers nos permitem compartilhar binários, bibliotecas e criar ambientes uniformes e mais versáteis.




Primeiramente, é necessário realizar o download e instalação do Docker.

Neste artigo iremos utilizar o Docker Community Edition (CE), que é ideal para desenvolvedores e pequenas equipes.

O Download pode ser realizado no site abaixo:


Após o download, basta executar o arquivo Docker.dmg e será exibida a imagem abaixo:


Após clicar em Docker.app e arrastar até o ícone Applications, o Docker estará instalado.

Para executar o Docker, bastar ir até a pasta Applications e executar o arquivo Docker.app:



Ao iniciar o Docker pela primeira vez, será exibida a tela de boas vindas e também será solicitado um usuário com privilégios para realizar as configurações no Mac OS Sierra:





Após informar as credenciais, será exibida a tela abaixo indicando que o Docker está sendo inicializado:



Após a inicialização será exibida a mensagem abaixo:



No Menu do Mac Os Sierra podemos verificar que o Docker está em execução:


Para realizar a instalação do banco de dados Oracle deve-se entrar no GitHub e realizar o download do arquivo docker-images-master.zip:




O próximo passo é realizar o download do Oracle Database 12c Release 2 para Linux x86-64:






Neste ponto você deverá possuir os 2 arquivos abaixo em um diretório:

· docker-images-master.zip
· linuxx64_12201_database.zip




O próximo passo é extrair o arquivo docker-images-master.zip:



  
Após isso, copie o arquivo linuxx64_12201_database.zip para o diretório docker-images-master/OracleDatabase/dockerfiles/12.2.0.1:


Agora iremos criar um Docker image utilizando o arquivo buildDockerImage.sh, que pode ser baixado em:



A sintaxe utilizada para gerar a imagem é a seguinte:

./buildDockerImage.sh -v 12.2.0.1 –e




Podemos notar que o instalador irá acessar a internet e baixar o oraclelinux:7-slim, bem como irá utilizar o YUM para atualizar os pacotes:


Atualização dos pacotes:



Instalação do software banco de dados:



Execução automática do orainstRoot.sh e root.sh:



Final da instalação:



Ao final, possuímos o Oracle Linux e o software do banco de dados Oracle 12.2.0.1:


Para realizar a criação do banco de dados, utilizamos o comando abaixo:

docker run --name oracle12_2 -p 1521:1521 -p 5500:5500 -v /Users/alexzaballa/Downloads/Docker/oradata:/opt/oracle/oradata oracle/database:12.2.0.1-ee




Final da criação do banco de dados:


Como podemos observar não informamos nenhuma senha. Com isso, uma senha será gerada automaticamente:



É possível redefinir estas senhas com o script abaixo:

docker exec oracle12_2 ./setPassword.sh MinhaNovaSenha



Para verificar se o banco de dados está rodando podemos utilizar o comando abaixo:

docker ps -a


Finalmente podemos realizar a conexão via SQLDeveloper:




Realizando a parada do banco de dados:

docker stop oracle12_2



docker logs oracle12_2



Inicializando o banco de dados:

docker start oracle12_2


docker logs oracle12_2



Referências: