Posts com tag ‘oracle’

Vídeos sobre Oracle 11g e Exadata. Que Combinação!

segunda-feira, dezembro 21st, 2009

Olá,

Gostaria de compartilhar com vocês dois vídeos bem interessantes sobre o Sun Oracle Database Machine (Exadata II) e o Oracle Database 11g Release 2.

Os vídeos estão abaixo:

Sun Oracle Database Machine - Exadata II

Apresentação do Oracle Database 11g Release 2

O legal de ver essas duas apresentações, é que o hardware, Exadata II só roda o Oracle Database 11g Release 2, e o banco de dados Oracle 11g Release 2 tem customizações específicas de performance somente para o Exadata.

Até mesmo o ASM 11g foi modificado para o Exadata, normalmente o ASM trabalha com um Stripe Size de 1 MB para todas as plataformas, no Exadata com a combinação do HP InfiniBand, o ASM pode trabalhar com o Stripe Size de 4 MB. É realmente EXTREME PERFORMANCE!

Os vídeos estão em inglês, porém, dá quem não conhece muito a língua inglesa, dá para entender alguma coisa. Vale a pena conhecer.

Abraços,

Rodrigo Almeida

 

 

Crescendo profissionalmente no mundo Oracle

domingo, dezembro 6th, 2009

Olá,

Gostaria de discutir um assunto que vem me chamando muito a atenção nesses últimos tempos, a força que as comunidades Oracle podem oferecer aos profissionais iniciantes e até mesmo aos mais experientes. E quando estamos falando de comunidades, estamos diretamente se referindo aos grupos de usuários, sites e fóruns na internet. E o mais importante, eles podem lhe ajudar no seu crescimento profissional e técnico na área de tecnologia Oracle.

As comunidades Oracle, ultimamente, com o apoio da própria Oracle, vem crescendo e se amadurecendo com a experiência de seus próprios usuários, esse crescimento podemos notar pelos eventos, contéudos técnicos, blogs e o enriquecimento dos seus respectivos fóruns. Eu mesmo sou um fã de carteirinha de diversos sites Oracle brasileiros pelos serviços e eventos que oferecem.

Mas, O que a comunidade pode me ajudar no meu crescimento profissional?

A resposta é simples, nada melhor que você compartilhar a sua experiência técnica e profissional com outros profissionais que realizam a mesma função que você. Pela simples troca de experiência em problemas de outras pessoas a partir de fóruns ou lista de discussões, você consegue estudar mais sobre o assunto, o outro profissional conhece novas técnicas, outros usuários que estão participando do assunto conhecem mais sobre o problema e quando você vivenciar o problema discutido na empresa ou cliente que trabalha, já irá saber quais os passos e tarefas necessárias para chegar a sua solução.

E o que dizer sobre recomendações de livros, eventos, white papers e até mesmo ambiente de trabalho. Nada melhor você discutir isso com profissionais que estão no mercado, que fazem o que você faz todos os dias. Simplesmente não dá para chegar em casa e tentar conversar com a sua esposa(o) sobre um erro ORA-600 que aconteceu contigo nesta manhã. No meu caso, minha esposa é administradora, se comento sobre erros ORA-600 ela pensa que é placa de carro, código de guerra ou qualquer coisa de outro mundo. E desse jeito, não temos muito assunto!

Por isso, que as comunidades estão se tornando mais fortes no Brasil conforme o crescimento da tecnologia Oracle, Fóruns e sites são as nossas casas virtuais, sempre recorremos à elas quando precisamos ou queremos saber algo sobre um determinado assunto. Alias, dentro de fóruns conhecemos usuários e ganhamos amigos, aumentando nossa network. E talves, conheceremos os amigos virtuais em eventos criados pela própria Comunidade.

Outro ponto importante, é que todo iniciante tem três dúvidas básicas, tais como:

1. Como iniciar na carreira;
2. Quais os melhores livros para comprar;
3. Qual o melhor centro de treinamento;
4. E o básico de fóruns, ME AJUDE NO TRABALHO DE FACULDADE. (Opcional)

Algumas coisas podem ser respondidas pelo Google, mas, com certeza nos diversos fóruns de Oracle que temos aqui no Brasil, sabendo usar o SEARCH/PROCURAR do fórum, com certeza já temos tópicos com títulos bem parecidos com os que estão acima, com dicas e sugestões de diversos profissionais, com diversos pontos de vista e recomendações do que deve ou não ser feito. Isso é a centralização, disciminação, orientação e agilidade que uma comunidade pode lhe oferecer.

Para os mais experientes, que já sabem o poder da comunidade, além da troca de experiência, contéudo técnico e network, algo que chama atenção, VAGAS DE EMPREGO. Sim, o mercado de DBA é muito restrito e nada mais normal que nesse pequeno círculo de profissionais, vagas que se abrem em outros empresas se compartilhadas por eles mesmo. Um exemplo disso, é a chamada RECOMENDAÇÃO. Muitas vezes você não conhece o profissional fisicamente, porém, acompanha seus trabalhos, posts em blogs ou fóruns e sabe que a tal pessoa domina sobre a tecnologia. Então, desde você deixar que o departamento de RH escolha um profissional para a vaga, que pode ser um problema. Você passa a indicação ao gerente e/ou diretor de TI, conforme os requisitos da vaga. E deste modo, pode ter certeza que a contratação será muito mais valiosa e agregadora à empresa, pois geralmente RH de empresa, não sabe mensurar um profissional para o tipo de problema ou requisito que a empresa está necessitando.

Para concluir, é válido saber que comunidades Oracle, principalmente as brasileiras, estão cheios de pessoas que colaboram e dedicam o seu tempo livre para ajudar e compartilhar sua experiência com os mais novos, desde a criação e organização de eventos, artigos técnicos, blogs, fóruns, lista de discossões por e-mail, chats e etc. Elevando o nível de conhecimento, enriquecendo a internet e compartilhando a informação. Seguindo o velho ditado:

O importante é sempre compartilhar para multiplicar.

Para conhecerem mais sobre as nossas comunidades Oracle, preparei uma página aqui no Blog sobre comunidades, grupos de usuários, fóruns e sites em geral que podem lhe ajudar nessa caminhada.

Saiba mais sobre as Comunidades Oracle.

Abraços,

Rodrigo Almeida

Sun Oracle Database Server Version 2 - Uauuu!!!

quarta-feira, setembro 16th, 2009

Olá,

No dia 15/09/2009, o chefão de todos Larry Ellisson anunciou o lançamento do “primeiro” hardware genuíno da Oracle, o Sun Oracle Database Server Version 2, irmão do HP Oracle Exadata Machine que foi feito para ambientes de Data Warehouse, o Exadata Version 2 é mais rápido e versátil feito especialmente para ambientes OLTP.

O novo hardware da Oracle, possui um visual parecido com o seu irmão, porém, nessa versão está com um novo desenho e algumas inclusões técnologicas.

Sun Oracle Database Machine

No Rack, podemos encontrar três tipos de máquinas a Sun Oracle Database Machine, onde está os processadores e mémoria para o software do banco de dados, Oracle Exadata Flash Cache que é um dispositivo de SSS e o Sun Oracle Exadata Storage Server, onde será armazenado as informações. Com esse conjunto, podemos destacar alguns pontos sobre as configurações de hardware, como:

Sun Oracle Exadata Storage Server

  • Switches InfiniBand;
  • Capacidade de Armazenamento em 100TB com SAS e 336TB com SATA (Raw Devices);
  • Tamanho de banda para Dados com Flash Cache acima dos 50 GB/sec;
  • Tamanho de banda para Dados com Flash Cache e Data Compression acima dos 500 GB/sec;
  • Flash Cache IOPS acima dos 1.000,000;
  • IOPS com SAS acima dos 50.000 e com SATA acima dos 20.000;

Oracle Exadata Flash Cache

Agora, o melhor de todos para quem não entendeu como funciona o Flash Cache, o Exadata Smart Flash Cache é uma solução de SSD (Solid State Disk) ou no caso SSS (Solid State Storage), que é nada mais que um dispositivo de armazenamento de dados que “aloca” os blocos de dados em memória (”cache”), emulando uma interface do dispositivo de disco.

O Exadata Flash Cache trabalha no limite de 384GB de alocação, ou seja, muito, mas muito mais rápido quando necessário realizar leituras em “disco”, aumentando drasticamente a performance do banco de dados.

Sun Oracle Database Machine

Sobre as configurações do servidor propriamente dito, podemos destacar:

  • Fast X86 CPUs processors (Intel Xeon);
  • 600 GB SAS Disks executando em 6 GB/Sec;
  • Fast DDR3 Memory;
  • 72 GB RAM por Database Server;
  • 40 GB/sec InfiniBand Switch;
  • 100 TB Disk Capacity por Sun Oracle Database Machine;
  • Sun FlashFire Technology for High Speed Transaction Processing;

Além de lançar o hardware, a Oracle desenvoveu novas tecnologias para incorporar no Exadata, como:

  • Protocolo iDB, para realizar a comunicação do Database Machine e Exadata Storage onde pode trabalhar diretamente com as células de storage, influenciando diretamente na performance das querys;
  • Recursos específicos para ASM (Automatic Storage Management);
  • Integração e performance nos backups com RMAN (Recovery Manager) e OSB (Oracle Secure Backup);
  • Plugins para Oracle Enterprise Manager Grid Control para monitorar todo o ambiente do Exadata, desde os dados básicos de armazenamento até as métricas de performance do Hardware;
  • Exadata Smart Scan, que melhora os planos de execução das querys (Nível Físico);
  • Exadata Cell, que pode fazer as tarefas do RAID sem problemas. E o melhor com ASM;

BOM! Resumindo tudo sobre esse lançamento, a Oracle está criando as máquinas dos sonhos de qualquer DBA, criando soluções específicas que atacam um ponto importante de qualquer ambiente, a PERFORMANCE.

O que pode ser díficil é imaginar é o preço para uma solução completa na empresa, se apenas comprar o hardware já está caro para as empresas brasileiras, imagina tudo!

Mais informações:

Photo Gallery da Sun - Sun Oracle Database Machine

Sun Oracle Database Machine

Technical Overview of Sun Oracle Database Machine

Sobre SSD:

Mr.Benchmark

Abraços,

O presentinho chego!

quarta-feira, setembro 2nd, 2009

Olá,

Esses dias estava conversando com o Portilho, sobre a tal “Plaquinha” da Oracle que não chegava após as confirmações do Oracle ACE, pois bem, a minha chegou essa semana, e gostaria de compartilhar esse orgulho com vocês.

Abraços,

Oracle 11g Release 2 Lançado!

terça-feira, setembro 1st, 2009

Olá,

Pessoal, gostaria de avisar a comunidade que o Oracle Database 11g Release 2 já está disponível para download no site da OTN (Oracle Technology Network) e poderá iniciar os testes com essa nova versão mais completa e com os bugs corrigidos.

Muito interessante para quem já pensa em colocar o Oracle 11g em novos projetos de banco de dados, pois o Release 2, é sempre o mais estável em questão de BUGs sobre news features e produtos que acompanham o banco de dados. Vale a pena agora 11g na produção!

Abraços,

Oracle ACE + 1 Brasileiro

terça-feira, julho 14th, 2009

Olá,

É com muita felicidade que informamos que o Brasil agora tem 2 Oracle ACEs na comunidade, e esses dois estão justamente aqui no GPO. Eu e Ricardo Portilho!

O Portilho fez um post comentando da função do ACE e o que ele realmente vale para a comunidade. Se quiser mais detalhes, só clicar aqui.

Meu perfil ainda não está no Diretorio da Oracle, vai demorar algum tempo até a publicação.

Só mais um comunicado, esse mês, participei de um debate entre Oracle x SQL Server para a Revista TI Digital, quem quiser dar uma olhada na revista, já está nas bancas, foi um debate legal e bem técnico para saber quando utilizar os bancos de dados Oracle ou SQL Server na empresa, quando se trabalha com um grande volume de dados.

Abraços,

Rodrigo Almeida

Check-List para auditoria SOX em Oracle

segunda-feira, junho 29th, 2009

Olá,

Recentemente estive sobre os olhares da auditoria Sarbanes-Oxley (SOX) para os bancos de dados Oracle da empresa que trabalho e gostaria de compartilhar alguns check-lists necessários para os DBAs passarem sem muitos problemas dessa auditoria.

Sobre a Lei Sarbanes-Oxley (SOX)

A auditoria SOX, foi criada em 2.002 por um senador Paul Sarbanes e um deputado Michael Oxley no EUA tendo como objetivo controlar e investigar todos os investimentos estrangeiros de empresas que possuem capital aberto no mercado, afim de evitar grandes fraudes e governança inapropriada.

Como muitas empresas que possuem operações financeiras no exterior, a Sox promove a criação de processos de auditoria e segurança em todos os departamentos da empresa, afim de tornar-la uma empresa confiável, transparente e principalmente segura.

Deste modo, a atenção ao departamento de Tecnologia da Informação (TI) é uma parte muito importante durante uma auditoria SOX, pois, os sistemas da empresa devem ser seguros e seguir diversos processos internos elaborados pelas suas gestões para prevenir fraudes.

O banco de dados acaba sendo um alvo certo no processo de auditoria, porque simplesmente, armazena todos os dados vitais de uma empresa, e essa “caixa” de dados precisa ser segura e de acesso controlado, tornando uma dor de cabeça aos DBAs e projetos da empresa, porque muitas restrições são impostas.

Essas restrições impostas poderão ver no check-list abaixo, onde são pontos que os auditores pedem evidências sobre o processo e/ou atividade realizada. Todo o check-list foi realizado para ambientes de bancos de dados Oracle.

Primeiramente, vamos iniciar o nosso check-list partindo da infra-estrutura, ou seja, o que é necessário para o ambiente de banco de dados estar de acordo com o SOX.

Infra-Estrutura

  • Backup & Recover em dia;
  • Documentação da Estratégia de Backup & Recover para cada banco de dados;
  • Evidências de testes de recover vindas de Fita e/ou disco, o verdadeiro LOG da operação;
  • Padrão de instalação seguindo o OFA (Optimal Flexible Architecture);
  • Para bancos de dados em ambientes Windows:
    • Lista de usuários Locais do servidor;
    • Permissões dos usuários e pastas Oracle;
    • DUMPSEC dos servidores;
    • Relacionamento de confiança entre os servidores;
    • Lista de serviços do windows, para saber qual é necessário ou não;
    • Lista de protocolos utilizados pelo servidor;
    • Permissão dos arquivos listener.ora, sqlnet.ora e Executáveis;
    • Permissão do Oratab;
    • Arquivo de Parâmetro, quais e qual o motivo dos parâmetros;
    • Informação sobre os processos do Windows Scheduler;
    • Informações sobre os processos Batch, não é permitido fixar a senha de usuários em hardcode;
    • Informações sobre as últimas atualizações do Windows, principalmente de Vulnerabilidade.
  • Para bancos de dados em ambientes Linux/Unix:
    • Utilizar o umask 022 no profile Oracle;
    • Fornecer os detalhes do profile default dos usuários e csh.login do sistema operacional;
    • Lista de serviços que estão executando, e desativar os desnecessários.
    • Lista dos usuários do DBA Group;
    • Permissão dos arquivos, diretórios e FileSystem do Oracle User;
    • Permissão do OraTab;
    • Permissão de shell scripts, não é permitido fixar a senha de usuários em hardcode;
    • Permissão nos arquivos Listener.ora, sqlnet.ora e Executáveis/Libs;
    • Arquivo de Parâmetro, quais e qual o motivo dos parâmetros;
    • Informações sobre os processos da Crontab e suas permissões.
  • Informações de permissão sobre os arquivos de dados, traces e log;

Agora, vamos para um check-list mais refinado, internamente no banco de dados, o que o DBA deverá prestar atenção na auditoria, veja abaixo:

Banco de dados

  • Lista de usuários Genéricos, ou seja, Lista dos owners da aplicação;
  • Lista de usuários Convencionais, os usuários finais;
  • Lista de Profiles e seus parâmetros;
  • A função VERIFY_PASS_FUNCTION deve ser programada para de acordo com a política de senha da empresa;
  • Permissões de visualização no dicionário de dados Oracle, principalmente as views dba_source e dba_objects;
  • Lista de permissão dos Usuários por objeto, role e grants de sistema;
  • Lista de permissão dos usuáriso com WITH OPTION para concessão de permissão;
  • Documentação do processo de Backup sobre os componentes lógicos, como tabelas, procedures, packages, functions e triggers;
  • Documentação do processo de agendamento de Jobs ou a utiização do DBMS_SCHEDULER, Quem usa, Como usa e quem utiliza;
  • O DBA não pode utilizar as contas SYS e SYSTEM, deve possuir uma conta própria e nomeada para cada profissional;
  • Senha no Listener;
  • Não utilizar autenticação via SO para logar-se como SYS AS SYSDBA;
  • Utilizar arquivo de senha no banco de dados;
  • Utilizar o parâmetro DBLINK_ENCRYPT_LOGIN = TRUE no banco de dados quando se trabalha com versões anteriores ao 9.2.0.1;

  • Recomendação de habilitar o AUDIT_TRAIL = DB ou SO, mas é apenas recomendação, depende de analise de ambiente;
  • Habilitar o parâmetro AUDIT_SYS_OPERATIONS = TRUE para auditoria no usuário SYS;

  • Ocultar as autenticações no banco de dados pelo sistema operacional, usando o parâmetro OS_AUTHENT_PREFIX = “;
  • Ter habilitado o parâmetro REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE para administração remota.

Dependendo da empresa que irá auditar, alguns itens podem ser incluídos e outros nem solicitados, porém, nunca se sabe o que eles vão pedir, por isso, fica a recomendação e as devidas atenções de segurança.

Outro detalhe importante sobre uma auditoria SOX, que os auditores pedem todos os documentos de processo e/ou atividade do banco de dados, portanto, mais e mais documentos são necessário para os nossos ambientes, como:

  • Documentação de Instalação do banco de dados;
  • Documentação do controle de incidentes de banco de dados;
  • Documentação do controle de alteração do banco de dados feitas atráves de aplicação, ou seja, quando é necessário incluir, deletar ou modificar algum objeto da base;
  • Documentação dos serviços que estão sendo monitorados no banco de dados;
  • Documentação de procedimentos de manutenção no banco de dados e etc;

Para a equipe de DBAs pode ser um imenso problema isso, porque documentar todo esses processos leva muito tempo e dificilmente um específico profissional sabe tudo sobre um determinado ambiente. Por um lado, a documentação é extremamente importante para equipes com muitos DBAs, ou empresa que possuem alta rotatividade desses profissionais, pois o ambiente fica muito mais controlado, seguro e fácil de se administrar. Eu sou totalmente favorável a qualquer tipo de documentação, tanto banco e aplicação.

Uma recomendação importante quando for passar por auditoria SOX, são elas:

  • O DBA deve ter um backup, ou seja, outro profissional que faça as mesmas tarefas quando ele ficar doente ou sair da empresa;
  • Tenha ambientes separados para a aplicação, exemplo: Ambiente de DESENVOLVIMENTO, HOMOLOGAÇÂO e PRODUÇÂO;
  • Tenha uma gestão de incidentes ou projeto que controle todas as transações sobre os ambientes mencionados acima;
  • Todo o código PL/SQL que passe a terceiros ou outras filiais deve usar o aplicativo WRAP para criptografia dos dados e posteriormente comparar os checksum;
  • Tenha ótimas estratégias de Backup & Recover;
  • E um acesso restrito para querys em ambiente de produção.

BOM! Acho que é isso pessoal, esses são alguns (”grandes”) check-lists para supotar uma auditoria da SOX, ou até melhor, para conhecer também um pouco mais sobre como proteger o seu banco de dados, não precisa passar por uma auditoria para poder implementar alguns sugestões que estão acima ou até mesmo, documentar os seus processos. São check-lists que é válido como um todo!

Abraços,

Rodrigo Almeida

Dicas para melhorar performance no NF-e da Mastersaf

quarta-feira, junho 17th, 2009

Olá,

Recentemente muitas empresas estão utilizando a solução de Nota Fiscal Eletrônica (NFE) da Mastersaf, um aplicativo desenvolvido em Java Server pages (JSP) sobre o webserver GlassFish da Sun/Oracle.

Na teoria um aplicativo web de pequeno porte para validação e envio de Notas Fiscais ao Sefaz, contudo, se o aplicativo tiver problemas de performance ou parar por erro humano ou hardware, trará grandes problemas ao negócios da empresa.

Nos manuais de instalação do aplicativo, não há muitas informações de como configurar ou administrar um banco de dados Oracle de acordo com as necessidades do aplicativo. Por essa razão, vou passar algumas dicas de como melhorar a performance do aplicativo quando está se trabalhando com Oracle.

1° Dica) Use o parâmetro DB_KEEP_CACHE_SIZE

Esse parâmetro é utilizado para mantér todos os blocos de dados de uma determinada tabela em memória, desde modo, evita-se realizar Physical Reads, leitura direta em disco, e começa a trabalhar mais com Logical reads, leitura em memória. O ganho de performance é bem considerado.

Para o NFE, o ideal é colocar todas as tabelas que inicia com NFE_, ARC_, CTRL_ e NFS_ em keep, pois são tabelas utilizadas com muita frequência pelo aplicativo. Abaixo segue um modo de como configurar.

1 - Habilitando o db_keep_cache_size

SQL> alter system set db_keep_cache_size = 120M scope=both;

Sistema alterado.

2 -  Colocando a tabela em keep

SQL> alter table NFE.<nome_da_tabela> storage (buffer_pool keep);

Tabela alterada.

Recomendação

O DBA deverá realizar os cálculos corretos para divisão do SGA (Database Buffers) para o parâmetro db_keep_cache_size, ou seja, recomendo utilizar em tabelas pequenas, que tenha no máximo 20MB, é interessante alocar seu contéudo completo em memória, porém, existe outro parâmetro db_recycle_cache_size que pode ser utilizado para tabelas maiores ou deixar no buffer_pool padrão, ou seja, alocar os blocos de dados no espaço destinado do db_cache_size.

2° Dica) Bulk Collect na Integração de dados

Para empresas que possuem soluções próprias de ERP ou sistemas de gerenciamento independentes, que trabalham na plataforma Oracle (Forms/Reports/Apex/PLSQL), é recomendado utilizar cursos em Bulk Collect para criar a integração com o sistema NFE da Mastersaf.

O Bulk Collect é o tipo de cursor que traz um excelente ganho de performance em relação aos outros (Implicítos/Explicítos) e aumenta a velocidade na troca de informações entre as bases.

Para maiores informações sobre como utilizar o Bulk Collect, meu amigo Leonardo Litz escreveu um artigo realizando a comparação entre os diferentes tipos de cursores, que pode ser visto no link abaixo.

Utilizando cursores no Oracle

http://imasters.uol.com.br/artigo/12960/oracle/utilizando_cursores_no_oracle/

3° Dica ) Bloco de dados em 8k

Já cheguei a ver algumas empresas que estão trabalhando com 16k para os blocos de dados do banco, em questões de performance, isso pode lhe trazer alguns Latchs desnecessários. Em testes realizados, trabalhar com o banco de dados com os parâmetros db_block_size = 8k e o db_file_multiblock_read_count = 16 mostrou muito mais performático em relação a criar o banco de dados em 16k ou até mesmo criar as tablespaces utilizando a blocagem de 16k. Mantenha-se no 8k.

Recomendação

Quando se deseja utilizar um específico bloco de dados no projeto de banco de dados, o DBA deverá analisar desde o stripe utilizado na criação da RAID, o tipo de formatação utilizado no disco e posteriormente o bloco de dados que irá utilizar, pois todos esses fatores influência em performance.

E é isso pessoal, conforme a experiência com os produtos Mastersaf e as soluções adotadas, vou postando mais informações para melhorar o dia-a-dia e compartilhar o conhecimento com todos. Sugestões e novas soluções também são muito bem-vindas.

Abraços,

Pérolas de TI - O que nós temos que escutar …

sexta-feira, maio 15th, 2009

Olá,

Esse post é dedicado as “pérolas” que já foram ditas dentro do departamento de TI, pelos próprios profissionais ou usuários. O verdadeiro momento para relaxar e rir um pouco.

Pérola 1

Durante uma reunião de projetos da empresa:

Gerente de TI : - “Como podemos encurtar o tempo do projeto?”

Coordenador de Desenvolvimento: - “Amigos, é possível instalar o banco de dados antes do sistema operacional  para adiantarmos o projeto?”

Ocorre um momento de silêncio na sala …

Consultoria: “Ééééééé… começamos bem, heimmmm galera!”

=====================================================

Pérola 2

Durante uma troca de e-mails:

Desenvolvedor: - “Preciso do seu VNC?”

Coordenador de Desenvolvimento: - “OK! Estou enviando por email (anexado VNC.EXE)”

=====================================================

Pérola 3

Durante o processo de suporte da uma fábrica de software:

Desenvolvedor: - “Porque as views VT_EMPREGADOS e VT_CARGOS foi criado?”

Analista de Suporte: - “Essas views que apareceram no Banco de Dados foi o próprio Oracle quem as criou sozinhos, e isso invalidou os outros objetos…”

=====================================================

Pérola 4

Conversa entre os desenvolvedores do projeto:

Desenvolvedor: - “Eu sou o Desenvolvedor Baby, fulano é o Junior e Ciclano é o Sênior …”

=====================================================

Pérola 5

Conversa de almoço:

Analista Notes: - “Você viu o novo Fiat, o Fiat PONTO.”

=====================================================

Pérola 6

Quando ocorre problemas de enviar e-mail na empresa:

Analista de Suporte: - “Porque os e-mails não estão chegando?”

Analista Notes: - “O Notes não está enviando e-mail porque o Ar-condicionado não está funcionando e por isso o serviço de roteamento paro!.”

Analista de Suporte: - “Eitttttaaaaaaaaaaa… ”

=====================================================

Pérola 7

Reunião de Projetos da empresa:

Analista de Suporte: - “Vou conversar com o Carlos que cuida da Venezuela”

Analista Notes: - “Não adianta o Carlos só cuida da America do Sul”

Analista de Suporte: - “Desculpa a Venezuela fica na ARABIA agora”

=====================================================

Pérola 8

Pergunta no lado da mesa:

Analista de Suporte: - “Qual comando para executar .exe no Linux ?”

=====================================================

Pérola 9

Acionando o DBA na madrugada:

Suporte: - “Alô, DBA? Estamos com problemas, todas as bases estão fora!”

DBA: - “O Link está fora? Acabo a energia?”

Suporte: - “Pior que não, porque algumas unidades estão no ar!”

DBA: - “Tente fazer um PING para a unidade São Paulo”

Suporte: - “Não consegui …

DBA: - “Tenta agora para Curitiba.”

Suporte: - “Também não.”

DBA: - “Faz um ping para o banco XYZ.”

(Era um banco local onde o suporte estava)

Suporte: - ” Também não consegui, estranho esse problema né.”

DBA: - ” Cara, faz o seguinte, vê se sua máquina está com o cabo de rede conectado?”

(revoltado já)

Suporte: - “Putzzzzzz. cara, minha placa de rede estava sem nenhum cabo…”

( tu tu tu tu tu…)

DBA já tinha desligado o telefone e voltou a dormir.

=====================================================

Pérola 10

Dúvidas entre a equipe:

Analista de Negócio: - “Puts meu não consigo recriar um perfil.. Tá dando erro!”

Adm. de Infra: - “É só reiniciar a máquina que funciona seu animal, se não der certo eu fico pelado aqui …”

=====================================================

Pérola 11

Conversa entre desenvolvedores:

Desenvolvedor: - “Cara! A gente prescisa mudar o nome daquele JOB do Oracle, o nome com aquele número não é muito sujestivo…..”

O job era de NÚMERO 666.

=====================================================

Pérola 12

Requisição de novos equipamentos para o TI:

Adm. de Infra: - “Compramos um novo notebook pra usarmos.”

Analista de Negócios: - “Veio com teclado e mouse?”

=====================================================

Pérola 13

Conversa de alinhamento das equipes:

Analista da Filial Argentina: - “Hola como Estas?
Analista Notes: - “Muy Bem is Too ?
Analista da Filial Argentina: - “Gracias por su ayuda”
Analista Notes: - “Graxias bye bye ”

=====================================================

Pérola 14

Conversa na fila de café na empresa entre coordenadores:

Coordenador 1: - “Tu fez ITIL no Instituto COBIT?”

Coordenador 2: - “Hãmm! Fumo o quê?”

=====================================================

Pérola 15

Solicitação de execução de script para correção da aplicação:

Coordenador de Desenvolvimento: - “Fulano, Por favor, abaixe todos os bancos de dados da aplicativo X, pois preciso executar os scripts no horário de almoço”

DBA: - “Se eu baixar, tu vai executar por OSMOSE e promete não me ligar!”

=====================================================

Pérola 16

Quando o Administrador de rede não está presente e mandam um estagiário fazer o serviço:

Estagiário: Entra na sala dos servidores para auxiliar o analista de suporte  na manutenção do no-break.

Analista de Suporte: - “Por favor, poderia apertar o botão X do no-break para saber o status!”.

Estagiário: “É esse **BUTÃO** aqui!”.

… nesse momento todos os servidores da empresa são desligados …

Momentos depois…

Todos os funcionários do TI olhavam para a porta da sala dos servidores, quando o estagiário sai e diz:

Estagiário: - “Algum problema aí?”

DBA: - “Acho que a noite vai ser longa…”

=====================================================

Pérola 17

Manutenção de servidores durante o final de semana:

Coordenador de Infra-Estrutura: - “Porque o banco X está fora desde sábado?”.

DBA: - “Verifiquei aqui e o servidor está fora desde Sábado, vou ver o que aconteceu!”.

DBA: - “Suporte! Sabe me dizer o motivo da máquina X estar fora desde sábado?”

Suporte: - “Fomos mudar o servidor de Rack, porém, nós não queriamos prejudicar os usuários, e preferimos mudar o servidor de lugar com a máquina ligado mesmo, para não atrapalhar e ligar para você!”

Final da história…

Cabos de rede desconectados, discos SATAs corrompidos e não existia backup dos últimos 2 dias.

=====================================================

Pérola 18

Dúvidas sobre um hardware de criptografia:

Coordenador de Desenvolvimento: - “Que caixinha preta é essa?”

Analista de Suporte: - “È o hardware para criptografia da informação para as entidades externas!”.

Coordenador de Desenvolvimento: - “Nossssaaaa! Que Legal, eu não sabia que ele também usava cabo COAXIAL! Muito banaca!”

Lembrete …

Como todo hardware, ele só tinha entrada de fonte de energia e 2 entradas RJ-45 (rede).

=====================================================

Pérola 19

Durante uma reunião de projeto lendário:

Coordenador de Desenvolvimento: - “O meu sonho é colocar o JD. Edwards e um banco de dados ATG!”

=====================================================

Agredecimentos aos amigos que me mandaram e-mails com as pérolas ouvidas ou vivenciadas.

BOM! Esse post será atualizado constantemente, e quem quiser colaborar, só me mandar um e-mail ou deixar comentários.

Abraços,

Uma visão geral sobre backup & Recover.

domingo, abril 5th, 2009

Olá,

Um assunto muito pouco abordado entre os profissionais Oracle e que sempre causa estresse e problemas quando necessário, e a eficiência da estratégia de backup & recover de um determinado banco de dados da empresa, pois todos só prestam atenção nesse assunto quanto é necessário e já está com a corda no pescoço.

Para ter uma eficiente estratégia de backup & recover, primeiramente deve-se conhecer a infra-estrutura que a empresa oferece para adequar as soluções de backup e planejar quais estratégias e técnicas que serão aplicadas. E quando estamos falando de infra-estrutura, diversos pontos devem ser destacados, como:

  • Rede LAN dedicada para backup & recover;
  • Dispositivos de Fita (DLT, LTO e DDS) disponíveis para armazenamento;
  • Se existe uma necessidade de storage para backup em disco, é viável uma aquisição?;
  • Se existe servidores dedicados para testes e validação de restore e recover;
  • A empresa possui outro site para planejar estratégias de backup;
  • Se a empresa centraliza backups de outras unidades, qual o tamanho da banda de rede.

O segundo ponto que deve ser analisado é a politíca de backup de cada banco de dados, tratado de forma única, pois em banco de dados, pelo mais que seja padronizado as instalações, arquitetura e funcionalidades de cada base, necessita de políticas de backup customizadas, onde a aplicação da empresa que irá ditar as principais regras, e existem pontos que merecem atenção, como:

  • Tempo para janela de recuperação;
  • Tempo de retenção dos dados;
  • Agendamento das rotinas de backup, exemplo: diáriamente, semanalmente, mensalmente ou anual;
  • Volumetria que será armazenada;
  • Nível de proteção dos dados;
  • Tipos de backups que serão executados;
  • Definicação dos procedimentos de backup, restore e recover.

Os dois pontos citados, é o início para enxergar as deficiências da empresa ao elaborar as estratégias de backup, são os principais pontos que devem ser levantados para posteriormente planejar as melhores técnicas e politícas adequadas para as bases.

Não adianta o DBA ter diversas ideias e soluções de armazenamento e recuperações ótimas se a empresa não permite ou não suporta tais tarefas. Seria uma frustação ao profissional tentar implementar uma solução sem sucesso ou com diversos problemas e que não consegue atingir o principal objetivo que é a segurança dos dados e disponibilidade do banco de dados.

Em relação ao assunto, soluções de backup,  existem diversas no mercado, a própria Oracle oferece diversas soluções de backup interessantes, como Oracle Secure Backup, Data Guard, Stand-by Database, Recovery Manager (RMAN) e Legato Single Server. Outros produtos de terceiros podem oferecer soluções adequadas a sua empresa, como: CA BrightStor ArcServer e Backup Exec, Symantec NetBackup, IBM Tivoli ou EMC NetWorker. Tudo é uma questão de analise, planejamento e execução na implantação da solução, e é claro, verificar se o valor da solução está dentro do orçamento do departamento de TI.

Agora, aos DBAs, existem técnicas e práticas que podemos aplicar, para complementar as estratégias de backup existentes e outras práticas que devem possuir requisitos citados no início, principalmente na parte de infra-estrutura. Quando vamos pensar em backup & recover, O que lhe vem na cabeça? Vamos montar uma lista com as opções:

  1. Backup cold;
  2. Backup hot;
  3. Backup por tablespace;
  4. Backup do control file;
  5. Export do banco de dados;
  6. Arquivos de carga (originadas do ETL ou de algum outro processo);
  7. Cópia fria de um servidor para o outro;
  8. Cópia dos objetos de banco;
  9. E no pior das hípoteses, garantia de alguma coisa no ambiente de desenvolvimento e homologação.

OK! Percebeu que estamos falando de um assunto delicado e de forma abrangente, sem determinar o que será feito, se existe procedimento para tal, quais as garantias que vou ter e sempre pensando naquela frase linda e determinante:

“Backup bom é aquele que volta”

Agora, vamos discutir um pouco sobre os tipos de backups citados acima.

Backup Frio (Cold Backup), backup realizado com o banco de dados offline, ou seja consistente.

O backup cold pode ser feito de modo automatizado atráves do RMAN (Recovery Manager) ou atráves de scripts shell (Linux/Unix) ou batch (Windows), onde para o formato manual do backup, pode envolver a cópia até mesmo dos arquivos de redo log, no RMAN não é necessário. Interessante ter um backup frio na sua estratégia de backup.

Backup Quente (Hot backup), backup realizado com o banco de dado online, ou seja inconsistente.

O backup HOT é um dos principais tipos de backup realizados nos ambientes de produção, pois não é necessário a parada do banco de dados, quando está em modo ARCHIVELOG, porém, uma estratégia de backup HOT, pode envolver a utilização de níveis de backups incrementais, como:

  • Backup incremental nível 0, ou backup base;
  • Backup incremental nível 1, 2, 3 e 4.

Ao colocar esses níveis de backup na sua estratégia, irá ganhar performance, redução de volumetria de backup gerado e aumentar o nível de disponibilidade dos dados, dando mais eficiência à recuperação. Acho que é a opção mínima de backup para o ambiente de produção.

Backup por tablespace, backup realizado para uma determinada tablespace, tendo como opção até mesmo a seleção dos datafiles que poderão ser copiados, pode ser feito manualmente e automaticamente, mas em alguns banco de dados existem tablespaces que armazenam as principais tabelas da aplicação, em que pode forçar uma parada crítica da aplicação, então, vem a pergunta valendo 1 milhão, Se eu peder uma tablespace com tabelas de alta criticidade à aplicação, tenho que voltar o meu banco de dados por completo?

A resposta é simples, se traçou um bom planejamento e tem recursos de hardware disponível, poderá aplicar uma técnica apenas de recuperação da tablespace e seus respectivos datafiles, chamada TSPITR (Tablespace Point-in-Time Recovery), que pode ser realizado manualmente ou automatizado com RMAN, onde não é necessário voltar seu backup por completo, porém, é necessário uma máquina auxiliar nessa atividade ou espaço em disco suficiente na própria máquina que ocorreu o problema, com isso, podemos recuperar partes do banco de dados de forma completa e deixar a aplicação operante.

Backup por control file, é o bakcup de um dos principais arquivos do banco de dados, onde armazena todas as informações do banco de dados com checkpoint, valor de scn, origem dos datafiles, tablespaces, nome do banco de dados, backupsets e etc. Esse backup pode ser feito manualmente ou automático pelo RMAN ou até mesmo por um trace diretamente do SQL*PLUS, usando o comando ALTER DATABASE BACKUP CONTROLFILE TO TRACE.

Export do banco de dados, é uma espécie de backup lógico, ou seja, poderá realizar um backup completo ou por usuário do banco de dados, porém, muitos se enganam quando deixam apenas um EXPORT, ou apenas DMP (Dump) como é conhecido no mercado, pois o EXPORT não garante a segurança total dos dados e com isso poderá ter perda de dados, e geralmente para uma empresa isso não é muito bom. Basta analisar um simples exemplo prático.

Imagine que tenho um banco de dados que é atualizado todos os dias, com INSERT/DELETE/UPDATES diários, um bom e velho OLTP (Online Transaction Processs), e na minha estratégia de backup tenha apenas um Export (ou DMP, como preferir) realizado sempre ás 07:00Hs da manhã.

Em uma bela sexta-feira ás 17:45Hs da tarde, o servidor que hospeda esse banco de dados teve problemas nos discos internos, perdeu-se archived logs do dia e um maravilhoso “crash” na base. Sua recuperação ficou impossível, o que você tem na mão para salvar o mundo? Apenas um DMPzinho das 07:00Hs da manhã, e o que aconteceu com todas as movimentações das 07:00Hs até as 17:45Hs? Vão sumir? Você não tem archived logs e a base está totalmente inconsistente para recuperação, resultado final, muito café e cigarros para falar esse cenário com o seu gerente.

Isso é apenas um cenário que ocorre em muitas empresas, onde as Leis de Murphy podem ocorrer, e quando ocorre sua reputação pode estar em jogo. E pior, existem muitos ambientes que estão com esse cenário atualmente.

Arquivos de carga, é considerado backup, principalmente para ambiente de Data WareHouse onde existe uma alta volumetria de dados e os bancos de dados não trabalham em ARCHIVELOG, pois, como você poderia recuperar os dados que foi apagado acidentalmente nos dias 20 e 21 de uma tabela de FATO ou de alguma dimensão importante do seu DW? Com Mágica? Export poderia resolver o problema também, mas trazer um export FULL de um DW não seria muito legal (esperar cansa!), e nesse caso, como estamos falando de apenas 2 dias, porquê não os arquivos de carga desses dias! Usando o mesmo processo de ETL poderia refazer a carga e completar a tabela novamente com seus respectivos dados, em bem menos tempo.

Cópia fria de um banco de dados, é uma opção muito interessante para implementar na estratégia de backup da empresa onde tem bancos de dados praticamente aberto ao público, ou seja, até o porteiro sabe a senha do owner da aplicação e o estagiário treina seus primeiros comandos DML diretamente na base de produção, porque somente a produção tem uma volumetria para ele testar o tempo e a eficiência do seu DELETE.

E quando estamos falando de cópia fria, não precisa ser as práticas do “Old School”, baixa o banco de dados e CTRL+C e CTRL+V em todos os arquivos e copia para outra máquina, é uma solução também dependendo do ambiente, mas porquê não optar por um DUPLICATE DATABASE, usar um Data Guard (Lógico ou Físico), Stand-by database, ou um backup online na produção e restore em outra máquina, com o RMAN, isso é possível até entre diferentes plataformas, de um Linux para windows. Olha que maravilha! Desde jeito você consegue uma imagem da sua produção e consultar essa imagem para reparar os “ensinamentos” do estagiário na produção! Recomendação: Depois ensina o controle ROLLBACK! rs.

Cópia dos objetos do banco de dados, esse é um ponto interessante também, principalmente, quando sua empresa não tem definição de ambientes, como desenvolvimento, homologação e produção. Poucos DBAs se atentam nisso, mas quando é necessário voltar uma procedure que foi alterada em produção e essa alteração não ajudou em nada ou pior, só complicou as coisas! Qual a sua estratégia para voltar isso, montar um owner em alguma base de teste ou na sua própria máquina e realizar um IMPORT do owner da aplicação sem registros e posteriormente pegar o DDL da procedure? Pegar os DDL do desenvolvimento ou homologação? Ou mandar o desenvolvedor se virar? Quais as alternativas!

Para resolver esse simples probleminha, basta começar a realizar um backup lógico dos objetos do banco de dados, pode usar as próprias views do dicionário de dados do Oracle, como dba_source, dba_triggers, dba_views, dba_mviews e etc, usar o pacote DBMS_METADATA, gerar um DDL script com o Export ou até mesmo para os adeptos de programas gráficos como PL/SQL Developer, SQL Developer e TOAD gerar um “scriptão” a partir deles!

Nessa simples solução, que pode economizar tempo, menos estresse e agilizar o objeto correto ao banco de dados, vai gastar apenas tempo para preparar os scripts e posteriormente, realizar os agendamentos necessários e mandar para FITA, eles podem gerados em arquivos com os nomes e tipos dos objetos, um scripts completo do owner da aplicação com a data do backup e etc. Fica a gosto do cliente!

Percebeu que existem diversos tipos, formas, tamanhos, técnicas, soluções e práticas de backup, uma boa estratégia de backup varia muito conforme o ambiente e os recursos que a empresa oferece, e também as estratégias que o DBA irá implementar na empresa. O banco de dados Oracle oferece para você um leque de opções, basta saber aplicar essas opções. É igual ao antigo slogan do um ótimo produto da NESTLE.

“Existe 1001 maneiras de preparar sua Estratégia de backup, invente a sua!”

E Ficamos por aqui, dúvidas, críticas e sugestões, só entrar em contato.

Abraços,