solisc2009 migrando de oracle para postgresql
TRANSCRIPT
![Page 1: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/1.jpg)
Migrando do Oracle para o PostgreSQL
![Page 2: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/2.jpg)
Leonardo Medeiros Martins
DBA PostgreSQL/Oracle
![Page 3: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/3.jpg)
Agenda
Pense bem antes de começar!
Comparativo
Ferramentas para migração
Cases
Referências
![Page 4: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/4.jpg)
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
![Page 5: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/5.jpg)
Pense bem antes de começar!
Custos
Dificuldade
Tempo
Diferença entre camadas e os softwares
Suporte
![Page 6: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/6.jpg)
Diferenças na sintaxe e funcionalidade
Backup
Testes
Codificação de caracteres e Localização
Diferença de Ocupação
E continue pensando...
![Page 7: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/7.jpg)
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!
![Page 8: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/8.jpg)
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
Comparativo
![Page 9: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/9.jpg)
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!
Comparativo
![Page 10: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/10.jpg)
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.
Comparativo
![Page 11: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/11.jpg)
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.
As functions 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.
Comparativo – PL/SQL x PL/pgSQL
![Page 12: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/12.jpg)
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.
Comparativo – Armazenamento
![Page 13: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/13.jpg)
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.
Comparativo – Backup
![Page 14: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/14.jpg)
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.
![Page 15: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/15.jpg)
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
![Page 16: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/16.jpg)
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
![Page 17: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/17.jpg)
Yahoo – Base de 2 Penta!!!http://www.computerworld.com/s/article/9087918/Size_matters_Yahoo_claims_2_petabyte_database_is_world_s_biggest_busiest
Embrapahttp://www.infoteca.cnptia.embrapa.br/handle/CNPTIA/11982
Detran-CEhttp://softwarelivre.ceara.gov.br/noticias/detran-migra-banco-de-dados-para-software-livrehttp://www2.seplag.ce.gov.br/premio2008/projetos_filtro_detalhes_2008.asp?cdProjeto=121
OpenBravo ERPhttp://wiki.openbravo.com/wiki/ERP/2.50/Oracle_to_PostgreSQL_migration
Cases
![Page 18: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/18.jpg)
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
Referências
![Page 19: Solisc2009 Migrando de Oracle para Postgresql](https://reader036.vdocuments.pub/reader036/viewer/2022081803/5581df5cd8b42a75268b4ec0/html5/thumbnails/19.jpg)
Leonardo Medeiros Martins
E-mail: [email protected] e-mail/xmpp: [email protected]: martins_suportecelular: +55 (48) 9952-4558Blog http://leomedmar.wordpress.com
Contatos