Migrando do Oracle para o
      PostgreSQL
Leonardo Medeiros Martins

 DBA PostgreSQL/Oracle
Agenda

   Pense bem antes de começar!

   Comparativo

   Ferramentas para migração

   Cases

   Referências
Antes de começar!

   “Think Different” = Pense Diferente – Apple

   “Yes, We Can” = “Sim, nós podemos” – Barack Obama
...
Pense bem antes de começar!

   Custos

   Dificuldade

   Tempo

   Diferença entre camadas e os softwares

   Supor...
E continue pensando...

   Diferenças na sintaxe e funcionalidade

   Backup

   Testes

   Codificação de caracteres ...
E não podemos esquecer...
   Documentar, Registrar

   Do simples para Complexo

   Scripts em texto puro

   Importe ...
Comparativo
Preço


 Oracle – Enterprise Edition = US$ 47.500,00 – Por proc./Usuários ilimitados
 Oracle – Standard Editi...
Comparativo
   O que EnterpriseDB?
     O EnterpriseDB, versão proprietária do PostgreSQL, como CentOS e RedHat.
     Tem...
Comparativo
 No Oracle os catálogos SYS e SYSTEM equivalem ao pg_catalog e
information_schema no PostgreSQL.

 Não exist...
Comparativo – PL/SQL x PL/pgSQL

   O PostgreSQL possuem diversas extensões para outras linguagens, além de Java e C.

 ...
Comparativo – Armazenamento
Datafile no PostgreSQL = pasta que é gerenciada pelo
SGBD.

 O conceito de extensões e segme...
Comparativo – Backup
 O Redo no Oracle é semelhante ao WAL no
PostgreSQL.

 Conceito de DUMP, cópia de arquivos de dados...
Comparativo – Segurança
   GRANT e REVOKE são semelhante.

 SCHEMAS, ao criar deve-se definir o dono no PostgreSQL. Depo...
Comparativo – Cluster
 Um cluster do PostgreSQL é parecido com a primeira versão
feita para Oracle.

 O PgCluster é pare...
Ferramentas para migração
Ora2Pg, modulo escrito em Perl para exportar um schema
Oracle para um schema PostgreSQL compatí...
Cases
Yahoo – Base de 2 Penta!!!
http://www.computerworld.com/s/article/9087918/
Size_matters_Yahoo_claims_2_petabyte_data...
Referências
Oracle          http://www.oracle.com/
EnterpriseDB    http://www.enterprisedb.com/
PostgreSQL      http://www...
Contatos
            Leonardo Medeiros Martins

E-mail: leonardo@dbtn.com.br
e-mail/xmpp: leomedmar@gmail.com
skype: marti...
Upcoming SlideShare
Loading in …5
×

Solisc2009 Migrando de Oracle para Postgresql

1,560 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,560
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Solisc2009 Migrando de Oracle para Postgresql

  1. 1. Migrando do Oracle para o PostgreSQL
  2. 2. Leonardo Medeiros Martins DBA PostgreSQL/Oracle
  3. 3. Agenda  Pense bem antes de começar!  Comparativo  Ferramentas para migração  Cases  Referências
  4. 4. Antes de começar!  “Think Different” = Pense Diferente – Apple  “Yes, We Can” = “Sim, nós podemos” – Barack Obama  Pensando diferente, sim, nós podemos migrar do Oracle para PostgreSQL – Leonardo M. Martins
  5. 5. Pense bem antes de começar!  Custos  Dificuldade  Tempo  Diferença entre camadas e os softwares  Suporte
  6. 6. E continue pensando...  Diferenças na sintaxe e funcionalidade  Backup  Testes  Codificação de caracteres e Localização  Diferença de Ocupação
  7. 7. E não podemos esquecer...  Documentar, Registrar  Do simples para Complexo  Scripts em texto puro  Importe e migre uma coisa de cada vez  Logs durante todo o processo  Siga em frente somente se der certo, senão, volte aos passos anteriores!
  8. 8. Comparativo Preço Oracle – Enterprise Edition = US$ 47.500,00 – Por proc./Usuários ilimitados Oracle – Standard Edition = US$ 17.500,00 – Usuários ilimitados Oracle – Standard Edition = US$ 350,00 – Usuário nomeado (5 min.) = US$ 1.750,00 EnterpriseDB – Advanced Server = US$ 1.795,00 – 3 meses de suporte – 1 usuário PostgreSQL - Free
  9. 9. Comparativo  O que EnterpriseDB? O EnterpriseDB, versão proprietária do PostgreSQL, como CentOS e RedHat. Tem uma camada de compatibilidade com o Oracle que supostamente faz com que as aplicações clientes não precisem ser modificadas. Eles também tem um aplicativo que migra o seu banco Oracle para do EnterpriseDB. Podemos baixar a versão de demonstração deles, usar a ferramenta de migração, e da lá fazer um pg_dump do banco para usar em PostgreSQL. Ou você pode decidir que vale a pena, comprar uma licença Advanced Server, com suporte, etc & tal. Não é barato como vimos, quando comparamos com os valores do Oracle, fica bem interessante!
  10. 10. Comparativo  No Oracle os catálogos SYS e SYSTEM equivalem ao pg_catalog e information_schema no PostgreSQL.  Não existe a tabela DUAL no PostgreSQL, mas durante migrações é comum a sua criação para manter compatibilidade.  DBLink, criptografia, cube, XML, dentre outras funções avançadas não são nativas, mas podem ser implantadas, e possuem grande diferença da versão fornecida no Oracle.  Materialized views não existem no PostgreSQL, mas podem ser implementadas.
  11. 11. Comparativo – PL/SQL x PL/pgSQL  O PostgreSQL possuem diversas extensões para outras linguagens, além de Java e C.  Fato, no PostgreSQL não existem procedures, tão pouco packages.  Asfunctions não aceitam parâmetros com valores DEFAULT, mas assim como o Java podemos utilizar sobrecarga de método.  Cursores não são usados no PostgreSQL.  O corpo das functions são delimitadas por $ no PostgreSQL.  As triggers no PostgreSQL chamam UMA function.  Não é possível colocar COMMIT dentro de uma function.
  12. 12. Comparativo – Armazenamento Datafile no PostgreSQL = pasta que é gerenciada pelo SGBD.  O conceito de extensões e segmentos ainda não foi implementado no PostgreSQL.  Não é possível armazenar as áreas temporárias, em outros locais. Ficam no mesmo local do catálogo do sistema.
  13. 13. Comparativo – Backup  O Redo no Oracle é semelhante ao WAL no PostgreSQL.  Conceito de DUMP, cópia de arquivos de dados, Stand By é semelhante em ambos.  O PostgreSQL não possui ferramentas como FlashBack, RMAN, nativas, existem projetos alternativos.
  14. 14. Comparativo – Segurança  GRANT e REVOKE são semelhante.  SCHEMAS, ao criar deve-se definir o dono no PostgreSQL. Depois é igual entre os dois.  ROLE “connect” é definida no pg_hba.conf no PostgreSQL. (GROUPs)‫‏‬  ROLE “resource” no Oracle seria o privilégio para criar objetos num esquema do PostgreSQL.  Role DBA é no Oracle é ser superusuário do PostgreSQL.  Role SYS é no Oracle é ser o usuário POSTGRES no PostgreSQL.
  15. 15. Comparativo – Cluster  Um cluster do PostgreSQL é parecido com a primeira versão feita para Oracle.  O PgCluster é parecido ao RAC, e existem outros projetos que tem a mesma idéia.  Não existe um "Oracle Dataguard", mas esta em desenvolvimento, previsto para a versão 8.4
  16. 16. Ferramentas para migração Ora2Pg, modulo escrito em Perl para exportar um schema Oracle para um schema PostgreSQL compatível.  Orafce, modulo escrito em C, que implementa diversas funções Oracle no PostgreSQL.  Pg::snapshot, modulo escrito em Pl/Perl, que possibilita a criação de Materialized Views and Materialized View Logs, tanto no Oracle quanto no PostgreSQL
  17. 17. Cases Yahoo – Base de 2 Penta!!! http://www.computerworld.com/s/article/9087918/ Size_matters_Yahoo_claims_2_petabyte_database_is_world_s_biggest_busiest Embrapa http://www.infoteca.cnptia.embrapa.br/handle/CNPTIA/11982 Detran-CE http://softwarelivre.ceara.gov.br/noticias/detran-migra-banco-de-dados-para-software-livre http://www2.seplag.ce.gov.br/premio2008/projetos_filtro_detalhes_2008.asp?cdProjeto=121 OpenBravo ERP http://wiki.openbravo.com/wiki/ERP/2.50/Oracle_to_PostgreSQL_migration
  18. 18. Referências Oracle http://www.oracle.com/ EnterpriseDB http://www.enterprisedb.com/ PostgreSQL http://www.postgresql.org/ Ora2Pg http://pgfoundry.org/projects/ora2pg/ Orafce http://pgfoundry.org/projects/orafce/ Pg::Snapshot http://pgfoundry.org/projects/snapshot/ PgCluster http://pgfoundry.org/projects/pgcluster/ Projetos http://pgfoundry.org/ História de horror de Migração para PostgreSQL http://www.frankhilliard.com/horrorstory.cfm Migração http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#Oracle
  19. 19. Contatos Leonardo Medeiros Martins E-mail: leonardo@dbtn.com.br e-mail/xmpp: leomedmar@gmail.com skype: martins_suporte celular: +55 (48) 9952-4558 Blog http://leomedmar.wordpress.com

×