Posts Tagged ‘oracle’

Comentários iniciais sobre Oracle RAC

Monday, September 22nd, 2008

   Ultimamente tenho trabalhado mais com Oracle RAC do que PostgreSQL. Para quem não conhece, Oracle RAC é uma solução de cluster para banco de dados Oracle

   Nessas minhas últimas semanas de manutenção, minhas impressões iniciais são:
 

 1 - É uma caixa mágica que ninguém sabe como funciona por dentro.

2 - Os idiotas que desenvolveram não entendem porra nenhuma de System V.

3 - Heartbeat é para checar o estados dos nós de um cluster ou serviços, não para replicar dados dentro dele.

4 - Modificar o coreutils e incrementar biblioteca quer permite acesso como O_DIRECT é quase o mesmo que mandar o Sistema Operacional para o limbo, prá que um SO mesmo?

5 - OCFS (não o OCFS2) é uma bomba-relógio, se tem Oracle nele, tenha plano de saúde.

6 - Não adianta te enganarem, RAC não foi feito para trabalhar em rede WAN.

7 - Não se preocupe, alguns erro ORA-XXXX são considerados normais. (hã?) -

8 - Se sua rede não é confiável, esquece de usar RAC, ele irá cair e você demorará para entender onde está o problema. Na verdade, com um hardware intermediário ele já tem surtos psicóticos.

9 - Tenha uma bendita conta no Metalink, senão viverá menos dias diante ao caos.

10 - Se você não tem suporte nem da Oracle, nem Red Hat (Debian é mais rápido, quer apostar?), pode instalar em qualquer Linux decente que funciona igual ou mais rápido.

11 - Ainda bem que o PostgreSQL não é Oracle e não existe nenhum projeto estável que se inspire no RAC. :P

 

 

Obs: Convença-me que estou errado, ficarei feliz com opiniões divergentes. ;)

Entrevista com Leandro Dutra: Arquiteto de Dados

Monday, April 14th, 2008

   Estava precisando recomendar a contratação de um Arquiteto de Dados para uma instituição e estava faltando uma base mais sólida para sustentar a proposta de contratação. Decidi perguntar para o Leandro Dutra que é Arquiteto de Dados e no fim acabou virando uma bela de uma entrevista. Obrigado Leandro pela disposição em responder as perguntas. :)

   Na entrevista, usamos AD para Arquiteto de Dados e DBA para Administrador de Base de Dados.


1 - O que é um Arquiteto de Dados?

    A pessoa responsável pela arquitetura e administração dos dados de uma organização.
No caso, a arquitetura envolve desde a arquitetura de sistemas de bases de dados até a modelagem dos dados e sua manutenção; e a administração seria mais especificamente a manutenção dos modelos e dicionários de dados.

2 - Qual a interação de um Arquiteto de Dados e um DBA? Ou é a mesma coisa?

    Muitas vezes, em organizações menores ou menos estruturadas, a administração de dados é efetuada pelo Administrador de Bases de Dados. Mas normalmente, o DBA deve se ocupar da administração diária dos bancos de dados físicos e seu conteúdo, efetivamente uma administração dos Sistemas Gestores de Bases de Dados. Enquanto o AD deve se ocupar do projeto das bases de dados e sua estrutura lógica, não se envolvendo diretamente nos aspectos físicos.

3 - Com essa afirmação, é possível supor que o AD seria o chefe de DBA (vou manter a sigla por enquanto…)?

    Não, eles colaboram em níveis hierárquicos similares. Imagine um novo sistema.  O arquiteto de dados será responsável pelos aspectos lógicos, principalmente a modelagem da estrutura da base; o DBA participará do projeto físico, como questões de distribuição, processamento e armazenamento. Um não trabalha sem o outro, e enquanto o projeto lógico deveria teoricamente determinar o físico, restrições tecnológicas podem (embora indesejável) determinar aspectos do lógico.

4 - Como você afirmou acima, as vezes o DBA acaba executando algumas funções que estariam com AD, no Brasil tem mercado para um Arquiteto de Dados?

    Ainda restrito e subvalorizado, mas tem.  Empresas que têm na informação seu principal meio de trabalho costumam contratar ou formar um quando amadurecem.  Bancos, empresas de informação de crédito, seguradoras e até corretoras de seguros, mesmo fornecedores de programas (é o caso de meu empregador atual).

    É verdade que há retrocessos, como o advento da terceirização; assim, há o caso de uma multinacional fabril que terceirizou a mão de obra, de modo que a mesma vaga, que antes percebia determinada quantia CLT, hoje percebe a mesma quantia mas em regime PJ, sem correção significativa. Outro fator detrimental é o foco em produtos, não em conceitos e processos.  Assim, a mesma multinacional já deixou de contratar ótimos candidatos por falta de experiência em determinada marca de ferramenta de administração e diagramação, sendo que o candidato em questão tinha experiência suficiente em mais de uma ferramenta completamente equivalente.

    Resumindo, ainda é um mercado bastante imaturo, o que leva a situações como as recomendações do AD serem vencidas por meras impressões e preconceitos de pessoas sem experiência com dados, opinando simplesmente do ponto de vista de vícios de programação por exemplo.

5 - Então é possível afirma que para um Arquiteto de Dados não é necessário ter conhecimento em vários banco de dados?

    Em princípio não.  Entretanto, devido à imaturidade de vários SGBDs — citem-se por exemplo, mas não exaustivamente, suporte deficiente a tipos de dados em Oracle, MS SQL Server, Sybase e MySQL, e problemas graves de desempenho e consistência neste último —, muitas vezes é conveniente que o AD possa compreender essas especificidades e trabalhar com o DBA e os desenvolvedores para adaptar a arquitetura e o modelo de dados às circunstâncias tecnológicas.


6 - Não citou o PostgreSQL, ele é um boa referência para quem quer iniciar uma carreira como AD?

    Uma das melhores, no mesmo nível do IBM DB2.  São os SGBDs que têm o melhor suporte tanto ao padrão ISO SQL:2003 (o 2006 ainda não se fez sentir no dia-a-dia) quanto ao modelo relacional — ambos com restrições, mas ainda assim superiores a todos os concorrentes mais óbvios. Entretanto, sendo uma área de atuação eminentemente lógica, recomenda-se, mais que determinados SGBDs, o futuro AD tenha um bom domínio tanto do modelo relacional, quanto de outros aspectos da teoria da gestão de bases de dados, e inclusive do padrão ISO SQL:2003 em si.  As referências padrão, pela atenção que dão aos aspectos lógicos, são as obras de Christopher J DATE, embora polêmicas em vários aspectos que chegam a suscitar reações apaixonadas contra e a favor de vários praticantes de prestígio.


7 - Esse é um ponto interessante, pois reflete em alguns aspectos teóricos que envolvem o DBA. Um AD necessariamente deve ser um DBA também?

    Não necessariamente.  Entretanto, justamente devido a todas as restrições tecnológicas atuais, é interessante que o AD tenha a capacidade de adaptar-se a circunstâncias, o que pode ser facilitado se ele tiver tido alguma experiência com aspectos físicos, seja como DBA, programador, analista de sistemas, SysAdmin…

    Isso lhe dará mais empatia com posições eventualmente divergentes na negociação de projetos de arquitetura de dados e modelagem, e possibilidade de dialogar com os problemas físicos reais ou imaginários freqüentemente trazidos por outros profissionais.


8 - Pensando que uma empresa irá contratar uma consultoria para área de banco de dados, o que a mesma economizará contratando um Arquiteto de Dados ao invés de ter somente DBA´s?

    Nem tudo na vida são economias.  Embora o principal foco do AD não seja monetário, porque o resultado do seu trabalho dificilmente &
eacute; mensurável nesses termos, há muitos erros de projeto caros que podem ser minorados pela presença de um AD, ou pelo menos de um DBA com preocupação pelos aspectos lógicos. Por exemplo, um dos aspectos do trabalho do AD é a normalização, que evita duplicação de dados que normalmente torna o desenvolvimento do sistema como um todo, mesmo na fase de programação, mais complexo, frágil, lento e arriscado, podendo também gerar custos de manutenção e operação como freqüentes anomalias de atualização, consumo exagerado de recursos de sistema, problemas de escalabilidade &c.

    Um exemplo foi uma operadora de telecomunicações brasileira que tinha um consultor ao custo de ao menos nove mil dólares por mês (valor mínimo cobrado pela consultoria, possivelmente muito mais naquele caso específico) para resolver casos de inconsistência de dados.  Além desse gasto muito simples e mensurável, essas inconsistências geravam grandes problemas de insatisfação de clientes.  Não é difícil imaginar alguns desses problemas tornando-se questões mesmo de relações públicas, no caso de uma operadora de serviços públicos.

    Há que se considerar também a questão da eficiência: embora alguns DBAs possam desempenhar funções de AD com razoável competência, será um uso ineficiente do recurso humano, que perderá foco em sua função tradicional sem realmente se concentrar na de AD. O outro lado da moeda é que, devido ao baixo nível intelectual de muitas equipes de desenvolvimento impedi-las de compreender questões lógicas de conseqüências não inteiramente óbvias e imediatas, o peso da opinião de um DBA praticante pode ser maior que a de um AD.  Entretanto, uma equipe com esse problema certamente terá muitos outros problemas igualmente óbvios e imediatos.

9 - Para finalizar, dicas rápidas para quem quer trabalhar como AD?

1) Concentrar-se num sólido conhecimento conceitual;
2) Abstrair problemas específicos de SGBDs, mesmo que depois sejam necessárias adaptações;
3) Desenvolver uma visão ampla, que contemple desde as regras de negócio (== restrições de integridade) até questões de desempenho e manutenção da aplicação.

Certificação PostgreSQL, agora deve ser oficial

Wednesday, January 30th, 2008

   As pessoas sempre perguntam porque o PostgreSQL não tem uma Certificação Oficial. Sentindo que essa demanda está mais presente alguns desenvolvedores iniciaram as discussões sobre uma Certificação Oficial PostgreSQL, Joshua Drake postou na lista de discussão Advocacy do PostgreSQL o início do debate.

   É muito provável que siga o caminho da BSD Certification na parte em que a comunidade se organizou para criar a Certificação. Continuo não gostando da idéia de certificação, ela dificilmente consiguirá mensurar a qualidade de um profissional, mas ter uma certificação pode abrir portas mas isso não quer dizer que é consegue manter as portas abertas. Um membro ativo de um grupo de usuário é mais fácil mensurar sua qualidade analisando respostas de listas de discussão, reportes de erro, tradução, patches, etc. Aí vem os questionamentos…

- Porra, o mercado não é assim do jeito que você fala, os caras querem diploma. Como eles irão saber se você sabe?

   Quem disse que o cara que tem certificação sabe realmente do produto/solução?

- Ele estudou para passar!

   Sim, a maior parte estuda o tal de Actual Test, especializado em certificações. Logo terá muitas pessoas que passarão na certificação PostgreSQL estudando as respostas do Actual Test, você fará duas ou três perguntas mais técnicas e a pessoa não conseguirá responder, parecido com algumas pessoas com certificação OCA (Oracle Certified Associate) como cachorro saber miar.

   O mercado de TI  é viciado em soluções proprietárias e seus modelos de negócio, não tenho ilusão que isso mudará rápido, mas terá mais espaço e valor aqueles que realmente entende mais de um produto/solução baseado no seu conhecimento

   Se for levar a sério certificação para banco de dados, pode basear-se no padrão SQL-ANSI 2003, os banco de dados em Software Livre/Código Aberto já tem muitas funções implementadas. Teria uma Primeira Certificação fortemente baseada no que os principais bancos livres (PostgreSQL, MySQL e Firebird) tem implementado da SQL-ANSI 2003 e ter Certificações mais avançadas específicas para cada Banco de Dados. Este seria um modelo interessante da certificação BSD, unir os Banco de Dados Livres em torno de uma certificação, os benefícios gerados favoreceriam eles perante a concorrência com os Banco de Dados Proprietários.

  Ok, pronto para a pancadaria. :)

PostgreSQL a cada dia com a performance mais próxima ao Oracle

Tuesday, December 18th, 2007

    O Josh Berkus publicou em seu blog alguns meses atrás o primeiro grande benchmark de PostgreSQL usando o SpecJ, o resultado deste era que o PostgreSQL estava muito próximo do Oracle usando hardwares (equipamentos) equivalentes. Nesta comparação a Sun com o PostreSQL conseguiu 778.14 JOpS@Standard enquanto o HP usando Oracle conseguiu 874.17 JOpS@Standard, comparando o teste com PostgreSQL fica 11% atrás mas a Sun fez outro teste usando Sun System Application Server 9.1 que tem como base no Glassfish que é o Servidor de Aplicação (Application Server) em Código Aberto da Sun a diferença de performance cai para 7% porque o resultado desse teste foi de 813.73 JOpS@Standard.

   Ainda não existe um teste somente de banco de dados com o PostgreSQL usando os testes de TPC mas isso em breve deve acontecer se acontecerem mais testes com SpecJ. Com a chegada do PostgreSQL 8.3, atualmente em Beta4, o desempenho será melhor já que áreas críticas como o autovacuum e o checkpoint tiveram modificações significativas que melhoram a perfomance do PostgreSQL em mais ou menos 15%, claro que tiveram outras modificações mas as duas são mais nítidas para quem não tem envolvimento direto no desenvolvimento do PostgreSQL como eu. Quem sabe um próximo resultado no SpecJ o PostgreSQL consiga uns 900 JOpS@Standard. :)

The Open Virtual Machine Format

Wednesday, October 31st, 2007

   Essa semana entrei no site do Xen e notei uma pequena diferença, ele não está mais num subdomínio da Xensource, recentemente adquirida pela Citrix, agora está num domínio .org, mais precisamente no www.xen.org. Além das mudanças visuais (para melhor), fuçando um pouco no site olha que coisa interessante: The Open Virtual Machine Format.

   Nunca tinha ouvido falar que as duas (Xensource e Vmware) brigassem ferozmente como as outras empresas que concorrem com a mesma tecnologia mas o interessante que a equipe do desenvolvimento do Xen e do Vmware estão trabalhando em conjunto com seus parceiros comerciais (IBM, Microsoft, Dell e HP) num formato aberto de virtualização, mais precisamente num hypervisor comum. Por enquanto a especificação está na versão 0.9 mas como as coisas andam bem agitadas no mundo da virtualização, a versão 1.0 já deve estar logo por aí. Pode-se ler a especificação do site do vmware aqui  ou no site da Citrix/Xensource aqui

  Lembro que uns dois anos (não achei a notícia referente) o pessoal da Oracle estava pedindo educadamente que os times do Vmware e Xen trabalhassem numa estrutura comum no kernel do Linux, não sei se foi por causa da Oracle mas logo depois teve o anúncio que o Vmware, Xen e KVM usaria o paravirts-op que estava entrando no kernel linux (2.6.20).

 

Debian mais perto do Oracle: oracleasm

Monday, September 10th, 2007

Calma, calma…

Não existe nenhum acordo Debian e Oracle. Na verdade  este post é só  para citar que na Lista de Discussão Debian-Devel o Bjoern Boschman postou sua intenção de manter um módulo no kernel Linux relacionado o Oracle ASM (Automatic Storage Manager). Mais detalhes no post da lista. ;)

Teste de estresse entre software livre e soluções proprietárias

Tuesday, August 28th, 2007

Tem muitas coisas que contribuimos que às vezes envergonhamos de ter realizado. Tem outras que adoramos ter participado, dentre essas , uma que tive o privilégio de contribuir foi num teste de estresse inédito comparando plataforma e soluções diferentes. No teste fora comparado a plataforma alta (Mainframe, Z/OS, DB2 e Websphere), plataforma média (Sparc, Solaris, Oracle e SunONE) e plataforma baixa (x86-64, Debian, PostgreSQL, Jboss) analisando performance e custo total de cada solução. O artigo saiu na Vivaolinux, leitura mais que recomendada. ;)

Comparativo das diferentes implementações SQL

Sunday, August 5th, 2007

A linguagem SQL tem diversos dialetos ou seja, diversas implementações da suas especificações como linguagem. As especificações mais atuais estão num conjunto chamado SQL:2003 que praticamente todos os banco de dados ainda não implementaram por completo.

Uma das tarefas difíceis para quem desenvolve aplicações é em qual base de dados irá desenvolver: Oracle, MySQL, PostgreSQL, DB2, Firebird, etc. Recentemente,  Troels Arvin escreveu em seu site um comparativo entre os banco de dados mais populares, no seu site a comparação é padrão SQL, PostgreSQL, DB2, MS SQL Server, MySQL e Oracle. Leitura mais que recomendada. =)

Atraso na edição da SQL Magazine

Wednesday, August 30th, 2006

A SQL Magazine teve problemas na gráfica e a edição com o artigo escrito pelo telles e eu sobre Migração de Oracle para PostgreSQL saiu nas bancas no nesta semana do dia 30/08. Agora podem comprar e tacar fogo nela. =)

Oracle, Debian e viagens

Wednesday, May 3rd, 2006

Hoje instalei pela 15ª o Oracle num Debian, o Oracle é considerado um banco de dados de médio porte e é sempre um saco configurar ele, seja numa distribuição homologada pela Oracle ou qualque outra. A última versão está bem mais fácil de instalar e agora que o Oracle Personal Edition está empacotado, tem facilitado muito a instalação. Mas quem acredita que a instalação é a parte mais complicada, pode esperar que vem mais problemas. Uma das partes complicadas é o Tunning pq no Oracle o tunning está em muitas partes, nas consultas SQL, otimização de tabelas, índices, sistema de arquivo, parametros de kernel, aplicação desenvolvida para Oracle. Enfim, é muita coisa para uma pessoa só. Eu acho mais díficil administrar um servidor de email que um Oracle, MaxDB ou DB2 olhando somente a parte do servidor. Mas se olharmos o conjunto, pode ter certeza que a quantidade de variáveis envolvidas beiram o absurdo (Teoria do Caos) e o sangue-frio do Administrador (DBA ou não) beiram a insanidade. Geralmente os problemas de lentidão relacionados à banco de dados estão na aplicação envolvida do que no servidor do banco de dados. Principalmente quando usam o banco de dados com mero repositório de informação, sem nenhuma inteligência (regra de negócios) nele. Se usassem esse recurso, provavelmente 90% dos problemas de lentidão relacionadas ao banco de dados serial resolvidos. Confesso que é um universo fascinante e que é ainda é mercado para desbravar Banco de Dados, Mineração de Dados, BPMS, Banco de Dados Distribuídos, Replicação. Ultimamente essa área tem me interessado muito, mais que ajudar o Debian (gosto muito do projeto) ou trabalhar como Administrador de Rede ou Sistemas. Uma das grandes problemáticas neste momento é além de obter a informação, como interpretar e disponibilizar a informação de maneira legível para qualquer, isso é que chamam de Arquitetos da Informação. O problema de gostar dessa área é que boa parte do que faço hoje será passada mas gostaria muito de ainda continuar mexendo em código-fonte, dando contribuições pontuais como faço hoje com openvpn-admin. Enfim, está chegando o momento de faze a curva do rio, espero que a jangada aguente. =)