SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
CopyrightŠ2016 NTT corp. All Rights Reserved.
Migration from Oracle to PostgreSQL
- The problems and the solutions -
Kazuki Uehara
NTT OSS Center
March 19, 2016
Copyright(c)2016 NTT Corp. All Rights Reserved.
2CopyrightŠ2016 NTT corp. All Rights Reserved.
• Self Introduction
• Introduction of Today's topics
• Problems about Database migration.
• OSS Products that support the Database
migration
• Conclusion
Agenda
3CopyrightŠ2016 NTT corp. All Rights Reserved.
• Kazuki Uehara
• From Japan
• Hobby
• Travelling by bicycle
• Taking pictures
• Work
• technical support
• technical consulting
• functional verification and performance evaluation
• Products
• PostgreSQL
• pgpool-II、Slony-I
Who am I?
4CopyrightŠ2016 NTT corp. All Rights Reserved.
• Who we are?
• NTT(Nippon Telegraph and Telephone Corporation)
• National flagship carrier in Japan
• What NTT OSS Center is doing?
• Promotes the adoption of OSS by the group companies
• Total support
• support desk, Introduction support, Product maintenance
• R&D
• developing OSS and related tools with the communities
• Deals with about 60 OSS products.
About us
NTT group
subsidiary
about 900 companies
NTT
NTT OSS Center
5CopyrightŠ2016 NTT corp. All Rights Reserved.
• The world's most advanced OSS DBMS.
• Continued featuere/performance
improvement by the community.
We involve in PostgreSQL
600 systems
for the last seven years.
Number of adoptions of PostgreSQL
in the group companies
year
6CopyrightŠ2016 NTT corp. All Rights Reserved.
PostgreSQL vs Oracle
PostgreSQL 9.5 Oracle 12c
SQL ○ (ISO SQL 2011) ○ (ISO SQL 2011)
stored procedure ○ (PL/pgsql,Java,perl,...) ○ (PL/sql,Java,...)
trigger ○ ○
Online Backup ○ ○
partitionig ○ ○
Replication
○
(Synchronous/Asynchronous)
○
(Synchronous/Asynchronous)
HA Cluster ○ (pacemaker,pgpool-II,...) ○ (VCS, MSCS,...)
clustered systems with
shared disk storage
× ○ (RAC)
License BSD
Named User Plus License
/ Processor Lincense
License Fee ○ free of charge × Compensation
• No big difference.
• You can use PostgreSQL at many systems.
7CopyrightŠ2016 NTT corp. All Rights Reserved.
• Focus on Database migration technique from
Oracle to PostgreSQL.
• What is system migration?
• Migration is the process of transferring the system and
data to another environment.
• Three categories of system migration:
• rehost ・・・To replace only platform hardware
• rewrite ・・・To replace OS and programing languages
• rebuild ・・・Remake the entire system
• Database migration is needed in 'rewrite' or 'rebuild'.
Today's topics
1. Problems in the Database migration
2. How you can solve them
8CopyrightŠ2016 NTT corp. All Rights Reserved.
• Introduction
• Today's topic
• Problem about Database migration
• Why you need Database migration?
• The items to be considered for the Database migration
• Issues on Database migration
• OSS Products that support the DB migration
• Conclusion
9CopyrightŠ2016 NTT corp. All Rights Reserved.
• Your system is obsolete
• Support of HW expired.
• Maintenance costs rise due to aging of equipment.
• Your Database is expensive or poorly operating
• You want to cut the license cost
• You want to improve performance of middleware.
• You can downsize HW.
• You want to use new features.
• You found your commercial Database was over spec
• didn't use the proper functionalities of the commercial
product.
Why you need Database migration?
10CopyrightŠ2016 NTT corp. All Rights Reserved.
The items to be considered for the Database
migration
AP Server
1. Logical design of DB
• ER Diagram
2. Physical design of DB
• arrangement of the data
3. Data
• dump, restore
4. Operation procedures
• maintenance tool (backup,
batch)
5. SQL used in application
• the dedicated SQL of
commercial product.
DB Server
DB
(Oracle → PostgreSQL)
Logical
design
Physical
design
application
SQL a
SQL b
…
data
Client /
Web
DataBase
Administrator
Operationnal
procedures
entity
attribute
table
index
columnrelationship
…
…
1 2
5
3
4
11CopyrightŠ2016 NTT corp. All Rights Reserved.
The items to be considered for the Database
migration
AP Server
1. Logical design of DB
• ER Diagram
2. Physical design of DB
• arrangement of the data
3. Data
• dump, restore
4. Operation procedures
• maintenance tool (backup,
batch)
5. SQL used in application
• the dedicated SQL of
commercial product.
DB Server
DB
(Oracle → PostgreSQL)
Logical
design
Physical
design
application
SQL a
SQL b
…
data
Client /
Web
DataBase
Administrator
Operationnal
procedures
entity
attribute
table
index
columnrelationship
…
…
1 2
5
3
4
12CopyrightŠ2016 NTT corp. All Rights Reserved.
1. It will require significant cost to estimate
for the migration of SQL.
• The migration cost go up when we spend too much
time on estimation.
• You can provide the rough estimate in order to reduce
cost.
2. It will require significant cost to modify
incompatible SQL.
• You have to find incompatible SQL from a lot of
sources. In addition, you have to consider for each how
should you modify.
What is the problems?
The risk of losing profits on migration exists.
13CopyrightŠ2016 NTT corp. All Rights Reserved.
• This is sample source for Oracle.
• If you use it on PostgreSQL, what should you modify?
• There are three places in this source that require to
modify.
What kind of SQL should you modify?
import java.sql.*;
import java.util.*;
public class test02 {
String sqlString = "DELETE mytbl";
public ResultSet testMethod() throws SQLException {
ResultSet rs = stmt.execute(sqlString);
ResultSet rs2= stmt.executeQuery("SELECT sysdate FROM dual");
return rs;
}
}
14CopyrightŠ2016 NTT corp. All Rights Reserved.
• This is sample source for Oracle.
• If you use it on PostgreSQL, what should you modify?
• There are three places in this source that require to
modify.
What kind of SQL should you modify?
import java.sql.*;
import java.util.*;
public class test02 {
String sqlString = "DELETE mytbl";
public ResultSet testMethod() throws SQLException {
ResultSet rs = stmt.execute(sqlString);
ResultSet rs2= stmt.executeQuery("SELECT sysdate FROM dual");
return rs;
}
}
DELETE statement requires FROM clause in PostgreSQL.
15CopyrightŠ2016 NTT corp. All Rights Reserved.
• This is sample source for Oracle.
• If you use it on PostgreSQL, what should you modify?
• There are three places in this source that require to
modify.
What kind of SQL should you modify?
import java.sql.*;
import java.util.*;
public class test02 {
String sqlString = "DELETE mytbl";
public ResultSet testMethod() throws SQLException {
ResultSet rs = stmt.execute(sqlString);
ResultSet rs2= stmt.executeQuery("SELECT sysdate FROM dual");
return rs;
}
}
DELETE statement requires FROM clause in PostgreSQL.
PostgreSQL doesn't have sysdate.
16CopyrightŠ2016 NTT corp. All Rights Reserved.
• This is sample source for Oracle.
• If you use it on PostgreSQL, what should you modify?
• There are three places in this source that require to
modify.
What kind of SQL should you modify?
import java.sql.*;
import java.util.*;
public class test02 {
String sqlString = "DELETE mytbl";
public ResultSet testMethod() throws SQLException {
ResultSet rs = stmt.execute(sqlString);
ResultSet rs2= stmt.executeQuery("SELECT sysdate FROM dual");
return rs;
}
}
DELETE statement requires FROM clause in PostgreSQL.
PostgreSQL doesn't have sysdate.
It doesn't exist DUAL table in PostgreSQL
17CopyrightŠ2016 NTT corp. All Rights Reserved.
• Introduction
• Today's topic
• Problem about Database migration
• OSS Products that support the Database
migration
• db_syntax_diff
• orafce
• Case study
• Conclusion
18CopyrightŠ2016 NTT corp. All Rights Reserved.
• Two OSS products as solutions.
• db_syntax_diff
• This tool was made by us as migration supporting tool.
• Extracts incompatible SQL from application's source of
Oracle.
• Using this tool, anyone can be easily review source of
application.
• We can review in a relatively short time even for large
scale systems.
• orafce
• This is contrib module for PostgreSQL.
• It is an emulation tool for PostgreSQL to use
compatibility functions and operators with Oracle
RDBMS.
To solve the problem …
19CopyrightŠ2016 NTT corp. All Rights Reserved.
An overall outline of db_syntax_diff
src
db_syntax_diff
XML Output file
• This file is XML format.
Outline of processing
• to do parsing using original parser.
• draw a comparison between the results of
parsing and the contents of dictionary file.
dictionary
file What is dictionary file?
• The list of incompatible 'SQL'.
• You can modify this file.
srcsrc
Input files
• You can input single file or directory.
• C source(ProC), Java source, JSP source, SQL file
20CopyrightŠ2016 NTT corp. All Rights Reserved.
• Install the required package using the yum.
• expand the files got from GitHub.
• set the environment variable.
How to use db_syntax_diff 1/4
# yum install perl perl-XML-SAX.noarch xalan-j2 perl-Parse-Yapp
perl-XML-NamespaceSupport.noarch perl-XML-LibXML.x86_64
$ tar -xvf db_syntax_diff.tar.gz
$ vi ~/.bash_profile
export CLASSPATH=/usr/share/java/xalan-j2.jar:$CLASSPATH
export CLASSPATH=/usr/share/java/xalan-j2-serializer.jar:$CLASSPATH
export PATH=$HOME/db_syntax_diff/src:$PATH
export PERL5LIB=$HOME/db_syntax_diff/src/lib
$ source ~/.bash_profile
※If you use xalan-java 2.7.1 later, you have to set CLASSPATH for serializer.jar.
21CopyrightŠ2016 NTT corp. All Rights Reserved.
How to use db_syntax_diff 2/4
$ db_syntax_diff.pl --help
db_syntax_diff version 2.0
The SQL analyzer for converting to PostgreSQL.
Usage:db_syntax_diff.pl [-e encodingname][-d definition-file]
[-i inputsourcedir[,suffix1[,suffix2]...] ]
[-o outfile][-f filterword][-m modename]
[-I includedir[,includedir1[,includedir2]...]][-h][-v [loglevel]]
[inputfilename]...
-e encodingname, --encoding=encodingname File encoding. The value which can be
specified is "utf8" and "shiftjis" and "eucjp". [default: eucjp]
-d definition-file, --define=definition-file Definition-file file name.
-i inputsourcedir, --input=inputsourcedir Input-file directry.
-o outfile, --output=outfile Output-file file name. [default: STDOUT]
-f filterword, --filter=filterword Pattern filterword. The value which can be specified is
"oracle8" and "oracle8i". [default: ALL]
-m modename, --mode=modename File type of source file. The value which can be
specified is "c" and "sql" and "cpp" and "java". [default: java]
-I includedir, --Include=includedir Add the directory includedir to the list of directories
to be searched for header files. [default: ./]
-h, --help Print usage and exit.
-v, --verbose Print progress of the practice to STDERR. The value which can be
specified is "1" and "3" and "5" and "7". [default: none]
inputfilename Input-file file name.
22CopyrightŠ2016 NTT corp. All Rights Reserved.
• I introduce the result as a simple example.
• target file : sample.java
• Run this command.
How to use db_syntax_diff 3/4
$ db_syntax_diff.pl -m java -e utf8 ~/tmp/sample.java -o ~/result.xml
import java.sql.*;
import java.util.*;
public class test02 {
String sqlString = "DELETE mytbl";
public ResultSet testMethod() throws SQLException {
ResultSet rs = stmt.execute(sqlString);
ResultSet rs2= stmt.executeQuery("SELECT sysdate FROM dual");
return rs;
}
}
23CopyrightŠ2016 NTT corp. All Rights Reserved.
• This is a part of result.
How to use db_syntax_diff 4/4
<?xml version="1.0" encoding="UTF-8"?>
<REPORT file_number="1" start_time="2016/2/25 19:12:06" finish_time="2016/2/25 19:12:07">
<METADATA>
<PARAMETER>-m java -e utf8 /home/uehara/tmp/sample.java -o /home/uehara/result.xml</PARAMETER>
</METADATA>
<FILE name="/home/uehara/tmp/sample.java" string_item_number="3" report_item_number="4" item_number="7">
<STRING_ITEM line="testMethod:sqlString:7">
<TARGET>DELETE mytbl</TARGET>
</STRING_ITEM>
ポポポ
<REPORT_ITEM id="SQL-107-008" type="SQL" level="LOW2">
<SOURCE>
<CLASS>test02</CLASS>
<METHOD>testMethod</METHOD>
<LINE>5</LINE>
<COLUMN>7</COLUMN>
<VARIABLE>sqlString</VARIABLE>
</SOURCE>
<STRUCT>!(?:[^ÂĽwÂĽd_]|ÂĽA)FROM(?:[^ÂĽwÂĽd_]|ÂĽz)</STRUCT>
<TARGET>DELETE mytbl</TARGET>
<MESSAGE>FROMの省略は未サポートです。</MESSAGE>
</REPORT_ITEM>
<REPORT_ITEM id="SQL-119-706" type="SQL" level="LOW1">
ポポポ
Which file?
What kind of incompatible SQL?
Simple report is output.
What type? How difficult?
What line/column?
What SQL statement?
24CopyrightŠ2016 NTT corp. All Rights Reserved.
dictionary
file
Specifications of the wrapper tool
src
db_syntax_diff
Output files
• This file is XML format.
• It is aggregated in 4 patterns.
Outline of processing
• This tool operates db_syntax_diff.
• In addition, This tool makes CSV files
from XML file.
srcsrc
Input files
• You can input single file or directory.
csv
XML
db_syntax_diff_wrapper
configuration
file
25CopyrightŠ2016 NTT corp. All Rights Reserved.
• result.csv
• file path of target file
• Number of line
• Number of columns
• ID (db_syntax_diff)
The results of wrapper tool
• The classification
• Difficulty of migration
• simple report
• target query
• Middle
• You can't simple migrate.
• High
• migration is very difficult.
• Low1
• It's only necessary to delete or replace.
• Low2
• You can't replace, but migration is easy.
Difficulty
26CopyrightŠ2016 NTT corp. All Rights Reserved.
• You can reduce the modification cost of SQL.
• The number of incompatible SQL decrease by using
orafce.
• Installation Instructions (Only 3 steps)
1. You can get a RPM file from PostgreSQL.org.
• http://yum.postgresql.org/9.5/redhat/rhel-7-
x86_64/repoview/orafce95.html
• Latest version(3.2.1) has been published.
2. Install orafce RPM.
3. After, you just run a query "CREATE EXTENSION
orafce".
How to use orafce
# rpm -ivh orafce95-3.2.1-1.rhel7.x86_64.rpm
Updating / installing...
1:orafce95-3.2.1-1.rhel7 ################################# [100%]
27CopyrightŠ2016 NTT corp. All Rights Reserved.
A simple example
-bash-4.2$ psql postgres
psql (9.5.1)
Type "help" for help.
postgres=# CREATE TABLE bar(i int,v VARCHAR2(20));
ERROR: type "varchar2" does not exist
LINE 1: CREATE TABLE bar(i int,v VARCHAR2(20));
^
postgres=#postgres=# CREATE EXTENSION orafce;
CREATE EXTENSION
postgres=#postgres=# CREATE TABLE bar(i int,v VARCHAR2(20));
CREATE TABLE
postgres=#postgres=# ÂĽd bar
Table "public.bar"
Column | Type | Modifiers
--------+--------------+-----------
i | integer |
v | varchar2(20) |
postgres=#
28CopyrightŠ2016 NTT corp. All Rights Reserved.
A simple example
-bash-4.2$ psql postgres
psql (9.5.1)
Type "help" for help.
postgres=# CREATE TABLE bar(i int,v VARCHAR2(20));
ERROR: type "varchar2" does not exist
LINE 1: CREATE TABLE bar(i int,v VARCHAR2(20));
^
postgres=#postgres=# CREATE EXTENSION orafce;
CREATE EXTENSION
postgres=#postgres=# CREATE TABLE bar(i int,v VARCHAR2(20));
CREATE TABLE
postgres=#postgres=# ÂĽd bar
Table "public.bar"
Column | Type | Modifiers
--------+--------------+-----------
i | integer |
v | varchar2(20) |
postgres=#
PostgreSQL doesn't have
data type 'VARCHAR2' .
29CopyrightŠ2016 NTT corp. All Rights Reserved.
A simple example
-bash-4.2$ psql postgres
psql (9.5.1)
Type "help" for help.
postgres=# CREATE TABLE bar(i int,v VARCHAR2(20));
ERROR: type "varchar2" does not exist
LINE 1: CREATE TABLE bar(i int,v VARCHAR2(20));
^
postgres=#postgres=# CREATE EXTENSION orafce;
CREATE EXTENSION
postgres=#postgres=# CREATE TABLE bar(i int,v VARCHAR2(20));
CREATE TABLE
postgres=#postgres=# ÂĽd bar
Table "public.bar"
Column | Type | Modifiers
--------+--------------+-----------
i | integer |
v | varchar2(20) |
postgres=#
PostgreSQL doesn't have
data type 'VARCHAR2' .
You can use
data type 'VARCHAR2'
in PostgreSQL.
30CopyrightŠ2016 NTT corp. All Rights Reserved.
IT infrastructureClient
SW
Web/AP/DB
Job Management/Backup
Other system
Server Enclosure
Case study 1/3
• Billing system
• A managing system of business contract information
• Migration from commercial product to RHEL / Apache /
mod_jk / JBoss EAP / PostgreSQL
intracompany
network
intracompany
network
target number of files Number of lines
SQL/DDL
about 740 files about 250KLJava
Pro*C
Scale of Database migration
31CopyrightŠ2016 NTT corp. All Rights Reserved.
• We judged that there are not big problem in
database migration by using db_syntax_diff.
• We extracted 10000 pieces of incompatible SQL.
• But difficulty of alomost the whole incompatible SQL
was Low1 or Low2.
Case study 2/3
# difficulty SQL/DDL Java Pro*C
1 Low1 4,186 1 11
2 Low2 5,361 798 94
3 Middle 20 0 0
4 High 0 0 0
total 9,567 799 105
tool's output
• Low1
• It's only necessary to
delete or replace.
• Low2
• You can't replace, but
migration is easy.
• Middle
• You can't simple migrate.
• High
• migration is very difficult.
32CopyrightŠ2016 NTT corp. All Rights Reserved.
• We can reduce the number of incompatible
SQL by orafce.
• In this case, it can reduce to 7000.
• Based on our own experience, PostgreSQL
can use 73% of Oracle's SQL by orafce
Case study 3/3
33CopyrightŠ2016 NTT corp. All Rights Reserved.
• The migration of SQL is the most difficult
process in Database migration.
1. It will require significant cost to estimate for the
migration of SQL.
2. It will require significant cost to modify incompatible
SQL.
• These issues can be solved by db_syntax_diff
and orafce.
• Try Database migration, don’t hesitate.
Conclusion
• If you have interest, please help the development of
db_syntax_diff.
• To start with translate manual into English.
34CopyrightŠ2016 NTT corp. All Rights Reserved.
Thank you!

Weitere ähnliche Inhalte

Was ist angesagt?

[EPPG] Oracle to PostgreSQL, Challenges to Opportunity
[EPPG] Oracle to PostgreSQL, Challenges to Opportunity[EPPG] Oracle to PostgreSQL, Challenges to Opportunity
[EPPG] Oracle to PostgreSQL, Challenges to OpportunityEqunix Business Solutions
 
How to Migrate from Oracle to EDB Postgres
How to Migrate from Oracle to EDB PostgresHow to Migrate from Oracle to EDB Postgres
How to Migrate from Oracle to EDB PostgresAshnikbiz
 
Oracle to Azure PostgreSQL database migration webinar
Oracle to Azure PostgreSQL database migration webinarOracle to Azure PostgreSQL database migration webinar
Oracle to Azure PostgreSQL database migration webinarMinnie Seungmin Cho
 
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
 
Oracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesOracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesBobby Curtis
 
Oracle Database Migration to Oracle Cloud Infrastructure
Oracle Database Migration to Oracle Cloud InfrastructureOracle Database Migration to Oracle Cloud Infrastructure
Oracle Database Migration to Oracle Cloud InfrastructureSinanPetrusToma
 
Stumbling stones when migrating from Oracle
 Stumbling stones when migrating from Oracle Stumbling stones when migrating from Oracle
Stumbling stones when migrating from OracleEDB
 
PostgreSQL for Oracle Developers and DBA's
PostgreSQL for Oracle Developers and DBA'sPostgreSQL for Oracle Developers and DBA's
PostgreSQL for Oracle Developers and DBA'sGerger
 
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
 
database migration simple, cross-engine and cross-platform migrations with ...
database migration   simple, cross-engine and cross-platform migrations with ...database migration   simple, cross-engine and cross-platform migrations with ...
database migration simple, cross-engine and cross-platform migrations with ...Amazon Web Services
 
Migrate from Oracle to Amazon Aurora using AWS Schema Conversion Tool & AWS D...
Migrate from Oracle to Amazon Aurora using AWS Schema Conversion Tool & AWS D...Migrate from Oracle to Amazon Aurora using AWS Schema Conversion Tool & AWS D...
Migrate from Oracle to Amazon Aurora using AWS Schema Conversion Tool & AWS D...Amazon Web Services
 
Architect’s Open-Source Guide for a Data Mesh Architecture
Architect’s Open-Source Guide for a Data Mesh ArchitectureArchitect’s Open-Source Guide for a Data Mesh Architecture
Architect’s Open-Source Guide for a Data Mesh ArchitectureDatabricks
 
Migrating Databases to the Cloud: Introduction to AWS DMS - SRV215 - Chicago ...
Migrating Databases to the Cloud: Introduction to AWS DMS - SRV215 - Chicago ...Migrating Databases to the Cloud: Introduction to AWS DMS - SRV215 - Chicago ...
Migrating Databases to the Cloud: Introduction to AWS DMS - SRV215 - Chicago ...Amazon Web Services
 
Oracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsOracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsAnil Nair
 
Migrating Oracle to Aurora PostgreSQL Utilizing AWS Database Migration Servic...
Migrating Oracle to Aurora PostgreSQL Utilizing AWS Database Migration Servic...Migrating Oracle to Aurora PostgreSQL Utilizing AWS Database Migration Servic...
Migrating Oracle to Aurora PostgreSQL Utilizing AWS Database Migration Servic...Amazon Web Services
 
Azure Database Services for MySQL PostgreSQL and MariaDB
Azure Database Services for MySQL PostgreSQL and MariaDBAzure Database Services for MySQL PostgreSQL and MariaDB
Azure Database Services for MySQL PostgreSQL and MariaDBNicholas Vossburg
 
DevOps for Databricks
DevOps for DatabricksDevOps for Databricks
DevOps for DatabricksDatabricks
 
A Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and HudiA Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and HudiDatabricks
 

Was ist angesagt? (20)

[EPPG] Oracle to PostgreSQL, Challenges to Opportunity
[EPPG] Oracle to PostgreSQL, Challenges to Opportunity[EPPG] Oracle to PostgreSQL, Challenges to Opportunity
[EPPG] Oracle to PostgreSQL, Challenges to Opportunity
 
How to Migrate from Oracle to EDB Postgres
How to Migrate from Oracle to EDB PostgresHow to Migrate from Oracle to EDB Postgres
How to Migrate from Oracle to EDB Postgres
 
Oracle to Azure PostgreSQL database migration webinar
Oracle to Azure PostgreSQL database migration webinarOracle to Azure PostgreSQL database migration webinar
Oracle to Azure PostgreSQL database migration webinar
 
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
 
Oracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesOracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best Practices
 
Oracle Database Migration to Oracle Cloud Infrastructure
Oracle Database Migration to Oracle Cloud InfrastructureOracle Database Migration to Oracle Cloud Infrastructure
Oracle Database Migration to Oracle Cloud Infrastructure
 
Stumbling stones when migrating from Oracle
 Stumbling stones when migrating from Oracle Stumbling stones when migrating from Oracle
Stumbling stones when migrating from Oracle
 
PostgreSQL for Oracle Developers and DBA's
PostgreSQL for Oracle Developers and DBA'sPostgreSQL for Oracle Developers and DBA's
PostgreSQL for Oracle Developers and DBA's
 
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 ...
 
database migration simple, cross-engine and cross-platform migrations with ...
database migration   simple, cross-engine and cross-platform migrations with ...database migration   simple, cross-engine and cross-platform migrations with ...
database migration simple, cross-engine and cross-platform migrations with ...
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Migrate from Oracle to Amazon Aurora using AWS Schema Conversion Tool & AWS D...
Migrate from Oracle to Amazon Aurora using AWS Schema Conversion Tool & AWS D...Migrate from Oracle to Amazon Aurora using AWS Schema Conversion Tool & AWS D...
Migrate from Oracle to Amazon Aurora using AWS Schema Conversion Tool & AWS D...
 
Architect’s Open-Source Guide for a Data Mesh Architecture
Architect’s Open-Source Guide for a Data Mesh ArchitectureArchitect’s Open-Source Guide for a Data Mesh Architecture
Architect’s Open-Source Guide for a Data Mesh Architecture
 
Migrating Databases to the Cloud: Introduction to AWS DMS - SRV215 - Chicago ...
Migrating Databases to the Cloud: Introduction to AWS DMS - SRV215 - Chicago ...Migrating Databases to the Cloud: Introduction to AWS DMS - SRV215 - Chicago ...
Migrating Databases to the Cloud: Introduction to AWS DMS - SRV215 - Chicago ...
 
Oracle Cloud Infrastructure
Oracle Cloud InfrastructureOracle Cloud Infrastructure
Oracle Cloud Infrastructure
 
Oracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsOracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret Internals
 
Migrating Oracle to Aurora PostgreSQL Utilizing AWS Database Migration Servic...
Migrating Oracle to Aurora PostgreSQL Utilizing AWS Database Migration Servic...Migrating Oracle to Aurora PostgreSQL Utilizing AWS Database Migration Servic...
Migrating Oracle to Aurora PostgreSQL Utilizing AWS Database Migration Servic...
 
Azure Database Services for MySQL PostgreSQL and MariaDB
Azure Database Services for MySQL PostgreSQL and MariaDBAzure Database Services for MySQL PostgreSQL and MariaDB
Azure Database Services for MySQL PostgreSQL and MariaDB
 
DevOps for Databricks
DevOps for DatabricksDevOps for Databricks
DevOps for Databricks
 
A Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and HudiA Thorough Comparison of Delta Lake, Iceberg and Hudi
A Thorough Comparison of Delta Lake, Iceberg and Hudi
 

Andere mochten auch

Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)Gabriele Bartolini
 
Key Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to PostgresKey Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to PostgresEDB
 
(Ab)using 4d Indexing
(Ab)using 4d Indexing(Ab)using 4d Indexing
(Ab)using 4d IndexingPGConf APAC
 
Big Data and PostgreSQL
Big Data and PostgreSQLBig Data and PostgreSQL
Big Data and PostgreSQLPGConf APAC
 
PostgreSQL 9.6 Performance-Scalability Improvements
PostgreSQL 9.6 Performance-Scalability ImprovementsPostgreSQL 9.6 Performance-Scalability Improvements
PostgreSQL 9.6 Performance-Scalability ImprovementsPGConf APAC
 
Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!PGConf APAC
 
Query Parallelism in PostgreSQL: What's coming next?
Query Parallelism in PostgreSQL: What's coming next?Query Parallelism in PostgreSQL: What's coming next?
Query Parallelism in PostgreSQL: What's coming next?PGConf APAC
 
Lessons PostgreSQL learned from commercial databases, and didn’t
Lessons PostgreSQL learned from commercial databases, and didn’tLessons PostgreSQL learned from commercial databases, and didn’t
Lessons PostgreSQL learned from commercial databases, and didn’tPGConf APAC
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PGConf APAC
 
Use Case: PostGIS and Agribotics
Use Case: PostGIS and AgriboticsUse Case: PostGIS and Agribotics
Use Case: PostGIS and AgriboticsPGConf APAC
 
How to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'rollHow to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'rollPGConf APAC
 
PostgreSQL on Amazon RDS
PostgreSQL on Amazon RDSPostgreSQL on Amazon RDS
PostgreSQL on Amazon RDSPGConf APAC
 
There is Javascript in my SQL
There is Javascript in my SQLThere is Javascript in my SQL
There is Javascript in my SQLPGConf APAC
 
PostgreSQL Rocks Indonesia
PostgreSQL Rocks IndonesiaPostgreSQL Rocks Indonesia
PostgreSQL Rocks IndonesiaPGConf APAC
 
Go Faster With Native Compilation
Go Faster With Native CompilationGo Faster With Native Compilation
Go Faster With Native CompilationPGConf APAC
 
PostgreSQL: Past present Future
PostgreSQL: Past present FuturePostgreSQL: Past present Future
PostgreSQL: Past present FuturePGConf APAC
 
Swapping Pacemaker Corosync with repmgr
Swapping Pacemaker Corosync with repmgrSwapping Pacemaker Corosync with repmgr
Swapping Pacemaker Corosync with repmgrPGConf APAC
 
PostgreSQL Enterprise Class Features and Capabilities
PostgreSQL Enterprise Class Features and CapabilitiesPostgreSQL Enterprise Class Features and Capabilities
PostgreSQL Enterprise Class Features and CapabilitiesPGConf APAC
 
Lightening Talk - PostgreSQL Worst Practices
Lightening Talk - PostgreSQL Worst PracticesLightening Talk - PostgreSQL Worst Practices
Lightening Talk - PostgreSQL Worst PracticesPGConf APAC
 
Security Best Practices for your Postgres Deployment
Security Best Practices for your Postgres DeploymentSecurity Best Practices for your Postgres Deployment
Security Best Practices for your Postgres DeploymentPGConf APAC
 

Andere mochten auch (20)

Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
 
Key Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to PostgresKey Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to Postgres
 
(Ab)using 4d Indexing
(Ab)using 4d Indexing(Ab)using 4d Indexing
(Ab)using 4d Indexing
 
Big Data and PostgreSQL
Big Data and PostgreSQLBig Data and PostgreSQL
Big Data and PostgreSQL
 
PostgreSQL 9.6 Performance-Scalability Improvements
PostgreSQL 9.6 Performance-Scalability ImprovementsPostgreSQL 9.6 Performance-Scalability Improvements
PostgreSQL 9.6 Performance-Scalability Improvements
 
Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!
 
Query Parallelism in PostgreSQL: What's coming next?
Query Parallelism in PostgreSQL: What's coming next?Query Parallelism in PostgreSQL: What's coming next?
Query Parallelism in PostgreSQL: What's coming next?
 
Lessons PostgreSQL learned from commercial databases, and didn’t
Lessons PostgreSQL learned from commercial databases, and didn’tLessons PostgreSQL learned from commercial databases, and didn’t
Lessons PostgreSQL learned from commercial databases, and didn’t
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
 
Use Case: PostGIS and Agribotics
Use Case: PostGIS and AgriboticsUse Case: PostGIS and Agribotics
Use Case: PostGIS and Agribotics
 
How to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'rollHow to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'roll
 
PostgreSQL on Amazon RDS
PostgreSQL on Amazon RDSPostgreSQL on Amazon RDS
PostgreSQL on Amazon RDS
 
There is Javascript in my SQL
There is Javascript in my SQLThere is Javascript in my SQL
There is Javascript in my SQL
 
PostgreSQL Rocks Indonesia
PostgreSQL Rocks IndonesiaPostgreSQL Rocks Indonesia
PostgreSQL Rocks Indonesia
 
Go Faster With Native Compilation
Go Faster With Native CompilationGo Faster With Native Compilation
Go Faster With Native Compilation
 
PostgreSQL: Past present Future
PostgreSQL: Past present FuturePostgreSQL: Past present Future
PostgreSQL: Past present Future
 
Swapping Pacemaker Corosync with repmgr
Swapping Pacemaker Corosync with repmgrSwapping Pacemaker Corosync with repmgr
Swapping Pacemaker Corosync with repmgr
 
PostgreSQL Enterprise Class Features and Capabilities
PostgreSQL Enterprise Class Features and CapabilitiesPostgreSQL Enterprise Class Features and Capabilities
PostgreSQL Enterprise Class Features and Capabilities
 
Lightening Talk - PostgreSQL Worst Practices
Lightening Talk - PostgreSQL Worst PracticesLightening Talk - PostgreSQL Worst Practices
Lightening Talk - PostgreSQL Worst Practices
 
Security Best Practices for your Postgres Deployment
Security Best Practices for your Postgres DeploymentSecurity Best Practices for your Postgres Deployment
Security Best Practices for your Postgres Deployment
 

Ähnlich wie Migration From Oracle to PostgreSQL

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
 
PostgreSQL 10: What to Look For
PostgreSQL 10: What to Look ForPostgreSQL 10: What to Look For
PostgreSQL 10: What to Look ForAmit Langote
 
Optimize with Open Source
Optimize with Open SourceOptimize with Open Source
Optimize with Open SourceEDB
 
Save money with Postgres on IBM PowerLinux
Save money with Postgres on IBM PowerLinuxSave money with Postgres on IBM PowerLinux
Save money with Postgres on IBM PowerLinuxEDB
 
MOUG17: SQLT Utility for Tuning - Practical Examples
MOUG17: SQLT Utility for Tuning - Practical ExamplesMOUG17: SQLT Utility for Tuning - Practical Examples
MOUG17: SQLT Utility for Tuning - Practical ExamplesMonica Li
 
MOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your DataMOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your DataMonica Li
 
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...Hirofumi Iwasaki
 
Technical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASTechnical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASAshnikbiz
 
COUG_AAbate_Oracle_Database_12c_New_Features
COUG_AAbate_Oracle_Database_12c_New_FeaturesCOUG_AAbate_Oracle_Database_12c_New_Features
COUG_AAbate_Oracle_Database_12c_New_FeaturesAlfredo Abate
 
pandas.(to/from)_sql is simple but not fast
pandas.(to/from)_sql is simple but not fastpandas.(to/from)_sql is simple but not fast
pandas.(to/from)_sql is simple but not fastUwe Korn
 
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
 
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
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...HostedbyConfluent
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7MySQL Brasil
 
Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus Ashnikbiz
 
APEX Application Lifecycle and Deployment 20220714.pdf
APEX Application Lifecycle and Deployment 20220714.pdfAPEX Application Lifecycle and Deployment 20220714.pdf
APEX Application Lifecycle and Deployment 20220714.pdfRichard Martens
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLEDB
 
Oracle to PostgreSQL, Challenges to Opportunity.pdf
Oracle to PostgreSQL, Challenges to Opportunity.pdfOracle to PostgreSQL, Challenges to Opportunity.pdf
Oracle to PostgreSQL, Challenges to Opportunity.pdfEqunix Business Solutions
 
OAC and ODI! A Match Made in…the cloud?
OAC and ODI! A Match Made in…the cloud?OAC and ODI! A Match Made in…the cloud?
OAC and ODI! A Match Made in…the cloud?Rodrigo Radtke de Souza
 

Ähnlich wie Migration From Oracle to PostgreSQL (20)

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
 
PostgreSQL 10: What to Look For
PostgreSQL 10: What to Look ForPostgreSQL 10: What to Look For
PostgreSQL 10: What to Look For
 
Optimize with Open Source
Optimize with Open SourceOptimize with Open Source
Optimize with Open Source
 
Save money with Postgres on IBM PowerLinux
Save money with Postgres on IBM PowerLinuxSave money with Postgres on IBM PowerLinux
Save money with Postgres on IBM PowerLinux
 
MOUG17: SQLT Utility for Tuning - Practical Examples
MOUG17: SQLT Utility for Tuning - Practical ExamplesMOUG17: SQLT Utility for Tuning - Practical Examples
MOUG17: SQLT Utility for Tuning - Practical Examples
 
MOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your DataMOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your Data
 
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
 
Technical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASTechnical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPAS
 
COUG_AAbate_Oracle_Database_12c_New_Features
COUG_AAbate_Oracle_Database_12c_New_FeaturesCOUG_AAbate_Oracle_Database_12c_New_Features
COUG_AAbate_Oracle_Database_12c_New_Features
 
pandas.(to/from)_sql is simple but not fast
pandas.(to/from)_sql is simple but not fastpandas.(to/from)_sql is simple but not fast
pandas.(to/from)_sql is simple but not fast
 
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
 
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
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7
 
Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus
 
APEX Application Lifecycle and Deployment 20220714.pdf
APEX Application Lifecycle and Deployment 20220714.pdfAPEX Application Lifecycle and Deployment 20220714.pdf
APEX Application Lifecycle and Deployment 20220714.pdf
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
 
Oracle to PostgreSQL, Challenges to Opportunity.pdf
Oracle to PostgreSQL, Challenges to Opportunity.pdfOracle to PostgreSQL, Challenges to Opportunity.pdf
Oracle to PostgreSQL, Challenges to Opportunity.pdf
 
OAC and ODI! A Match Made in…the cloud?
OAC and ODI! A Match Made in…the cloud?OAC and ODI! A Match Made in…the cloud?
OAC and ODI! A Match Made in…the cloud?
 

Mehr von PGConf APAC

PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...
PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...
PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...PGConf APAC
 
PGConf APAC 2018: PostgreSQL 10 - Replication goes Logical
PGConf APAC 2018: PostgreSQL 10 - Replication goes LogicalPGConf APAC 2018: PostgreSQL 10 - Replication goes Logical
PGConf APAC 2018: PostgreSQL 10 - Replication goes LogicalPGConf APAC
 
PGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQL
PGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQLPGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQL
PGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQLPGConf APAC
 
PGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQL
PGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQLPGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQL
PGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQLPGConf APAC
 
Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...
Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...
Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...PGConf APAC
 
PGConf APAC 2018 - A PostgreSQL DBAs Toolbelt for 2018
PGConf APAC 2018 - A PostgreSQL DBAs Toolbelt for 2018PGConf APAC 2018 - A PostgreSQL DBAs Toolbelt for 2018
PGConf APAC 2018 - A PostgreSQL DBAs Toolbelt for 2018PGConf APAC
 
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companion
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companionPGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companion
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companionPGConf APAC
 
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json  postgre-sql vs. mongodbPGConf APAC 2018 - High performance json  postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json postgre-sql vs. mongodbPGConf APAC
 
PGConf APAC 2018 - Monitoring PostgreSQL at Scale
PGConf APAC 2018 - Monitoring PostgreSQL at ScalePGConf APAC 2018 - Monitoring PostgreSQL at Scale
PGConf APAC 2018 - Monitoring PostgreSQL at ScalePGConf APAC
 
PGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQL
PGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQLPGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQL
PGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQLPGConf APAC
 
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...PGConf APAC
 
PGConf APAC 2018 - PostgreSQL HA with Pgpool-II and whats been happening in P...
PGConf APAC 2018 - PostgreSQL HA with Pgpool-II and whats been happening in P...PGConf APAC 2018 - PostgreSQL HA with Pgpool-II and whats been happening in P...
PGConf APAC 2018 - PostgreSQL HA with Pgpool-II and whats been happening in P...PGConf APAC
 
PGConf APAC 2018 - PostgreSQL performance comparison in various clouds
PGConf APAC 2018 - PostgreSQL performance comparison in various cloudsPGConf APAC 2018 - PostgreSQL performance comparison in various clouds
PGConf APAC 2018 - PostgreSQL performance comparison in various cloudsPGConf APAC
 
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...PGConf APAC
 
PGConf APAC 2018 - Tale from Trenches
PGConf APAC 2018 - Tale from TrenchesPGConf APAC 2018 - Tale from Trenches
PGConf APAC 2018 - Tale from TrenchesPGConf APAC
 
PGConf APAC 2018 Keynote: PostgreSQL goes eleven
PGConf APAC 2018 Keynote: PostgreSQL goes elevenPGConf APAC 2018 Keynote: PostgreSQL goes eleven
PGConf APAC 2018 Keynote: PostgreSQL goes elevenPGConf APAC
 
Amazon (AWS) Aurora
Amazon (AWS) AuroraAmazon (AWS) Aurora
Amazon (AWS) AuroraPGConf APAC
 

Mehr von PGConf APAC (17)

PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...
PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...
PGConf APAC 2018: Sponsored Talk by Fujitsu - The growing mandatory requireme...
 
PGConf APAC 2018: PostgreSQL 10 - Replication goes Logical
PGConf APAC 2018: PostgreSQL 10 - Replication goes LogicalPGConf APAC 2018: PostgreSQL 10 - Replication goes Logical
PGConf APAC 2018: PostgreSQL 10 - Replication goes Logical
 
PGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQL
PGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQLPGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQL
PGConf APAC 2018 - Lightening Talk #3: How To Contribute to PostgreSQL
 
PGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQL
PGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQLPGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQL
PGConf APAC 2018 - Lightening Talk #2 - Centralizing Authorization in PostgreSQL
 
Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...
Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...
Sponsored Talk @ PGConf APAC 2018 - Choosing the right partner in your Postgr...
 
PGConf APAC 2018 - A PostgreSQL DBAs Toolbelt for 2018
PGConf APAC 2018 - A PostgreSQL DBAs Toolbelt for 2018PGConf APAC 2018 - A PostgreSQL DBAs Toolbelt for 2018
PGConf APAC 2018 - A PostgreSQL DBAs Toolbelt for 2018
 
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companion
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companionPGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companion
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companion
 
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json  postgre-sql vs. mongodbPGConf APAC 2018 - High performance json  postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
 
PGConf APAC 2018 - Monitoring PostgreSQL at Scale
PGConf APAC 2018 - Monitoring PostgreSQL at ScalePGConf APAC 2018 - Monitoring PostgreSQL at Scale
PGConf APAC 2018 - Monitoring PostgreSQL at Scale
 
PGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQL
PGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQLPGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQL
PGConf APAC 2018 - Where's Waldo - Text Search and Pattern in PostgreSQL
 
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...
 
PGConf APAC 2018 - PostgreSQL HA with Pgpool-II and whats been happening in P...
PGConf APAC 2018 - PostgreSQL HA with Pgpool-II and whats been happening in P...PGConf APAC 2018 - PostgreSQL HA with Pgpool-II and whats been happening in P...
PGConf APAC 2018 - PostgreSQL HA with Pgpool-II and whats been happening in P...
 
PGConf APAC 2018 - PostgreSQL performance comparison in various clouds
PGConf APAC 2018 - PostgreSQL performance comparison in various cloudsPGConf APAC 2018 - PostgreSQL performance comparison in various clouds
PGConf APAC 2018 - PostgreSQL performance comparison in various clouds
 
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...
Sponsored Talk @ PGConf APAC 2018 - Migrating Oracle to EDB Postgres Approach...
 
PGConf APAC 2018 - Tale from Trenches
PGConf APAC 2018 - Tale from TrenchesPGConf APAC 2018 - Tale from Trenches
PGConf APAC 2018 - Tale from Trenches
 
PGConf APAC 2018 Keynote: PostgreSQL goes eleven
PGConf APAC 2018 Keynote: PostgreSQL goes elevenPGConf APAC 2018 Keynote: PostgreSQL goes eleven
PGConf APAC 2018 Keynote: PostgreSQL goes eleven
 
Amazon (AWS) Aurora
Amazon (AWS) AuroraAmazon (AWS) Aurora
Amazon (AWS) Aurora
 

KĂźrzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 

KĂźrzlich hochgeladen (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 

Migration From Oracle to PostgreSQL

  • 1. CopyrightŠ2016 NTT corp. All Rights Reserved. Migration from Oracle to PostgreSQL - The problems and the solutions - Kazuki Uehara NTT OSS Center March 19, 2016 Copyright(c)2016 NTT Corp. All Rights Reserved.
  • 2. 2CopyrightŠ2016 NTT corp. All Rights Reserved. • Self Introduction • Introduction of Today's topics • Problems about Database migration. • OSS Products that support the Database migration • Conclusion Agenda
  • 3. 3CopyrightŠ2016 NTT corp. All Rights Reserved. • Kazuki Uehara • From Japan • Hobby • Travelling by bicycle • Taking pictures • Work • technical support • technical consulting • functional verification and performance evaluation • Products • PostgreSQL • pgpool-II、Slony-I Who am I?
  • 4. 4CopyrightŠ2016 NTT corp. All Rights Reserved. • Who we are? • NTTNippon Telegraph and Telephone Corporation) • National flagship carrier in Japan • What NTT OSS Center is doing? • Promotes the adoption of OSS by the group companies • Total support • support desk, Introduction support, Product maintenance • R&D • developing OSS and related tools with the communities • Deals with about 60 OSS products. About us NTT group subsidiary about 900 companies NTT NTT OSS Center
  • 5. 5CopyrightŠ2016 NTT corp. All Rights Reserved. • The world's most advanced OSS DBMS. • Continued featuere/performance improvement by the community. We involve in PostgreSQL 600 systems for the last seven years. Number of adoptions of PostgreSQL in the group companies year
  • 6. 6CopyrightŠ2016 NTT corp. All Rights Reserved. PostgreSQL vs Oracle PostgreSQL 9.5 Oracle 12c SQL ○ (ISO SQL 2011) ○ (ISO SQL 2011) stored procedure ○ (PL/pgsql,Java,perl,...) ○ (PL/sql,Java,...) trigger ○ ○ Online Backup ○ ○ partitionig ○ ○ Replication ○ (Synchronous/Asynchronous) ○ (Synchronous/Asynchronous) HA Cluster ○ (pacemaker,pgpool-II,...) ○ (VCS, MSCS,...) clustered systems with shared disk storage × ○ (RAC) License BSD Named User Plus License / Processor Lincense License Fee ○ free of charge × Compensation • No big difference. • You can use PostgreSQL at many systems.
  • 7. 7CopyrightŠ2016 NTT corp. All Rights Reserved. • Focus on Database migration technique from Oracle to PostgreSQL. • What is system migration? • Migration is the process of transferring the system and data to another environment. • Three categories of system migration: • rehost ポポポTo replace only platform hardware • rewrite ポポポTo replace OS and programing languages • rebuild ポポポRemake the entire system • Database migration is needed in 'rewrite' or 'rebuild'. Today's topics 1. Problems in the Database migration 2. How you can solve them
  • 8. 8CopyrightŠ2016 NTT corp. All Rights Reserved. • Introduction • Today's topic • Problem about Database migration • Why you need Database migration? • The items to be considered for the Database migration • Issues on Database migration • OSS Products that support the DB migration • Conclusion
  • 9. 9CopyrightŠ2016 NTT corp. All Rights Reserved. • Your system is obsolete • Support of HW expired. • Maintenance costs rise due to aging of equipment. • Your Database is expensive or poorly operating • You want to cut the license cost • You want to improve performance of middleware. • You can downsize HW. • You want to use new features. • You found your commercial Database was over spec • didn't use the proper functionalities of the commercial product. Why you need Database migration?
  • 10. 10CopyrightŠ2016 NTT corp. All Rights Reserved. The items to be considered for the Database migration AP Server 1. Logical design of DB • ER Diagram 2. Physical design of DB • arrangement of the data 3. Data • dump, restore 4. Operation procedures • maintenance tool (backup, batch) 5. SQL used in application • the dedicated SQL of commercial product. DB Server DB Oracle → PostgreSQL) Logical design Physical design application SQL a SQL b … data Client / Web DataBase Administrator Operationnal procedures entity attribute table index columnrelationship … … 1 2 5 3 4
  • 11. 11CopyrightŠ2016 NTT corp. All Rights Reserved. The items to be considered for the Database migration AP Server 1. Logical design of DB • ER Diagram 2. Physical design of DB • arrangement of the data 3. Data • dump, restore 4. Operation procedures • maintenance tool (backup, batch) 5. SQL used in application • the dedicated SQL of commercial product. DB Server DB Oracle → PostgreSQL) Logical design Physical design application SQL a SQL b … data Client / Web DataBase Administrator Operationnal procedures entity attribute table index columnrelationship … … 1 2 5 3 4
  • 12. 12CopyrightŠ2016 NTT corp. All Rights Reserved. 1. It will require significant cost to estimate for the migration of SQL. • The migration cost go up when we spend too much time on estimation. • You can provide the rough estimate in order to reduce cost. 2. It will require significant cost to modify incompatible SQL. • You have to find incompatible SQL from a lot of sources. In addition, you have to consider for each how should you modify. What is the problems? The risk of losing profits on migration exists.
  • 13. 13CopyrightŠ2016 NTT corp. All Rights Reserved. • This is sample source for Oracle. • If you use it on PostgreSQL, what should you modify? • There are three places in this source that require to modify. What kind of SQL should you modify? import java.sql.*; import java.util.*; public class test02 { String sqlString = "DELETE mytbl"; public ResultSet testMethod() throws SQLException { ResultSet rs = stmt.execute(sqlString); ResultSet rs2= stmt.executeQuery("SELECT sysdate FROM dual"); return rs; } }
  • 14. 14CopyrightŠ2016 NTT corp. All Rights Reserved. • This is sample source for Oracle. • If you use it on PostgreSQL, what should you modify? • There are three places in this source that require to modify. What kind of SQL should you modify? import java.sql.*; import java.util.*; public class test02 { String sqlString = "DELETE mytbl"; public ResultSet testMethod() throws SQLException { ResultSet rs = stmt.execute(sqlString); ResultSet rs2= stmt.executeQuery("SELECT sysdate FROM dual"); return rs; } } DELETE statement requires FROM clause in PostgreSQL.
  • 15. 15CopyrightŠ2016 NTT corp. All Rights Reserved. • This is sample source for Oracle. • If you use it on PostgreSQL, what should you modify? • There are three places in this source that require to modify. What kind of SQL should you modify? import java.sql.*; import java.util.*; public class test02 { String sqlString = "DELETE mytbl"; public ResultSet testMethod() throws SQLException { ResultSet rs = stmt.execute(sqlString); ResultSet rs2= stmt.executeQuery("SELECT sysdate FROM dual"); return rs; } } DELETE statement requires FROM clause in PostgreSQL. PostgreSQL doesn't have sysdate.
  • 16. 16CopyrightŠ2016 NTT corp. All Rights Reserved. • This is sample source for Oracle. • If you use it on PostgreSQL, what should you modify? • There are three places in this source that require to modify. What kind of SQL should you modify? import java.sql.*; import java.util.*; public class test02 { String sqlString = "DELETE mytbl"; public ResultSet testMethod() throws SQLException { ResultSet rs = stmt.execute(sqlString); ResultSet rs2= stmt.executeQuery("SELECT sysdate FROM dual"); return rs; } } DELETE statement requires FROM clause in PostgreSQL. PostgreSQL doesn't have sysdate. It doesn't exist DUAL table in PostgreSQL
  • 17. 17CopyrightŠ2016 NTT corp. All Rights Reserved. • Introduction • Today's topic • Problem about Database migration • OSS Products that support the Database migration • db_syntax_diff • orafce • Case study • Conclusion
  • 18. 18CopyrightŠ2016 NTT corp. All Rights Reserved. • Two OSS products as solutions. • db_syntax_diff • This tool was made by us as migration supporting tool. • Extracts incompatible SQL from application's source of Oracle. • Using this tool, anyone can be easily review source of application. • We can review in a relatively short time even for large scale systems. • orafce • This is contrib module for PostgreSQL. • It is an emulation tool for PostgreSQL to use compatibility functions and operators with Oracle RDBMS. To solve the problem …
  • 19. 19CopyrightŠ2016 NTT corp. All Rights Reserved. An overall outline of db_syntax_diff src db_syntax_diff XML Output file • This file is XML format. Outline of processing • to do parsing using original parser. • draw a comparison between the results of parsing and the contents of dictionary file. dictionary file What is dictionary file? • The list of incompatible 'SQL'. • You can modify this file. srcsrc Input files • You can input single file or directory. • C sourceProC), Java source, JSP source, SQL file
  • 20. 20CopyrightŠ2016 NTT corp. All Rights Reserved. • Install the required package using the yum. • expand the files got from GitHub. • set the environment variable. How to use db_syntax_diff 1/4 # yum install perl perl-XML-SAX.noarch xalan-j2 perl-Parse-Yapp perl-XML-NamespaceSupport.noarch perl-XML-LibXML.x86_64 $ tar -xvf db_syntax_diff.tar.gz $ vi ~/.bash_profile export CLASSPATH=/usr/share/java/xalan-j2.jar:$CLASSPATH export CLASSPATH=/usr/share/java/xalan-j2-serializer.jar:$CLASSPATH export PATH=$HOME/db_syntax_diff/src:$PATH export PERL5LIB=$HOME/db_syntax_diff/src/lib $ source ~/.bash_profile ※If you use xalan-java 2.7.1 later, you have to set CLASSPATH for serializer.jar.
  • 21. 21CopyrightŠ2016 NTT corp. All Rights Reserved. How to use db_syntax_diff 2/4 $ db_syntax_diff.pl --help db_syntax_diff version 2.0 The SQL analyzer for converting to PostgreSQL. Usage:db_syntax_diff.pl [-e encodingname][-d definition-file] [-i inputsourcedir[,suffix1[,suffix2]...] ] [-o outfile][-f filterword][-m modename] [-I includedir[,includedir1[,includedir2]...]][-h][-v [loglevel]] [inputfilename]... -e encodingname, --encoding=encodingname File encoding. The value which can be specified is "utf8" and "shiftjis" and "eucjp". [default: eucjp] -d definition-file, --define=definition-file Definition-file file name. -i inputsourcedir, --input=inputsourcedir Input-file directry. -o outfile, --output=outfile Output-file file name. [default: STDOUT] -f filterword, --filter=filterword Pattern filterword. The value which can be specified is "oracle8" and "oracle8i". [default: ALL] -m modename, --mode=modename File type of source file. The value which can be specified is "c" and "sql" and "cpp" and "java". [default: java] -I includedir, --Include=includedir Add the directory includedir to the list of directories to be searched for header files. [default: ./] -h, --help Print usage and exit. -v, --verbose Print progress of the practice to STDERR. The value which can be specified is "1" and "3" and "5" and "7". [default: none] inputfilename Input-file file name.
  • 22. 22CopyrightŠ2016 NTT corp. All Rights Reserved. • I introduce the result as a simple example. • target file : sample.java • Run this command. How to use db_syntax_diff 3/4 $ db_syntax_diff.pl -m java -e utf8 ~/tmp/sample.java -o ~/result.xml import java.sql.*; import java.util.*; public class test02 { String sqlString = "DELETE mytbl"; public ResultSet testMethod() throws SQLException { ResultSet rs = stmt.execute(sqlString); ResultSet rs2= stmt.executeQuery("SELECT sysdate FROM dual"); return rs; } }
  • 23. 23CopyrightŠ2016 NTT corp. All Rights Reserved. • This is a part of result. How to use db_syntax_diff 4/4 <?xml version="1.0" encoding="UTF-8"?> <REPORT file_number="1" start_time="2016/2/25 19:12:06" finish_time="2016/2/25 19:12:07"> <METADATA> <PARAMETER>-m java -e utf8 /home/uehara/tmp/sample.java -o /home/uehara/result.xml</PARAMETER> </METADATA> <FILE name="/home/uehara/tmp/sample.java" string_item_number="3" report_item_number="4" item_number="7"> <STRING_ITEM line="testMethod:sqlString:7"> <TARGET>DELETE mytbl</TARGET> </STRING_ITEM> ポポポ <REPORT_ITEM id="SQL-107-008" type="SQL" level="LOW2"> <SOURCE> <CLASS>test02</CLASS> <METHOD>testMethod</METHOD> <LINE>5</LINE> <COLUMN>7</COLUMN> <VARIABLE>sqlString</VARIABLE> </SOURCE> <STRUCT>!(?:[^ÂĽwÂĽd_]|ÂĽA)FROM(?:[^ÂĽwÂĽd_]|ÂĽz)</STRUCT> <TARGET>DELETE mytbl</TARGET> <MESSAGE>FROMの省略は未サポートです。</MESSAGE> </REPORT_ITEM> <REPORT_ITEM id="SQL-119-706" type="SQL" level="LOW1"> ポポポ Which file? What kind of incompatible SQL? Simple report is output. What type? How difficult? What line/column? What SQL statement?
  • 24. 24CopyrightŠ2016 NTT corp. All Rights Reserved. dictionary file Specifications of the wrapper tool src db_syntax_diff Output files • This file is XML format. • It is aggregated in 4 patterns. Outline of processing • This tool operates db_syntax_diff. • In addition, This tool makes CSV files from XML file. srcsrc Input files • You can input single file or directory. csv XML db_syntax_diff_wrapper configuration file
  • 25. 25CopyrightŠ2016 NTT corp. All Rights Reserved. • result.csv • file path of target file • Number of line • Number of columns • ID (db_syntax_diff) The results of wrapper tool • The classification • Difficulty of migration • simple report • target query • Middle • You can't simple migrate. • High • migration is very difficult. • Low1 • It's only necessary to delete or replace. • Low2 • You can't replace, but migration is easy. Difficulty
  • 26. 26CopyrightŠ2016 NTT corp. All Rights Reserved. • You can reduce the modification cost of SQL. • The number of incompatible SQL decrease by using orafce. • Installation Instructions (Only 3 steps) 1. You can get a RPM file from PostgreSQL.org. • http://yum.postgresql.org/9.5/redhat/rhel-7- x86_64/repoview/orafce95.html • Latest version(3.2.1) has been published. 2. Install orafce RPM. 3. After, you just run a query "CREATE EXTENSION orafce". How to use orafce # rpm -ivh orafce95-3.2.1-1.rhel7.x86_64.rpm Updating / installing... 1:orafce95-3.2.1-1.rhel7 ################################# [100%]
  • 27. 27CopyrightŠ2016 NTT corp. All Rights Reserved. A simple example -bash-4.2$ psql postgres psql (9.5.1) Type "help" for help. postgres=# CREATE TABLE bar(i int,v VARCHAR2(20)); ERROR: type "varchar2" does not exist LINE 1: CREATE TABLE bar(i int,v VARCHAR2(20)); ^ postgres=#postgres=# CREATE EXTENSION orafce; CREATE EXTENSION postgres=#postgres=# CREATE TABLE bar(i int,v VARCHAR2(20)); CREATE TABLE postgres=#postgres=# ÂĽd bar Table "public.bar" Column | Type | Modifiers --------+--------------+----------- i | integer | v | varchar2(20) | postgres=#
  • 28. 28CopyrightŠ2016 NTT corp. All Rights Reserved. A simple example -bash-4.2$ psql postgres psql (9.5.1) Type "help" for help. postgres=# CREATE TABLE bar(i int,v VARCHAR2(20)); ERROR: type "varchar2" does not exist LINE 1: CREATE TABLE bar(i int,v VARCHAR2(20)); ^ postgres=#postgres=# CREATE EXTENSION orafce; CREATE EXTENSION postgres=#postgres=# CREATE TABLE bar(i int,v VARCHAR2(20)); CREATE TABLE postgres=#postgres=# ÂĽd bar Table "public.bar" Column | Type | Modifiers --------+--------------+----------- i | integer | v | varchar2(20) | postgres=# PostgreSQL doesn't have data type 'VARCHAR2' .
  • 29. 29CopyrightŠ2016 NTT corp. All Rights Reserved. A simple example -bash-4.2$ psql postgres psql (9.5.1) Type "help" for help. postgres=# CREATE TABLE bar(i int,v VARCHAR2(20)); ERROR: type "varchar2" does not exist LINE 1: CREATE TABLE bar(i int,v VARCHAR2(20)); ^ postgres=#postgres=# CREATE EXTENSION orafce; CREATE EXTENSION postgres=#postgres=# CREATE TABLE bar(i int,v VARCHAR2(20)); CREATE TABLE postgres=#postgres=# ÂĽd bar Table "public.bar" Column | Type | Modifiers --------+--------------+----------- i | integer | v | varchar2(20) | postgres=# PostgreSQL doesn't have data type 'VARCHAR2' . You can use data type 'VARCHAR2' in PostgreSQL.
  • 30. 30CopyrightŠ2016 NTT corp. All Rights Reserved. IT infrastructureClient SW Web/AP/DB Job Management/Backup Other system Server Enclosure Case study 1/3 • Billing system • A managing system of business contract information • Migration from commercial product to RHEL / Apache / mod_jk / JBoss EAP / PostgreSQL intracompany network intracompany network target number of files Number of lines SQL/DDL about 740 files about 250KLJava Pro*C Scale of Database migration
  • 31. 31CopyrightŠ2016 NTT corp. All Rights Reserved. • We judged that there are not big problem in database migration by using db_syntax_diff. • We extracted 10000 pieces of incompatible SQL. • But difficulty of alomost the whole incompatible SQL was Low1 or Low2. Case study 2/3 # difficulty SQL/DDL Java Pro*C 1 Low1 4,186 1 11 2 Low2 5,361 798 94 3 Middle 20 0 0 4 High 0 0 0 total 9,567 799 105 tool's output • Low1 • It's only necessary to delete or replace. • Low2 • You can't replace, but migration is easy. • Middle • You can't simple migrate. • High • migration is very difficult.
  • 32. 32CopyrightŠ2016 NTT corp. All Rights Reserved. • We can reduce the number of incompatible SQL by orafce. • In this case, it can reduce to 7000. • Based on our own experience, PostgreSQL can use 73% of Oracle's SQL by orafce Case study 3/3
  • 33. 33CopyrightŠ2016 NTT corp. All Rights Reserved. • The migration of SQL is the most difficult process in Database migration. 1. It will require significant cost to estimate for the migration of SQL. 2. It will require significant cost to modify incompatible SQL. • These issues can be solved by db_syntax_diff and orafce. • Try Database migration, don’t hesitate. Conclusion • If you have interest, please help the development of db_syntax_diff. • To start with translate manual into English.
  • 34. 34CopyrightŠ2016 NTT corp. All Rights Reserved. Thank you!