SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler 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

   Cases

   Referências
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
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
   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
 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 – 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 "Oracle Dataguard",           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
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
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
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

Mais conteúdo relacionado

Mais procurados

Boas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosBoas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosJuliano Atanazio
 
Postgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F CPostgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F CRibamar Sousa
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesRosicleia Frasson
 
PostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicaçõesPostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicaçõesFernando Ike
 
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)Aryel Tupinambá
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaEduardo Bregaida
 
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...Aryel Tupinambá
 

Mais procurados (10)

Boas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosBoas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de Dados
 
Por que PostgreSQL?
Por que PostgreSQL?Por que PostgreSQL?
Por que PostgreSQL?
 
Postgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F CPostgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F C
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
 
PostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicaçõesPostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicações
 
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
Postgre sql
Postgre sqlPostgre sql
Postgre sql
 
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
PHP Conference 2014: Uma string em dez milhões de documentos em menos de um s...
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 

Semelhante a Solisc2009 Migrando de Oracle para Postgresql

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
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfArleiEvaristo
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineFrederico Maia Arantes
 
Funcionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLFuncionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLMatheus Espanhol
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMFábio Rehm
 
Apresentação TDC 2018 - Go e Banco de Dados
Apresentação TDC 2018 - Go e Banco de DadosApresentação TDC 2018 - Go e Banco de Dados
Apresentação TDC 2018 - Go e Banco de DadosMarcelo Krüger
 
Skytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxySkytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxyFernando Ike
 
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
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
ODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasCaio Lima
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2Flávio Lisboa
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia J Chaves Silva
 
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFabio Telles Rodriguez
 
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
 

Semelhante a Solisc2009 Migrando de Oracle para Postgresql (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
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdf
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App Engine
 
Funcionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLFuncionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQL
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORM
 
Apresentação TDC 2018 - Go e Banco de Dados
Apresentação TDC 2018 - Go e Banco de DadosApresentação TDC 2018 - Go e Banco de Dados
Apresentação TDC 2018 - Go e Banco de Dados
 
Java no Google App Engine - TDC2011
Java no Google App Engine - TDC2011Java no Google App Engine - TDC2011
Java no Google App Engine - TDC2011
 
NOSQL - Uma real alternativa
NOSQL - Uma real alternativaNOSQL - Uma real alternativa
NOSQL - Uma real alternativa
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Skytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxySkytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxy
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
ODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasODI SERIES - Melhores Práticas
ODI SERIES - Melhores Práticas
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
Jpa, hibernate and jpql
Jpa, hibernate and jpqlJpa, hibernate and jpql
Jpa, hibernate and jpql
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia
 
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
 
PostgreSQL Conceitos e aplicações
PostgreSQL  Conceitos e aplicaçõesPostgreSQL  Conceitos e aplicações
PostgreSQL Conceitos e aplicações
 
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
 

Solisc2009 Migrando de Oracle para Postgresql

  • 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  Cases  Referências
  • 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 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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