<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Oracle on Café Com Cloud</title><link>https://blog.cafecomcloud.com.br/pt-br/tags/oracle/</link><description>Recent content in Oracle on Café Com Cloud</description><generator>Hugo -- gohugo.io</generator><language>pt-br</language><lastBuildDate>Tue, 14 Aug 2018 23:20:15 -0300</lastBuildDate><atom:link href="https://blog.cafecomcloud.com.br/pt-br/tags/oracle/index.xml" rel="self" type="application/rss+xml"/><item><title>Chefe, é hora de aplicar o patch..</title><link>https://blog.cafecomcloud.com.br/pt-br/2018/08/14/dear-boss-its-time-to-patch/</link><pubDate>Tue, 14 Aug 2018 23:20:15 -0300</pubDate><guid>https://blog.cafecomcloud.com.br/pt-br/2018/08/14/dear-boss-its-time-to-patch/</guid><description>&lt;p&gt;Eu sei. É difícil (mesmo hoje) conseguir uma downtime planejada pro seu banco. Mas quando você mostra pro seu chefe o que essa vulnerabilidade pode fazer, confia em mim, você ganha sua janela.&lt;/p&gt;
&lt;p&gt;Alguns dias atrás eu recebi os detalhes do CVE-2018-3110. Primeiro de tudo, você sabe o que é um CVE?&lt;/p&gt;
&lt;p&gt;CVE vem de Common Vulnerabilities and Exposures, então não é um espaço &amp;ldquo;só de Oracle&amp;rdquo;. Todo produto (de middleware, processadores, linux, switches, até roteadores) tem um dicionário de vulnerabilidades.&lt;/p&gt;
&lt;p&gt;Então, o que esse CVE diz?&lt;/p&gt;
&lt;p&gt;&lt;img alt="CVE-2018-3110" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.cafecomcloud.com.br/images/cve-2018-3110.jpg"&gt;&lt;/p&gt;
&lt;p&gt;E aí?? 9.9 de 10? As plataformas afetadas são windows, linux, unix (ou seja, todas as plataformas, né?)&lt;/p&gt;
&lt;p&gt;Eu não vou fazer um how-to sobre como explorar isso.. mas dá uma olhada na imagem abaixo e faz uns testes (no seu lab, por favor)&lt;/p&gt;
&lt;p&gt;&lt;img alt="CVE-2018-3110-exploit" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.cafecomcloud.com.br/images/cve-2018-3110-exploit.jpg"&gt;&lt;/p&gt;
&lt;p&gt;É hora de aplicar o patch, meus amigos.&lt;/p&gt;
&lt;p&gt;Falamos.&lt;/p&gt;</description></item><item><title>Backup na era cloud - o que está mudando?</title><link>https://blog.cafecomcloud.com.br/pt-br/2017/12/20/backup-in-the-cloud-era-what-is-changing/</link><pubDate>Wed, 20 Dec 2017 13:07:05 -0200</pubDate><guid>https://blog.cafecomcloud.com.br/pt-br/2017/12/20/backup-in-the-cloud-era-what-is-changing/</guid><description>&lt;p&gt;E aí, beleza!&lt;/p&gt;
&lt;p&gt;Espero que esse post te encontre bem. Esses dias um dos meus clientes me pediu pra aconselhar ele sobre procedimentos e soluções de backup/restore num ambiente novo rodando na AWS.&lt;/p&gt;
&lt;p&gt;Bancos de produção vão rodar em instâncias EC2, em Oracle com BYOL (bring your own license). O cliente está pensando em soluções de EBS (Elastic Block Storage) ou S3 (Simple Storage Service).&lt;/p&gt;
&lt;p&gt;Snapshots no mundo Oracle normalmente são usados em conjunto com operações de begin/end backup. Se você tira só 1 snapshot por dia, e não está disposto a perder 24h de dados commitados, você precisa ter uma segunda estratégia de backup. Existe um produto oferecido pela N2WS que é bem incrível pra orquestrar, agendar e controlar os snapshots, você pode configurar pra tirar uma foto a cada 5 min, o que geralmente é menor que um RPO de negócio. Mas e quanto a uma corrupção lógica, um delete errado feito no fim de semana passado? Como restaurar isso? Você precisa reter snaps por uma semana, talvez um mês, talvez um ano, restaurar esse snap em outra instância EC2 e restaurar os dados manualmente. Parece caro, né?&lt;/p&gt;
&lt;p&gt;O jeito do mundo ideal, vindo da documentação, é fazer deploy do OSBCS Oracle Secure Backup Cloud Service. Essa opção (paga) te dá a habilidade de usar S3 como tape, então ajustes mínimos precisam ser feitos pra migrar sua estratégia de backup pra cloud. Você precisa configurar e instalar o OSBCS em cada instância EC2, ajustar seus channels pra usar o OSBCS, e tá pronto pra ir! Retention do RMAN, catalog, tudo flui bonito se você escolher pagar por essa opção. Como o OSBCS é cobrado? Por Channel.&lt;/p&gt;
&lt;p&gt;Então, se você tem 100 bancos, você pode comprar por exemplo 10 channels, e fazer 1 backup por vez com 10 channels, ou 10 backups por vez com 1 channel, ou 2 backups por vez com 5 channels, ou 5 backups por vez com 2 channels, ou.. você pegou a ideia.&lt;/p&gt;
&lt;p&gt;Comentários são bem vindos =]&lt;/p&gt;
&lt;p&gt;Falamos,&lt;/p&gt;
&lt;p&gt;Hang.&lt;/p&gt;</description></item><item><title>12cR1 + Suse 12 SP2 = dá uma olhada nesse post</title><link>https://blog.cafecomcloud.com.br/pt-br/2017/06/10/12cr1-suse-12-sp2-take-a-look-on-this-post/</link><pubDate>Sat, 10 Jun 2017 22:19:15 -0300</pubDate><guid>https://blog.cafecomcloud.com.br/pt-br/2017/06/10/12cr1-suse-12-sp2-take-a-look-on-this-post/</guid><description>&lt;p&gt;Hoje eu enfrentei um problema estranho durante um HAS 12.1.0.2 no Suse 12 SP2 pra um cliente.&lt;/p&gt;
&lt;p&gt;Tudo correu bem durante o runInstaller, mas o roothas.pl falhou com o seguinte erro:&lt;/p&gt;
&lt;h5 id="server_blau01grid12102--u01grid12102perlbinperl--iu01grid12102perllib--iu01grid12102crsinstall-u01grid12102crsinstallroothaspl-using-configuration-parameter-file-u01grid12102crsinstallcrsconfig_params-local-add-mode-creating-ocr-keys-for-user-ora12c-privgrp-dba-operation-successful-local-only-mode-successfully-accumulated-necessary-ocr-keys-creating-ocr-keys-for-user-root-privgrp-root-operation-successful-crs-4664-node-server_bla-successfully-pinned-20170610-004642-clsrsc-330-adding-clusterware-entries-to-file-oracle-ohasdservice"&gt;SERVER_BLA:/u01/grid/12.1.0.2 # /u01/grid/12.1.0.2/perl/bin/perl -I/u01/grid/12.1.0.2/perl/lib -I/u01/grid/12.1.0.2/crs/install /u01/grid/12.1.0.2/crs/install/roothas.pl Using configuration parameter file: /u01/grid/12.1.0.2/crs/install/crsconfig_params LOCAL ADD MODE Creating OCR keys for user &amp;lsquo;ora12c&amp;rsquo;, privgrp &amp;lsquo;dba&amp;rsquo;.. Operation successful. LOCAL ONLY MODE Successfully accumulated necessary OCR keys. Creating OCR keys for user &amp;lsquo;root&amp;rsquo;, privgrp &amp;lsquo;root&amp;rsquo;.. Operation successful. CRS-4664: Node SERVER_BLA successfully pinned. 2017/06/10 00:46:42 CLSRSC-330: Adding Clusterware entries to file &amp;lsquo;oracle-ohasd.service&amp;rsquo;
&lt;/h5&gt;&lt;h5 id="prcr-1006--failed-to-add-resource-oraons-for-ons-prcr-1115--failed-to-find-entities-of-type-resource-type-that-match-filters-type_name-ends-type-and-contain-attributes-crs-0184--cannot-communicate-with-the-crs-daemon-20170610-004704-clsrsc-180-an-error-occurred-while-executing-the-command-srvctl-add-ons-error-code-0"&gt;PRCR-1006 : Failed to add resource ora.ons for ons PRCR-1115 : Failed to find entities of type resource type that match filters (TYPE_NAME ends .type) and contain attributes CRS-0184 : Cannot communicate with the CRS daemon. 2017/06/10 00:47:04 CLSRSC-180: An error occurred while executing the command &amp;lsquo;srvctl add ons&amp;rsquo; (error code 0)
&lt;/h5&gt;&lt;h5 id="20170610-004755-clsrsc-115-start-of-resource-oraevmd-failed"&gt;2017/06/10 00:47:55 CLSRSC-115: Start of resource &amp;lsquo;ora.evmd&amp;rsquo; failed
&lt;/h5&gt;&lt;h5 id="20170610-004755-clsrsc-202-failed-to-start-evm-daemon"&gt;2017/06/10 00:47:55 CLSRSC-202: Failed to start EVM daemon
&lt;/h5&gt;&lt;p&gt;Esse PRCR-1006 me deixou doido. No final, depois de longas horas garimpando a web + metalink + cafeína, descobri que você precisa:&lt;/p&gt;
&lt;p&gt;vi /etc/ld.so.conf e adicionar /lib64/noelision no topo do arquivo.&lt;/p&gt;
&lt;p&gt;O arquivo deve ficar assim depois do vi:&lt;/p&gt;
&lt;h5 id="server_blau01grid12102crsinstall-cat-etcldsoconf-lib64noelision-usrlocallib64-usrlocallib-include-etcldsoconfdconf"&gt;SERVER_BLA:/u01/grid/12.1.0.2/crs/install# cat /etc/ld.so.conf /lib64/noelision /usr/local/lib64 /usr/local/lib include /etc/ld.so.conf.d/*.conf
&lt;/h5&gt;&lt;p&gt;E então adiciona o symlink no GI_HOME:&lt;/p&gt;
&lt;h5 id="server_blau01grid12102lib-lns--s-lib64noelisionlibpthread-222so-libpthreadso0"&gt;SERVER_BLA:/u01/grid/12.1.0.2/lib# lns -s /lib64/noelision/libpthread-2.22.so libpthread.so.0
&lt;/h5&gt;&lt;p&gt;E só depois disso roda o root.sh/roothas.pl. Se você está lendo esse post, provavelmente já executou o roothas.pl (=[ infelizmente). Então você precisa fazer deconfigure primeiro, executar os passos acima, e então executar o roothas.pl de novo.&lt;/p&gt;
&lt;p&gt;Depois disso, a felicidade volta =]&lt;/p&gt;
&lt;p&gt;***Update***&lt;/p&gt;
&lt;p&gt;Quando for fazer patching no GI home, remove o symlink criado, aplica o patch, e refaz o symlink.&lt;/p&gt;
&lt;p&gt;Feedbacks são sempre bem vindos! Falamos,&lt;/p&gt;
&lt;p&gt;Hang,&lt;/p&gt;</description></item><item><title>db_multiblock_read_count - ser ou não ser?</title><link>https://blog.cafecomcloud.com.br/pt-br/2017/05/25/db_multiblock_read_count-to-be-or-not-to-be/</link><pubDate>Thu, 25 May 2017 18:37:21 -0300</pubDate><guid>https://blog.cafecomcloud.com.br/pt-br/2017/05/25/db_multiblock_read_count-to-be-or-not-to-be/</guid><description>&lt;p&gt;Às vezes você quer usar as coisas com opções default.. e às vezes o default não é bom o suficiente.&lt;/p&gt;
&lt;p&gt;A gente sabe que o db_file_multiblock_read_count é bumpado por default no startup, normalmente você pega 128 blocks por read. Por quê?&lt;/p&gt;
&lt;p&gt;Da documentação Oracle, esse valor é alto, mas o CBO não vai favorecer full table scans.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Even though the default value may be a large value, the optimizer will not favor large plans if you do not set this parameter. It would do so only if you explicitly set this parameter to a large value.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Beleza. Mas por quê? De um 10053 trace dentro de uma sessão, você pode ver que o CBO vai computar o db_file_multiblock_read_count sempre como &amp;ldquo;8&amp;rdquo;.. mesmo se você ver 128 no spfile.&lt;/p&gt;
&lt;p&gt;O CBO sempre vai usar 8 se você não setar db_file_multiblock_read_count explicitamente. Como saber se você setou db_file_multiblock_read_count como 128? Usa isso:&lt;/p&gt;
&lt;h5 id="select-nvlvaluenull-as-value-from-vspparameter-where-name--db_file_multiblock_read_count"&gt;SELECT nvl(value,&amp;rsquo;*NULL*&amp;rsquo;) AS value FROM v$spparameter WHERE name = &amp;lsquo;db_file_multiblock_read_count&amp;rsquo;;
&lt;/h5&gt;&lt;p&gt;Se isso retornar *NULL*, você não setou db_file_multiblock_read_count, Oracle está te mostrando 128, mas o CBO usa 8. Triste, né?&lt;/p&gt;
&lt;p&gt;Vocês todos leram a documentação e sabem os efeitos de bumpar db_file_multiblock_read_count alto. Full table scans vão acontecer com mais frequência e, como resultado, num sistema OLTP, normalmente você recebe uma ligação do seu chefe (hehe)&lt;/p&gt;
&lt;p&gt;Mas tem um jeito de setar corretamente o db_file_multiblock_read_count.. testando.. por exemplo, dá uma olhada no bloco abaixo. É bobo, eu sei, mas pode te dar um valor mágico pra esse parâmetro.&lt;/p&gt;
&lt;h5 id="set-serveroutput-on-declare-l_count-pls_integer-l_time-pls_integer-l_starting_time-pls_integer-l_ending_time-pls_integer-begin-dbms_outputput_linedbfmbrc-seconds-for-l_dbfmbrc-in-164-loop-execute-immediate-alter-session-set-db_file_multiblock_read_countl_dbfmbrc-execute-immediate-alter-system-flush-buffer_cache-execute-immediate-alter-session-disable-parallel-dml-l_starting_time--dbms_utilityget_time-select--fullt--count-into-l_count-from-big_table-t-l_ending_time--dbms_utilityget_time-l_time--roundl_ending_time-l_starting_time100-dbms_outputput_linel_dbfmbrc-l_time-end-loop-end-"&gt;set serveroutput on DECLARE l_count PLS_INTEGER; l_time PLS_INTEGER; l_starting_time PLS_INTEGER; l_ending_time PLS_INTEGER; BEGIN dbms_output.put_line(&amp;lsquo;dbfmbrc seconds&amp;rsquo;); FOR l_dbfmbrc IN 1..64 LOOP EXECUTE IMMEDIATE &amp;lsquo;ALTER SESSION SET db_file_multiblock_read_count=&amp;rsquo;||l_dbfmbrc; EXECUTE IMMEDIATE &amp;lsquo;ALTER system flush buffer_cache&amp;rsquo;; EXECUTE IMMEDIATE &amp;lsquo;ALTER session disable parallel dml&amp;rsquo;; l_starting_time := dbms_utility.get_time(); SELECT /*+ full(t) */ count(*) INTO l_count FROM big_table t; l_ending_time := dbms_utility.get_time(); l_time := round((l_ending_time-l_starting_time)/100); dbms_output.put_line(l_dbfmbrc||&amp;rsquo; &amp;lsquo;||l_time); END LOOP; END; /
&lt;/h5&gt;&lt;p&gt;(Obrigado Chris Antognini, você é incrível)&lt;/p&gt;
&lt;p&gt;Com esse bloco (cuidado, ele vai levar 60-90 minutos dependendo do tamanho da big table, como conselho, usa uma tabela de 5GB), você vai ter valores, plota um gráfico e vê o comportamento. Não escolhe um valor alto pra OLTP.&lt;/p&gt;
&lt;p&gt;Falamos!&lt;/p&gt;</description></item><item><title>Ser ou não ser (preguiçoso)</title><link>https://blog.cafecomcloud.com.br/pt-br/2017/03/06/to-be-or-not-to-be-lazy/</link><pubDate>Mon, 06 Mar 2017 20:49:44 -0300</pubDate><guid>https://blog.cafecomcloud.com.br/pt-br/2017/03/06/to-be-or-not-to-be-lazy/</guid><description>&lt;p&gt;Às vezes você é um Oracle DBA simplesmente cansado de fazer setup (eu gosto de instalar tudo do zero&amp;hellip; desde o Oracle 7.3 sempre foi uma aventura pra mim :) )&lt;/p&gt;
&lt;p&gt;Se você só quer baixar e se divertir com algumas features novas legais, uma ova pré-instalada é a medalha de ouro pra você..&lt;/p&gt;
&lt;p&gt;Dá uma olhada nessa do Jeff Smith (SQL Developer e muita diversão no blog dele) &lt;a class="link" href="http://www.thatjeffsmith.com/archive/2017/03/oracle-database-12c-release-2-is-now-available-and-so-is-our-new-virtualbox-appliance/" target="_blank" rel="noopener"
 &gt;aqui.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;É uma OVA com 12.2, APEX, SQL Developer e outras coisas legais :)&lt;/p&gt;
&lt;p&gt;Falamos!&lt;/p&gt;</description></item></channel></rss>