SlideShare una empresa de Scribd logo
1 de 34
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.
Oracle to Postgres
Schema Migration
Hustle
Raghavendra Rao; Managing Consultant
Marc Linster; SVP, Product Development and
Support
1
Webinar Series
Jan 22 2020 How to monitor Postgres like a Pro
Feb 5 2020 Oracle to Postgres Migration Hustle
Feb 19 2020 Data Migration from Oracle to Postgres
March 4 2020 Using Terraform to deploy highly available Postgres
March 18 2020 5 things to know about Postgres.conf
2
Agenda
● Who is EDB?
● Migration Overview
● Migration Preliminary check
● Oracle vs PostgreSQL Compatibility differences
● Oracle schema migration hurdles
○ First, what schemas to target first
○ Schema objects Classification
○ Incompatibility challenges
● Tools
● Q & A
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.3
4
Get your EDB
Socks!
Ask a question and give us your
business address in the US - and
we will send you a pair of EDB
Socks!
WHO IS EDB?
A global leader in
open-source based Postgres
software and services
5
• Founded in 2004
• Recognized RDBMS leader by:
• Gartner
• Forrester
• Customer base > 4000
• 300+ employees
• Offices worldwide
• Major PostgreSQL community contributor
ONLY OPEN
SOURCE BASED
RDBMS IN
GARTNER MQ
EDB Recognized 7 Years
In A Row on Gartner’s
Magic Quadrant
6
CONFIDENTIAL © Copyright EnterpriseDB Corporation, 2020. All rights reserved.
7
Customers working SMARTER, reducing RISK and being more PRODUCTIVE with EDB.
OVER 4,000 CUSTOMERS
U.S Customers
EMEA Customers APAC Customers
102
of the
Fortune 500
337
of the Forbes
Global 2000
EDB OPEN SOURCE LEADERSHIP
NAMED EDB OPEN SOURCE COMMITTERS AND CONTRIBUTORS
8
● CORE TEAM ● MAJOR CONTRIBUTORS ● CONTRIBUTORS
Akshay
Joshi
Amul
Sul
Ashesh
Vashi
Dilip
Kumar
Jeevan
Ladhe
Mithun
Cy
Devrim
Gündüz
Amit
Kapila
Bruce
Momjian
Dave
Page
Robert
Haas
Ashutosh
Sharma
Rushabh
Lathia
- designates committers
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.9
Migration overview
Database Migration
It means moving definitions, data and stored procedures from
one platform to another. There are many reasons to move to a
different platform, it might be cost, support or so on.
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.10
Migration Preliminary Check
● Client
● Application/Data Access
● Database
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.11
Oracle vs PostgreSQL differences
• Oracle uses the proprietary "TNS" protocol
with the default TCP port 1521 and the OCI
library as native call interface
• Transactions are not auto committed.
• Supports all Isolation Levels
• Drivers: JDBC, ODBC, .NET and many more.
• Concept of Packages/Procedures/Global
• Supports many other languages
• Partitioning(Horizontal)
• Replication: Master-Master and Master-Slave
• Postgres uses its own "frontend/backend" protocol
with the default TCP port 5432 and the libpq library
as native call interface
• Transaction to control COMMIT/ROLLBACK should
start with BEGIN
• Supports all Isolation Level, but default to READ
COMMITTED, which is sufficient
• Drivers: JDBC, ODBC, .NET and very few other
drivers.
• No concept of Package/Global.
• Good set of languages are supported
• Declarative Partitioning(only Range and List)
• Replication: Only Master-Slave
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.12
Oracle Schema Migration Hurdles
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.13
First, Which Schemas to Target
● Good targets...
○ Choose the smallest schemas with few PL/SQL objects
○ Then choose the most representative, on the basis of the experience
○ Add on: if team having multiple database skill set will reduce the conversion human-days.
● More difficult targets....
○ Don't choose Oracle application databases, that are closely tied with OCI
○ Don’t choose application using proprietary software (like Oracle forms)
○ Don’t choose spatial schemas, they need a lot of manual work.
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.14
Schema Object Classification
● Every RDBMS offers the ability to store data and code objects. They are classified as
○ Storage Objects : Objects that holds the data(with reference integrity): Table, Constraint,
Index, Type, Sequence and Synonyms
○ Code Objects: Objects that holds program code to access/modify data: Views, Triggers,
Procedures, Functions, Packages
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.15
Incompatibility Challenges
● Schema
○ In Oracle, users and schemas are essentially the same thing. A user is the account used to
connect to a database, and a schema is the set of objects (tables, views, etc.) that belong to
that account.
○ In Postgres, users’ objects are created in a specific schema (or namespace). When the user
connects the default search_path is “$user,public” schema. “Public” is the default schema
assigned to a user.
■ User can create different schemas, no need to create separate users
■ Users can grant permission to create objects in one of his schema to some other user.
■ Allows flexibility to divide application logically.
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.16
Incompatibility Challenges...
● Identifiers
○ In Oracle, all identifiers are in UPPER CASE, unless quoted.
○ Postgres converts them to lower case, unless quoted. Identifiers in Postgres are case
insensitive, unless quoted.
■ If application quotes the identifiers then it might lead to some manual work at both the
ends.
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.17
Incompatibility Challenges...
● Storage Objects
○ Tables - Mostly compatible, except
■ Global Temporary Table (use Local Temp or Unlogged Tables)
■ KEEP/CACHE/IOT/EXTERNAL/COMPRESSED/CLUSTER/NESTED - They are normal
tables, and functionality need to be handled by Postgres supported modules.
■ Partition (Only Range/List supported)
○ Constraints
■ All constraints are supported(No foreign key support on Partition Table key)
○ Indexes
■ Most of the indexes are supported
■ Reverse Key(A functional based index can be used to reverse the order)
■ Global (Not yet supported)
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.18
Incompatibility Challenges...
● Storage Objects.. contd
○ Type
■ CREATE DOMAIN or CREATE TYPE with some limitations(Use ARRAYs)
○ Sequences
■ Oracle supports 2^63 as max value(PostgreSQL supports upto 2^63)
■ NOCACHE, NOORDER not supported
■ .nextval, .curval (need to call nextval(),currval() function on sequence name)
○ Synonyms
■ Not supported in PostgreSQL (use “search_path”)
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.19
Incompatibility Challenges...
● Data Types
Oracle PostgreSQL Comment
varchar,varchar2, nvarchar,
nvarchar2
varchar or text
char,nchar char
clob,long varchar or text
number bigint, int, smallint,
real, double
precision
Limited control of scale
binary_integer, binar_float integer, float
blog, raw, long raw bytea Size limitation
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.20
Incompatibility Challenges...
Oracle PostgreSQL Comment
Date Date or timestamp Postgres, returns timestamp with
date
Timestamp with time zone Timestamptz
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.21
Incompatibility Challenges...
● In Code objects
○ RETURN statement becomes RETURNS
○ EXECUTE IMMEDIATE becomes EXECUTE
○ SELECT becomes PERFORM
○ Functions
■ MUST choose a language
■ %TYPE and %ROWTYPE supported
■ cursor_name%ROWTYPE not yet supported; Use RECORD
○ Autonomous Transaction
■ use DBLINK module (slight performance overhead due to loopback connection)
○ COMMIT/ROLLBACK in PROCEDURE
■ Use EXCEPTION handling
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.22
Incompatibility Challenges...
● In Code objects
○ REVERSE LOOPs (must rewrite with start/end condition)
○ Packages
■ Use schema to group functions/procedures (no support for private variable/function)
■ No built-in package. Use Orafce library, which support some of the standard packages
(https://github.com/orafce/orafce)
○ Accessing Remote Objects
■ DBLINK module or Foreign Data Wrapper(oracle_fdw) to access any other database
○ Optimizer Hints
■ Postgres doesn’t have them, its discarded. No conversion required.
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.23
Incompatibility Challenges...
● In Code objects
○ Query Conversion
■ OUTER Joins(+) marks at the NULL augmented side - (Use FULL OUTER JOINS
or UNION)
■ Pseudocolumns
● ROWNUM - Use LIMIT clause in the query(SELECT * FROM table LIMIT 10)
● ROWID - Its ROW Physical Address in Oracle (CTID in PostgreSQL, use
ROW_NUMBER OVER() windows function)
■ Hierarchical Queries - START WITH… CONNECT BY
● Need to convert using CTE or Tablefunc module, which has support of LEVEL
and PATH
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.24
Incompatibility Challenges...
● In Code objects
○ Empty Strings vs NULL
■ In Oracle Empty String and NULL are treated as NULLs, but in PostgreSQL both are not
treated as NULL. (Need special attention of queries comparing empty strings.)
○ Usage of Oracle Built-in functions
■ NVL - Use COALESCE()
■ DECODE - Use CASE clause
■ SYSDATE - Use current_timestamp
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.25
Other option
● EDB Postgres Advanced Server
○ EDB has developed database compatibility for Oracle based on popular features across many
versions of Oracle. EDB Postgres Advanced Server database behave or produce the
identical result as they would in Oracle. It natively support some of the Oracle functionalities in
the database which makes migration exercise easy to migrate the existing Oracle Database
Objects as is and work with similar functionality and performance.
○ What all natively supported in EDB Postgres Advanced Server ?
■ All Data types (except BINARY_FLOAT, BINARY_INTEGER,.,..)
■ Sequences/Synonyms/Database Links
■ Partition/Sub-Partition
■ Some of standard Oracle built-in Packages and Functions
■ Security(DBMS_RLS/SQLProtect/Policies)
■ User defined Packages/Procedures/Type(UDT)
■ Supporting Drivers (JDBC, ODBC, .NET
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.26
Tools
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.27
Tools
● Assessment and Conversion Tools
○ Open Source
■ ora2pg (https://github.com/darold/ora2pg)
○ Free to use
■ AWS Schema Conversion Tool (https://aws.amazon.com/dms/schema-conversion-tool/)
■ EDB Migration Portal (https://www.enterprisedb.com/edb-postgres-migration-portal)
■ EDB Migration ToolKit (https://www.enterprisedb.com/downloads/edb-migration-toolkit)
(No Assessment)
● Migration Supporting tools
■ orafce - support only Packages/No Conversion (https://github.com/orafce/orafce)
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.28
Ora2Pg Sample Report
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.29
EDB Migration Portal Sample Report
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.30
AWS SCT Sample Report
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.31
Tools
Assessment
Migration of
data objects
Migration of
code objects
Migration
Data
Approach Target
EDB Migration Portal Use EDB
MTK
Native +
Transformation
Postgres
Advanced
Server
EDB MTK
Native Only Postgres
Advanced
Server
AWS SCT Transformation
Only
PostgreSQL
Ora2Pg Transformation
only
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.32
Overall Migration steps
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.33
QUESTIONS
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.
THANK YOU
info@enterprisedb.com
www.enterprisedb.com
34

Más contenido relacionado

La actualidad más candente

YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions Yugabyte
 
mysql 8.0 architecture and enhancement
mysql 8.0 architecture and enhancementmysql 8.0 architecture and enhancement
mysql 8.0 architecture and enhancementlalit choudhary
 
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdfOracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdfSrirakshaSrinivasan2
 
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...Amazon Web Services
 
Oracle data guard for beginners
Oracle data guard for beginnersOracle data guard for beginners
Oracle data guard for beginnersPini Dibask
 
Oracle Database Introduction
Oracle Database IntroductionOracle Database Introduction
Oracle Database IntroductionChhom Karath
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOpsSveta Smirnova
 
Oracle architecture with details-yogiji creations
Oracle architecture with details-yogiji creationsOracle architecture with details-yogiji creations
Oracle architecture with details-yogiji creationsYogiji Creations
 
[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google CloudPgDay.Seoul
 
MAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19cMAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19cMarkus Michalewicz
 
EDB Postgres DBA Best Practices
EDB Postgres DBA Best PracticesEDB Postgres DBA Best Practices
EDB Postgres DBA Best PracticesEDB
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresqlbotsplash.com
 
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...Andrew Lamb
 
Azure DataBricks for Data Engineering by Eugene Polonichko
Azure DataBricks for Data Engineering by Eugene PolonichkoAzure DataBricks for Data Engineering by Eugene Polonichko
Azure DataBricks for Data Engineering by Eugene PolonichkoDimko Zhluktenko
 
Oracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new featuresOracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new featuresPhilip Stoyanov
 
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudAmazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudNoritaka Sekiyama
 

La actualidad más candente (20)

YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions
 
mysql 8.0 architecture and enhancement
mysql 8.0 architecture and enhancementmysql 8.0 architecture and enhancement
mysql 8.0 architecture and enhancement
 
Oracle Data Guard による高可用性
Oracle Data Guard による高可用性Oracle Data Guard による高可用性
Oracle Data Guard による高可用性
 
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdfOracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
Oracle_Multitenant_19c_-_All_About_Pluggable_D.pdf
 
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...
Accelerate Oracle to Aurora PostgreSQL Migration (GPSTEC313) - AWS re:Invent ...
 
PostgreSQL replication
PostgreSQL replicationPostgreSQL replication
PostgreSQL replication
 
Oracle data guard for beginners
Oracle data guard for beginnersOracle data guard for beginners
Oracle data guard for beginners
 
Oracle Database Introduction
Oracle Database IntroductionOracle Database Introduction
Oracle Database Introduction
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
 
Oracle architecture with details-yogiji creations
Oracle architecture with details-yogiji creationsOracle architecture with details-yogiji creations
Oracle architecture with details-yogiji creations
 
[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud
 
MAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19cMAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19c
 
EDB Postgres DBA Best Practices
EDB Postgres DBA Best PracticesEDB Postgres DBA Best Practices
EDB Postgres DBA Best Practices
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
2022-06-23 Apache Arrow and DataFusion_ Changing the Game for implementing Da...
 
Postgresql
PostgresqlPostgresql
Postgresql
 
Azure DataBricks for Data Engineering by Eugene Polonichko
Azure DataBricks for Data Engineering by Eugene PolonichkoAzure DataBricks for Data Engineering by Eugene Polonichko
Azure DataBricks for Data Engineering by Eugene Polonichko
 
Oracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new featuresOracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new features
 
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudAmazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
 

Similar a Oracle to Postgres Schema Migration Guide

EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB
 
Expert Guide to Migrating Legacy Databases to Postgres
Expert Guide to Migrating Legacy Databases to PostgresExpert Guide to Migrating Legacy Databases to Postgres
Expert Guide to Migrating Legacy Databases to PostgresEDB
 
An Expert Guide to Migrating Legacy Databases to PostgreSQL
An Expert Guide to Migrating Legacy Databases to PostgreSQLAn Expert Guide to Migrating Legacy Databases to PostgreSQL
An Expert Guide to Migrating Legacy Databases to PostgreSQLEDB
 
Un guide complet pour la migration de bases de données héritées vers PostgreSQL
Un guide complet pour la migration de bases de données héritées vers PostgreSQLUn guide complet pour la migration de bases de données héritées vers PostgreSQL
Un guide complet pour la migration de bases de données héritées vers PostgreSQLEDB
 
Containerized MySQL OpenWorld talk
Containerized MySQL OpenWorld talkContainerized MySQL OpenWorld talk
Containerized MySQL OpenWorld talkPatrick Galbraith
 
Ledingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartLedingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartMukesh Singh
 
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQLEin Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQLEDB
 
BlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search FeedbackBlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search Feedbacksinfomicien
 
Big Data processing with Apache Spark
Big Data processing with Apache SparkBig Data processing with Apache Spark
Big Data processing with Apache SparkLucian Neghina
 
Conquering Data Migration from Oracle to Postgres
Conquering Data Migration from Oracle to PostgresConquering Data Migration from Oracle to Postgres
Conquering Data Migration from Oracle to PostgresEDB
 
PostgreSQL - Object Relational Database
PostgreSQL - Object Relational DatabasePostgreSQL - Object Relational Database
PostgreSQL - Object Relational DatabaseMubashar Iqbal
 
Apache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-AriApache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-AriDemi Ben-Ari
 
The Real Scoop on Migrating from Oracle Databases
The Real Scoop on Migrating from Oracle DatabasesThe Real Scoop on Migrating from Oracle Databases
The Real Scoop on Migrating from Oracle DatabasesEDB
 
ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)Logico
 
Custom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBCustom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBArangoDB Database
 
No sql bigdata and postgresql
No sql bigdata and postgresqlNo sql bigdata and postgresql
No sql bigdata and postgresqlZaid Shabbir
 
Benchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesBenchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesDoKC
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document StoreRui Quelhas
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13EDB
 
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analytics
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data AnalyticsSupersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analytics
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analyticsmason_s
 

Similar a Oracle to Postgres Schema Migration Guide (20)

EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to Postgres
 
Expert Guide to Migrating Legacy Databases to Postgres
Expert Guide to Migrating Legacy Databases to PostgresExpert Guide to Migrating Legacy Databases to Postgres
Expert Guide to Migrating Legacy Databases to Postgres
 
An Expert Guide to Migrating Legacy Databases to PostgreSQL
An Expert Guide to Migrating Legacy Databases to PostgreSQLAn Expert Guide to Migrating Legacy Databases to PostgreSQL
An Expert Guide to Migrating Legacy Databases to PostgreSQL
 
Un guide complet pour la migration de bases de données héritées vers PostgreSQL
Un guide complet pour la migration de bases de données héritées vers PostgreSQLUn guide complet pour la migration de bases de données héritées vers PostgreSQL
Un guide complet pour la migration de bases de données héritées vers PostgreSQL
 
Containerized MySQL OpenWorld talk
Containerized MySQL OpenWorld talkContainerized MySQL OpenWorld talk
Containerized MySQL OpenWorld talk
 
Ledingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartLedingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @Lendingkart
 
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQLEin Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
 
BlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search FeedbackBlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search Feedback
 
Big Data processing with Apache Spark
Big Data processing with Apache SparkBig Data processing with Apache Spark
Big Data processing with Apache Spark
 
Conquering Data Migration from Oracle to Postgres
Conquering Data Migration from Oracle to PostgresConquering Data Migration from Oracle to Postgres
Conquering Data Migration from Oracle to Postgres
 
PostgreSQL - Object Relational Database
PostgreSQL - Object Relational DatabasePostgreSQL - Object Relational Database
PostgreSQL - Object Relational Database
 
Apache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-AriApache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-Ari
 
The Real Scoop on Migrating from Oracle Databases
The Real Scoop on Migrating from Oracle DatabasesThe Real Scoop on Migrating from Oracle Databases
The Real Scoop on Migrating from Oracle Databases
 
ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)
 
Custom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBCustom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDB
 
No sql bigdata and postgresql
No sql bigdata and postgresqlNo sql bigdata and postgresql
No sql bigdata and postgresql
 
Benchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesBenchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetes
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document Store
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13
 
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analytics
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data AnalyticsSupersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analytics
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analytics
 

Más de EDB

Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSCloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSEDB
 
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr UnternehmenDie 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr UnternehmenEDB
 
Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube EDB
 
EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021EDB
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLEDB
 
Las Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLLas Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLEDB
 
NoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQLNoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQLEDB
 
Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?EDB
 
Data Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQLData Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQLEDB
 
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresPractical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresEDB
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINEDB
 
IOT with PostgreSQL
IOT with PostgreSQLIOT with PostgreSQL
IOT with PostgreSQLEDB
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLEDB
 
Psql is awesome!
Psql is awesome!Psql is awesome!
Psql is awesome!EDB
 
EDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJEDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJEDB
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesComment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesEDB
 
Cloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - ItalianoCloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - ItalianoEDB
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13EDB
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLEDB
 
Cloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJCloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJEDB
 

Más de EDB (20)

Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSCloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
 
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr UnternehmenDie 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
 
Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube
 
EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQL
 
Las Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLLas Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQL
 
NoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQLNoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQL
 
Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?
 
Data Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQLData Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQL
 
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresPractical Partitioning in Production with Postgres
Practical Partitioning in Production with Postgres
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAIN
 
IOT with PostgreSQL
IOT with PostgreSQLIOT with PostgreSQL
IOT with PostgreSQL
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
 
Psql is awesome!
Psql is awesome!Psql is awesome!
Psql is awesome!
 
EDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJEDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJ
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesComment sauvegarder correctement vos données
Comment sauvegarder correctement vos données
 
Cloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - ItalianoCloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - Italiano
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
 
Cloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJCloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJ
 

Último

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Último (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

Oracle to Postgres Schema Migration Guide

  • 1. © Copyright EnterpriseDB Corporation, 2020. All rights reserved. Oracle to Postgres Schema Migration Hustle Raghavendra Rao; Managing Consultant Marc Linster; SVP, Product Development and Support 1
  • 2. Webinar Series Jan 22 2020 How to monitor Postgres like a Pro Feb 5 2020 Oracle to Postgres Migration Hustle Feb 19 2020 Data Migration from Oracle to Postgres March 4 2020 Using Terraform to deploy highly available Postgres March 18 2020 5 things to know about Postgres.conf 2
  • 3. Agenda ● Who is EDB? ● Migration Overview ● Migration Preliminary check ● Oracle vs PostgreSQL Compatibility differences ● Oracle schema migration hurdles ○ First, what schemas to target first ○ Schema objects Classification ○ Incompatibility challenges ● Tools ● Q & A © Copyright EnterpriseDB Corporation, 2020. All rights reserved.3
  • 4. 4 Get your EDB Socks! Ask a question and give us your business address in the US - and we will send you a pair of EDB Socks!
  • 5. WHO IS EDB? A global leader in open-source based Postgres software and services 5 • Founded in 2004 • Recognized RDBMS leader by: • Gartner • Forrester • Customer base > 4000 • 300+ employees • Offices worldwide • Major PostgreSQL community contributor
  • 6. ONLY OPEN SOURCE BASED RDBMS IN GARTNER MQ EDB Recognized 7 Years In A Row on Gartner’s Magic Quadrant 6 CONFIDENTIAL © Copyright EnterpriseDB Corporation, 2020. All rights reserved.
  • 7. 7 Customers working SMARTER, reducing RISK and being more PRODUCTIVE with EDB. OVER 4,000 CUSTOMERS U.S Customers EMEA Customers APAC Customers 102 of the Fortune 500 337 of the Forbes Global 2000
  • 8. EDB OPEN SOURCE LEADERSHIP NAMED EDB OPEN SOURCE COMMITTERS AND CONTRIBUTORS 8 ● CORE TEAM ● MAJOR CONTRIBUTORS ● CONTRIBUTORS Akshay Joshi Amul Sul Ashesh Vashi Dilip Kumar Jeevan Ladhe Mithun Cy Devrim Gündüz Amit Kapila Bruce Momjian Dave Page Robert Haas Ashutosh Sharma Rushabh Lathia - designates committers
  • 9. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.9 Migration overview Database Migration It means moving definitions, data and stored procedures from one platform to another. There are many reasons to move to a different platform, it might be cost, support or so on.
  • 10. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.10 Migration Preliminary Check ● Client ● Application/Data Access ● Database
  • 11. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.11 Oracle vs PostgreSQL differences • Oracle uses the proprietary "TNS" protocol with the default TCP port 1521 and the OCI library as native call interface • Transactions are not auto committed. • Supports all Isolation Levels • Drivers: JDBC, ODBC, .NET and many more. • Concept of Packages/Procedures/Global • Supports many other languages • Partitioning(Horizontal) • Replication: Master-Master and Master-Slave • Postgres uses its own "frontend/backend" protocol with the default TCP port 5432 and the libpq library as native call interface • Transaction to control COMMIT/ROLLBACK should start with BEGIN • Supports all Isolation Level, but default to READ COMMITTED, which is sufficient • Drivers: JDBC, ODBC, .NET and very few other drivers. • No concept of Package/Global. • Good set of languages are supported • Declarative Partitioning(only Range and List) • Replication: Only Master-Slave
  • 12. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.12 Oracle Schema Migration Hurdles
  • 13. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.13 First, Which Schemas to Target ● Good targets... ○ Choose the smallest schemas with few PL/SQL objects ○ Then choose the most representative, on the basis of the experience ○ Add on: if team having multiple database skill set will reduce the conversion human-days. ● More difficult targets.... ○ Don't choose Oracle application databases, that are closely tied with OCI ○ Don’t choose application using proprietary software (like Oracle forms) ○ Don’t choose spatial schemas, they need a lot of manual work.
  • 14. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.14 Schema Object Classification ● Every RDBMS offers the ability to store data and code objects. They are classified as ○ Storage Objects : Objects that holds the data(with reference integrity): Table, Constraint, Index, Type, Sequence and Synonyms ○ Code Objects: Objects that holds program code to access/modify data: Views, Triggers, Procedures, Functions, Packages
  • 15. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.15 Incompatibility Challenges ● Schema ○ In Oracle, users and schemas are essentially the same thing. A user is the account used to connect to a database, and a schema is the set of objects (tables, views, etc.) that belong to that account. ○ In Postgres, users’ objects are created in a specific schema (or namespace). When the user connects the default search_path is “$user,public” schema. “Public” is the default schema assigned to a user. ■ User can create different schemas, no need to create separate users ■ Users can grant permission to create objects in one of his schema to some other user. ■ Allows flexibility to divide application logically.
  • 16. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.16 Incompatibility Challenges... ● Identifiers ○ In Oracle, all identifiers are in UPPER CASE, unless quoted. ○ Postgres converts them to lower case, unless quoted. Identifiers in Postgres are case insensitive, unless quoted. ■ If application quotes the identifiers then it might lead to some manual work at both the ends.
  • 17. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.17 Incompatibility Challenges... ● Storage Objects ○ Tables - Mostly compatible, except ■ Global Temporary Table (use Local Temp or Unlogged Tables) ■ KEEP/CACHE/IOT/EXTERNAL/COMPRESSED/CLUSTER/NESTED - They are normal tables, and functionality need to be handled by Postgres supported modules. ■ Partition (Only Range/List supported) ○ Constraints ■ All constraints are supported(No foreign key support on Partition Table key) ○ Indexes ■ Most of the indexes are supported ■ Reverse Key(A functional based index can be used to reverse the order) ■ Global (Not yet supported)
  • 18. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.18 Incompatibility Challenges... ● Storage Objects.. contd ○ Type ■ CREATE DOMAIN or CREATE TYPE with some limitations(Use ARRAYs) ○ Sequences ■ Oracle supports 2^63 as max value(PostgreSQL supports upto 2^63) ■ NOCACHE, NOORDER not supported ■ .nextval, .curval (need to call nextval(),currval() function on sequence name) ○ Synonyms ■ Not supported in PostgreSQL (use “search_path”)
  • 19. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.19 Incompatibility Challenges... ● Data Types Oracle PostgreSQL Comment varchar,varchar2, nvarchar, nvarchar2 varchar or text char,nchar char clob,long varchar or text number bigint, int, smallint, real, double precision Limited control of scale binary_integer, binar_float integer, float blog, raw, long raw bytea Size limitation
  • 20. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.20 Incompatibility Challenges... Oracle PostgreSQL Comment Date Date or timestamp Postgres, returns timestamp with date Timestamp with time zone Timestamptz
  • 21. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.21 Incompatibility Challenges... ● In Code objects ○ RETURN statement becomes RETURNS ○ EXECUTE IMMEDIATE becomes EXECUTE ○ SELECT becomes PERFORM ○ Functions ■ MUST choose a language ■ %TYPE and %ROWTYPE supported ■ cursor_name%ROWTYPE not yet supported; Use RECORD ○ Autonomous Transaction ■ use DBLINK module (slight performance overhead due to loopback connection) ○ COMMIT/ROLLBACK in PROCEDURE ■ Use EXCEPTION handling
  • 22. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.22 Incompatibility Challenges... ● In Code objects ○ REVERSE LOOPs (must rewrite with start/end condition) ○ Packages ■ Use schema to group functions/procedures (no support for private variable/function) ■ No built-in package. Use Orafce library, which support some of the standard packages (https://github.com/orafce/orafce) ○ Accessing Remote Objects ■ DBLINK module or Foreign Data Wrapper(oracle_fdw) to access any other database ○ Optimizer Hints ■ Postgres doesn’t have them, its discarded. No conversion required.
  • 23. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.23 Incompatibility Challenges... ● In Code objects ○ Query Conversion ■ OUTER Joins(+) marks at the NULL augmented side - (Use FULL OUTER JOINS or UNION) ■ Pseudocolumns ● ROWNUM - Use LIMIT clause in the query(SELECT * FROM table LIMIT 10) ● ROWID - Its ROW Physical Address in Oracle (CTID in PostgreSQL, use ROW_NUMBER OVER() windows function) ■ Hierarchical Queries - START WITH… CONNECT BY ● Need to convert using CTE or Tablefunc module, which has support of LEVEL and PATH
  • 24. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.24 Incompatibility Challenges... ● In Code objects ○ Empty Strings vs NULL ■ In Oracle Empty String and NULL are treated as NULLs, but in PostgreSQL both are not treated as NULL. (Need special attention of queries comparing empty strings.) ○ Usage of Oracle Built-in functions ■ NVL - Use COALESCE() ■ DECODE - Use CASE clause ■ SYSDATE - Use current_timestamp
  • 25. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.25 Other option ● EDB Postgres Advanced Server ○ EDB has developed database compatibility for Oracle based on popular features across many versions of Oracle. EDB Postgres Advanced Server database behave or produce the identical result as they would in Oracle. It natively support some of the Oracle functionalities in the database which makes migration exercise easy to migrate the existing Oracle Database Objects as is and work with similar functionality and performance. ○ What all natively supported in EDB Postgres Advanced Server ? ■ All Data types (except BINARY_FLOAT, BINARY_INTEGER,.,..) ■ Sequences/Synonyms/Database Links ■ Partition/Sub-Partition ■ Some of standard Oracle built-in Packages and Functions ■ Security(DBMS_RLS/SQLProtect/Policies) ■ User defined Packages/Procedures/Type(UDT) ■ Supporting Drivers (JDBC, ODBC, .NET
  • 26. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.26 Tools
  • 27. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.27 Tools ● Assessment and Conversion Tools ○ Open Source ■ ora2pg (https://github.com/darold/ora2pg) ○ Free to use ■ AWS Schema Conversion Tool (https://aws.amazon.com/dms/schema-conversion-tool/) ■ EDB Migration Portal (https://www.enterprisedb.com/edb-postgres-migration-portal) ■ EDB Migration ToolKit (https://www.enterprisedb.com/downloads/edb-migration-toolkit) (No Assessment) ● Migration Supporting tools ■ orafce - support only Packages/No Conversion (https://github.com/orafce/orafce)
  • 28. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.28 Ora2Pg Sample Report
  • 29. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.29 EDB Migration Portal Sample Report
  • 30. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.30 AWS SCT Sample Report
  • 31. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.31 Tools Assessment Migration of data objects Migration of code objects Migration Data Approach Target EDB Migration Portal Use EDB MTK Native + Transformation Postgres Advanced Server EDB MTK Native Only Postgres Advanced Server AWS SCT Transformation Only PostgreSQL Ora2Pg Transformation only
  • 32. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.32 Overall Migration steps
  • 33. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.33 QUESTIONS
  • 34. © Copyright EnterpriseDB Corporation, 2020. All rights reserved. THANK YOU info@enterprisedb.com www.enterprisedb.com 34