solisc2009 migrando de oracle para postgresql

19
Migrando do Oracle para o PostgreSQL

Upload: leonardo-martins

Post on 18-Jun-2015

1.364 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Solisc2009 Migrando de Oracle para Postgresql

Migrando do Oracle para o PostgreSQL

Page 2: Solisc2009 Migrando de Oracle para Postgresql

Leonardo Medeiros Martins

DBA PostgreSQL/Oracle

Page 3: Solisc2009 Migrando de Oracle para Postgresql

Agenda

Pense bem antes de começar!

Comparativo

Ferramentas para migração

Cases

Referências

Page 4: Solisc2009 Migrando de Oracle para Postgresql

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Leonardo Medeiros Martins

E-mail: [email protected] e-mail/xmpp: [email protected]: martins_suportecelular: +55 (48) 9952-4558Blog http://leomedmar.wordpress.com

Contatos