Migração colaborativa para
       PostgreSQL
        Leonardo Cezar
Motivação

●   Evolução no desenvolvimento de projetos de
    pequena porte
●   Reutilização de rotinas e processos
●   Unir os esforços de migração e
    desenvolvimento dentro das empresas
●   Compartilhar conhecimento e reduzir retrabalho
Por que PostgreSQL?
  suporte da comunidade extensível
 escalável Administração simples grandes
 volumes de dados segurança gratuito e
 livre licença adequada relacional MVCC
      LDAP over deployment custo
confiabilidade integridade estabilidade
 multiplataforma ACID Rules Integridade
    Referencial SSL Kerberos linguagens
 procedurais LDAP tipos   customizados
Processo de migração
●   Tipos de migração
       –   Migração de aplicação
       –   Migração de base de dados
       –   Migração de aplicação e base de dados
            (desenvolvimento)
Migração: Identificação

●   Informações sobre a infraestrutura
●   Cópia de segurança
●   Disponibilidade
●   Compatibilidade da aplicação
Migração: Planejamento

●   Documento de visão
       –   Informações sobre a aplicação
       –   Requisitos da aplicação
       –   Cenário de utilização de aplicação
●   Documento de escopo
●   Cronograma preliminar
Migração: Análise

●   Características da aplicação
●   Rastreabilidade de dependências
       –   Estudo preliminar (obter poucas informações)
       –   Análise completa (visões, SPs, JOBs, &c)
Migração: Execução
●   Migração de logins e usuários
●   Migração de DDL
●   Exportação de dados
●   Procedimentos armazenados
●   Views
●   Triggers
●   Jobs e Cargas
Migração: Ferramentas
●   Processo
       –   Eclipse EPF
●   Funcionalidades
       –   ora2pg
       –   mssql2pg
Ferramentas de apoio
●   Estrutura/Dados
       –   mssqltopg
       –   freetds
       –   SQLFairy
       –   dump2pg
●   Integração
       –   DBI Link
       –   dblink
5 Tipos de Projetos de software livre
         (por Josh Berkus)
Tipos de projetos

Solo
●   Poucos colaboradores
●   Derivação de outros projetos
●   Suporte imediato
●   Exemplos:
       –   apgdiff
       –   E-Maj
       –   pgloader
Tipos de projetos

Monarquia
●   Evolução do modelo Solo
●   Decisões realizadas pelos líderes
●   Geralmente mais formais
●   Muitos colaboradores
●   Exemplos
        –   pgBouncer
        –   pgsnmp
Tipos de projetos

Comunidade
●   Decisões baseadas na meritocracia e consenso
●   Suporte através de listas, fóruns, &c
●   Muitos contribuintes
●   Exemplos
        –   PostgreSQL
        –   Slony
        –   Pgpool
Tipos de projetos
Corporativo
●   Código liberado por empresa
●   Contribuição difícil
●   Maioria dos colaboradores são empregados
●   Normalmente bi-licenciado
●   Suporte através de parceiros
●   Exemplos
        –   skytools
        –   apgdiff
        –   edb-debugger
Tipos de projetos

Fundação
●   Último estágio da evolução de um projeto
●   Decisões formalizadas pelas necessidades
    estruturais
●   Suporte através de patrocinadores
●   Exemplo:
       –   Apache
       –   LibreOffice
Nem tudo são flores...
●   Cultura
●   Vícios
●   Ferramentas de modelagem
●   Ferramentas de administração
●   Capacitação da equipe
Repositórios

●   http://www.pgfoundry.org
●   http://projects.postgresql.org
●   http://www.pgxn.org
●   http://www.github.com
Dúvidas?
lhcezar@postgresql.org.br

Migracao colaborativa

  • 1.
    Migração colaborativa para PostgreSQL Leonardo Cezar
  • 2.
    Motivação ● Evolução no desenvolvimento de projetos de pequena porte ● Reutilização de rotinas e processos ● Unir os esforços de migração e desenvolvimento dentro das empresas ● Compartilhar conhecimento e reduzir retrabalho
  • 3.
    Por que PostgreSQL? suporte da comunidade extensível escalável Administração simples grandes volumes de dados segurança gratuito e livre licença adequada relacional MVCC LDAP over deployment custo confiabilidade integridade estabilidade multiplataforma ACID Rules Integridade Referencial SSL Kerberos linguagens procedurais LDAP tipos customizados
  • 4.
    Processo de migração ● Tipos de migração – Migração de aplicação – Migração de base de dados – Migração de aplicação e base de dados (desenvolvimento)
  • 5.
    Migração: Identificação ● Informações sobre a infraestrutura ● Cópia de segurança ● Disponibilidade ● Compatibilidade da aplicação
  • 6.
    Migração: Planejamento ● Documento de visão – Informações sobre a aplicação – Requisitos da aplicação – Cenário de utilização de aplicação ● Documento de escopo ● Cronograma preliminar
  • 7.
    Migração: Análise ● Características da aplicação ● Rastreabilidade de dependências – Estudo preliminar (obter poucas informações) – Análise completa (visões, SPs, JOBs, &c)
  • 8.
    Migração: Execução ● Migração de logins e usuários ● Migração de DDL ● Exportação de dados ● Procedimentos armazenados ● Views ● Triggers ● Jobs e Cargas
  • 9.
    Migração: Ferramentas ● Processo – Eclipse EPF ● Funcionalidades – ora2pg – mssql2pg
  • 10.
    Ferramentas de apoio ● Estrutura/Dados – mssqltopg – freetds – SQLFairy – dump2pg ● Integração – DBI Link – dblink
  • 11.
    5 Tipos deProjetos de software livre (por Josh Berkus)
  • 12.
    Tipos de projetos Solo ● Poucos colaboradores ● Derivação de outros projetos ● Suporte imediato ● Exemplos: – apgdiff – E-Maj – pgloader
  • 13.
    Tipos de projetos Monarquia ● Evolução do modelo Solo ● Decisões realizadas pelos líderes ● Geralmente mais formais ● Muitos colaboradores ● Exemplos – pgBouncer – pgsnmp
  • 14.
    Tipos de projetos Comunidade ● Decisões baseadas na meritocracia e consenso ● Suporte através de listas, fóruns, &c ● Muitos contribuintes ● Exemplos – PostgreSQL – Slony – Pgpool
  • 15.
    Tipos de projetos Corporativo ● Código liberado por empresa ● Contribuição difícil ● Maioria dos colaboradores são empregados ● Normalmente bi-licenciado ● Suporte através de parceiros ● Exemplos – skytools – apgdiff – edb-debugger
  • 16.
    Tipos de projetos Fundação ● Último estágio da evolução de um projeto ● Decisões formalizadas pelas necessidades estruturais ● Suporte através de patrocinadores ● Exemplo: – Apache – LibreOffice
  • 17.
    Nem tudo sãoflores... ● Cultura ● Vícios ● Ferramentas de modelagem ● Ferramentas de administração ● Capacitação da equipe
  • 18.
    Repositórios ● http://www.pgfoundry.org ● http://projects.postgresql.org ● http://www.pgxn.org ● http://www.github.com
  • 19.