SlideShare a Scribd company logo
1 of 17
Download to read offline
Migrando do Oracle para o
      PostgreSQL
Leonardo Medeiros Martins

 DBA PostgreSQL/Oracle
Agenda

   Pense bem antes de começar!

   Comparativo

   Ferramentas para migração

   Outras informações
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
Pense bem antes de começar!

   Custos

   Dificuldade

   Tempo

   Diferença entre camadas e os softwares

   Suporte
E continue pensando...

   Diferenças na sintaxe e funcionalidade

   Backup

   Testes

   Codificação de caracteres e Localização

   Diferença de Ocupação
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!
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.
Comparativo - Tipos
Oracle                         PostgreSQL

Varchar2                       Varchar, text

Number                         numeric, bigint, int, smallint, double
                               precision

clob, long                     varchar, text

nchar, nvarchar2, nclob        varchar, text

binary_float/binary_double     real/double precision

blob, raw, long raw            bytea (migração adicional)‫‏‬

date                           date, timestamp
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.
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.
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.
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.
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 quot;Oracle Dataguardquot;,           mas   esta   em
desenvolvimento, previsto para a versão 8.4
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
Referências
Oracle          http://www.oracle.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/

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
Contatos


Leonardo Medeiro Martins

leonardo@dbtn.com.br

(48) 9952-4558

More Related Content

Similar to Oracle T Opgsql

Oracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTIOracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTIFernando Ike
 
Migração de Oracle para PostgreSQL - FISL
Migração de Oracle para PostgreSQL - FISLMigração de Oracle para PostgreSQL - FISL
Migração de Oracle para PostgreSQL - FISLFabio Telles Rodriguez
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open sourceRodrigo Aurélio
 
Migrando de Oracle para PostgreSQL
Migrando de Oracle para PostgreSQLMigrando de Oracle para PostgreSQL
Migrando de Oracle para PostgreSQLFernando Ike
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na WebMeritt - Cada Aluno é Único
 
CouchDB vs Postgres em Rails
CouchDB vs Postgres em RailsCouchDB vs Postgres em Rails
CouchDB vs Postgres em RailsJuan Maiz
 
CouchDB vs PostgreSQL no Rails
CouchDB vs PostgreSQL no RailsCouchDB vs PostgreSQL no Rails
CouchDB vs PostgreSQL no RailsJohalf Farina
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a AspectosRicardo Terra
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPedro Fernandes Vieira
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalierGleicon Moraes
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universoelliando dias
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionaisRoberto Oliveira
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-ptPedro Sousa
 
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQLpgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQLRaphael Silva
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLgsroma
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03Ale Uehara
 

Similar to Oracle T Opgsql (20)

Oracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTIOracle para PostgreSQL: Conseguir migrar e não parar UTI
Oracle para PostgreSQL: Conseguir migrar e não parar UTI
 
Migração de Oracle para PostgreSQL - FISL
Migração de Oracle para PostgreSQL - FISLMigração de Oracle para PostgreSQL - FISL
Migração de Oracle para PostgreSQL - FISL
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
Migrando de Oracle para PostgreSQL
Migrando de Oracle para PostgreSQLMigrando de Oracle para PostgreSQL
Migrando de Oracle para PostgreSQL
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
 
Sgml
SgmlSgml
Sgml
 
CouchDB vs Postgres em Rails
CouchDB vs Postgres em RailsCouchDB vs Postgres em Rails
CouchDB vs Postgres em Rails
 
CouchDB vs PostgreSQL no Rails
CouchDB vs PostgreSQL no RailsCouchDB vs PostgreSQL no Rails
CouchDB vs PostgreSQL no Rails
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a Aspectos
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universo
 
Por que PostgreSQL?
Por que PostgreSQL?Por que PostgreSQL?
Por que PostgreSQL?
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQLpgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQL
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
 

Oracle T Opgsql

  • 1. Migrando do Oracle para o PostgreSQL
  • 2. Leonardo Medeiros Martins DBA PostgreSQL/Oracle
  • 3. Agenda  Pense bem antes de começar!  Comparativo  Ferramentas para migração  Outras informações
  • 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. Pense bem antes de começar!  Custos  Dificuldade  Tempo  Diferença entre camadas e os softwares  Suporte
  • 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. 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. 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.
  • 9. Comparativo - Tipos Oracle PostgreSQL Varchar2 Varchar, text Number numeric, bigint, int, smallint, double precision clob, long varchar, text nchar, nvarchar2, nclob varchar, text binary_float/binary_double real/double precision blob, raw, long raw bytea (migração adicional)‫‏‬ date date, timestamp
  • 10. 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.
  • 11. 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.
  • 12. 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.
  • 13. 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.
  • 14. 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 quot;Oracle Dataguardquot;, mas esta em desenvolvimento, previsto para a versão 8.4
  • 15. 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
  • 16. Referências Oracle http://www.oracle.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/ 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