SlideShare a Scribd company logo
From Legacy to Open
Source
Migrating from legacy
databases to MariaDB
Agenda
• Why migrate to Open Source
• What to migrate and what not to migrate
• MariaDB Server compatibility features
– MariaDB Server up to version 10.1
– MariaDB Server 10.2
– MariaDB Server 10.3
• MariaDB Migration services
• Case Studies
• Questions and Answers
Why migrate to Open Source
Total Cost of Ownership
High Performance
High Availability
Why Open Source?
• Modern, inexpensive and powerful hardware
– Commodity hardware
• Agile software development
– More software
– High quality software
– At lower cost
• Modern infrastructure is more and more based on Open Source
– Cloud technologies
– Containers
– Microservices
– DevOps development
Why Open Source?
• You just cannot avoid Open Source software
• Higher security
– More eyeballs looking at software
– Ability to0 verify claims of security
• Easier software licensing
– Legacy software licenses are complex
– A big part of Vendor lock-in is due to licensing
• Significantly lower Total Cost of Ownership (TCO)
What and what not to
Migrate
Finding the low hanging
fruit
Types of migration targets
• Impossible to migrate
– Means that a complete rewrite takes less effort than a migration
– May also be the case that it is not worthwhile, for example the code base is too old
• Complex migration
– Lots of proprietary code
– Use of proprietary features in key areas
– Complex application
– Lack of or bad documentation
• Medium complexity
– Limited amounts of proprietary code
– Well documented code
– Using Standard features
Types of migration targets
• Easy migration
– Using only standard features
– Separate database layer
• Standard or custom
– Standard database data types
– Small amounts of highly complex SQL
– Well documented application and code
– Standard development languages
What to look out for
• Database procedural code, i.e. PL/SQL
– Not necessarily a big issue but needs to be investigated
– Migration is possible
• Complex SQL statements
– Tuning issues
– Proprietary features
• Dynamic SQL
– Difficult to migrate
– Difficult to tune
– Difficult to test
What to look out for
• Non standard data types
– BLOB/CLOB types are sometimes difficult, implementations are different
– Temporal datatypes are also notoriously difficult due to semantic differences
– Numeric datatypes are sometimes an issue
– User Defined Datatypes
• Characters sets and collations
– UTF-8 support
• Non-standard table types
– Special indexes
– Materialized Views
– Nested tables
MariaDB Server Compitability
Easing migrations
Compatibility in MariaDB Server pre 10.2
• SQL_MODE = Oracle
– Pipes as CONCAT - || treated as MariaDB CONCAT function
– Quoting for names according to ANSI – " treated as MariaDB `
• CHECK Constraints
– Accepted syntax only
• SQL_MODE retained for Stored Procedures and Functions
• Mainly ANSI SQL datatypes
• User Defined Functions and Stored Routines to augment migration
• Convert PL/SQL to external code and/or SQL/PSM
• Partitioning
• ANSI SQL Outer Join syntax
– Oracle, Sybase and SQL Server outer join syntax replacement
Compatibility in MariaDB Server 10.2
• CHECK Constraints
– Implemented and operational in accordance with ANSI SQL
• CTE – Common Table Expressions
– Eases use of temporary objects
– Replacement for Oracle CONNECT BY … PRIOR syntax
• Windowing functions
– In line with Oracle support
• Column DEFAULT expressions enhanced
– In line with ANSI SQL and Oracle
• User based resource limitations
• Enhanced PREPARE statement
• Multiple TRIGGERs per event
Compatibility in MariaDB Server 10.3
• PL/SQL support
– Most of the PL/SQL syntax supported
– PACKAGES support
– Minimal set of built-in packages support
• SEQUENCES support
• Support for parameterized CURSORs
• Several Oracle compatibility functions
• INTERSECT and EXCEPT support
• ROW data types in Stored Procedures
• System Versioned Tables / AS OF – To replace Oracle Flashback
Example schema migration
#: let's create some tables, using ORACLE DATA TYPES
MariaDB [mydb]> CREATE TABLE TBL_CAR_BRAND (
-> CAR_BRAND_NUMBER INTEGER(10) NOT NULL,
-> CAR_BRAND_DESC VARCHAR2(4000) NOT NULL, #: mapped out to MariaDB VARCHAR
-> CAR_BRAND_LOGO BLOB, #: mapped out to MariaDB LONGBLOB
-> PRIMARY KEY(CAR_BRAND_NUMBER)
-> ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.007 sec)
MariaDB [mydb]> CREATE TABLE TBL_CAR (
-> CAR_NUMBER INTEGER(10) NOT NULL,
-> CAR_BRAND_NUMBER INTEGER(10) NOT NULL,
-> CAR_MODEL VARCHAR2(60) NOT NULL,
-> CAR_MODEL_PRICE NUMBER(10,2) NOT NULL, #: mapped out to MariaDB DECIMAL
-> CONSTRAINT FOREIGN KEY (CAR_BRAND_NUMBER) REFERENCES TBL_CAR_BRAND(CAR_BRAND_NUMBER),
-> PRIMARY KEY(CAR_NUMBER)
-> ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.007 sec)
Example procedure migration
MariaDB [mydb]> DELIMITER /
MariaDB [mydb]> CREATE OR REPLACE PROCEDURE mydb.PROC_ADD_CAR_BRAND (
p_car_brand_descmydb.TBL_CAR_BRAND.CAR_BRAND_DESC%TYPE,
p_car_brand_logomydb.TBL_CAR_BRAND.CAR_BRAND_LOGO%TYPE
) AS
BEGIN
IF ((p_car_brand_desc <> '') &&(p_car_brand_logo <> '')) THEN
-- creating a start savepoint
SAVEPOINT startpoint; #: creating an undo point into the local stream
-- inserting the new row
INSERT INTO TBL_CAR_BRAND(CAR_BRAND_NUMBER,CAR_BRAND_DESC,CAR_BRAND_LOGO)
VALUES(SEQ_CAR_BRAND.NEXTVAL,p_car_brand_desc,p_car_brand_logo);
ELSE
SELECT 'You must provide the cars brand...' AS WARNING;
END IF;
EXCEPTION
WHEN OTHERS THEN
-- executing the exception
SELECT 'Exception ' || TO_CHAR(SQLCODE)|| ' ' || SQLERRM AS EXCEPTION;
-- rolling backup to the savepoint startpoint
ROLLBACK TO startpoint;
END;
/
Query OK, 0 rows affected (0.003 sec)
MariaDB Migration Services
MariaDB Migration Practice services
• Competence in MariaDB, MySQL, Oracle, SQL Server and several other database systems
• Migration assessment
– Assess if a migration is feasible
– Determine application complexity
– Determine an approximate effort for migration
• Migration Proof-of-concept
– Migrate distinct part of an application
– Use to ensure that a migration is feasible, possible and useful
– Uncover hidden complexities
– Covers database and well as select application and infrastructure components
MariaDB Migration Practice tasks
• Schema migration
• Data migration
• Data validation
• Database Procedural code migration
– Including Procedural code validation
• Application migration
– MariaDB Migration Practice focus on the database specific aspects of the application
• Application testing and tuning
• Switchover
MariaDB Migration process
Case studies
Background and
examples
Greetz – Oracle RAC to MariaDB Galera Cluster
• Application – E-commerce for Personalized Greeting Cards
• Business Challenges
– High Availability
– Cost
– Predictable performance
• Solution
– Migrate from Oracle RAC to MariaDB Galera Cluster
• Why MariaDB
– Lower Total Cost of Ownership
– Lower hardware cost
– Lower DBA requirements
“MariaDB’s controlled and structured
approach gave us certainty in relation
to data and enabled us to go live on
time. I would not hesitate in working
again with SkySQL and highly
recommend them.“
— Giulio Gaioni, COO, Greetz
Greetz Migration – Some details
• Java application
– Using Hibernate for database access
• Application code required minimal effort
– Certain hardcoded Hibernate objects required changing
• Small amounts of PL/SQL code
– Mostly used for reporting and DBA work
– Replaced with Linux shell scripts and limited amount of MariaDB SQL/PSM code
• Oracle RAC replaced by MariaDB Galera Cluster
• Hardware was leased
– Shared disk system could be returned immediately after migration
– Significant part of migration cost saving
• MariaDB Remote DBA to aid in database work
DBS Bank – Migration from Oracle to MariaDB
• DBS Bank Singapore
– The biggest banks in Southeast Asia.
– 27 applications have already been successfully migrated to MariaDB by 2017
• Including some of the most complex ones
– Several more application in pipeline for 2018
• Heavy-duty transactional data mart for OLTP applications
– Data is then provided to customer-facing applications
– 16 countries, 250 tables, 130 procedures, 4 TB hot data, 15 TB cold data
• Main drivers
– Cost
– Drive towards Open Source
DBS Bank migration – Some challenges
• Proof of Concepts
– Many potential issues found during PoC
• Density of internal application knowledge
– Live application which has been growing over years → hundreds of procedures etc.
• Dependency on Oracle features
– CONNECT BY, PIPE ROW, non-1NF custom types
– Feature development for frequently used constructs
– Solution/workaround development for less frequently used constructs, e.g. collections
• Complexity due to long-term growing architecture
– Tight couplings and dependencies with neighboring systems
– Direct access to tables from/to other applications, i.e. bypassing application calls
Thank you

More Related Content

What's hot

AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
AMIS Beyond the Horizon - High density deployments using weblogic multitenancyAMIS Beyond the Horizon - High density deployments using weblogic multitenancy
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
Jaap Poot
 
2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud
Marcus Vinicius Miguel Pedro
 
Architecting a Next Gen Data Platform – Strata London 2018
Architecting a Next Gen Data Platform – Strata London 2018Architecting a Next Gen Data Platform – Strata London 2018
Architecting a Next Gen Data Platform – Strata London 2018
Jonathan Seidman
 
Laskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development ModelLaskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development Model
Garindra Prahandono
 
Oow2016 review-13th october 2016
Oow2016 review-13th october 2016Oow2016 review-13th october 2016
PPCD_And_AmazonRDS
PPCD_And_AmazonRDSPPCD_And_AmazonRDS
PPCD_And_AmazonRDSVibhor Kumar
 
DB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource ManagerDB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource Manager
Andrejs Vorobjovs
 
MariaDB on Docker
MariaDB on DockerMariaDB on Docker
MariaDB on Docker
MariaDB plc
 
Oracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy featuresOracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy features
Michel Schildmeijer
 
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
Lucas Jellema
 
2020 - OCI Key Concepts for Oracle DBAs
2020 - OCI Key Concepts for Oracle DBAs2020 - OCI Key Concepts for Oracle DBAs
2020 - OCI Key Concepts for Oracle DBAs
Marcus Vinicius Miguel Pedro
 
SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4
Gianluca Hotz
 
Oow2016 review-iaas-paas-13th-18thoctober
Oow2016 review-iaas-paas-13th-18thoctoberOow2016 review-iaas-paas-13th-18thoctober
Oow2016 review-iaas-paas-13th-18thoctober
Getting value from IoT, Integration and Data Analytics
 
Evolutionary database design
Evolutionary database designEvolutionary database design
Evolutionary database design
Salehein Syed
 
Oow2016 review-db-dev-bigdata-BI
Oow2016 review-db-dev-bigdata-BIOow2016 review-db-dev-bigdata-BI
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
Colin Charles
 
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...
Lucas Jellema
 
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Lucas Jellema
 
Oracle GoldenGate and Baseball - 5 Keys for Moving to the Cloud
Oracle GoldenGate and Baseball - 5 Keys for Moving to the CloudOracle GoldenGate and Baseball - 5 Keys for Moving to the Cloud
Oracle GoldenGate and Baseball - 5 Keys for Moving to the Cloud
Bobby Curtis
 
Best practices: running high-performance databases on Kubernetes
Best practices: running high-performance databases on KubernetesBest practices: running high-performance databases on Kubernetes
Best practices: running high-performance databases on Kubernetes
MariaDB plc
 

What's hot (20)

AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
AMIS Beyond the Horizon - High density deployments using weblogic multitenancyAMIS Beyond the Horizon - High density deployments using weblogic multitenancy
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
 
2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud
 
Architecting a Next Gen Data Platform – Strata London 2018
Architecting a Next Gen Data Platform – Strata London 2018Architecting a Next Gen Data Platform – Strata London 2018
Architecting a Next Gen Data Platform – Strata London 2018
 
Laskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development ModelLaskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development Model
 
Oow2016 review-13th october 2016
Oow2016 review-13th october 2016Oow2016 review-13th october 2016
Oow2016 review-13th october 2016
 
PPCD_And_AmazonRDS
PPCD_And_AmazonRDSPPCD_And_AmazonRDS
PPCD_And_AmazonRDS
 
DB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource ManagerDB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource Manager
 
MariaDB on Docker
MariaDB on DockerMariaDB on Docker
MariaDB on Docker
 
Oracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy featuresOracle WebLogic 12c New Multitenancy features
Oracle WebLogic 12c New Multitenancy features
 
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017
 
2020 - OCI Key Concepts for Oracle DBAs
2020 - OCI Key Concepts for Oracle DBAs2020 - OCI Key Concepts for Oracle DBAs
2020 - OCI Key Concepts for Oracle DBAs
 
SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4
 
Oow2016 review-iaas-paas-13th-18thoctober
Oow2016 review-iaas-paas-13th-18thoctoberOow2016 review-iaas-paas-13th-18thoctober
Oow2016 review-iaas-paas-13th-18thoctober
 
Evolutionary database design
Evolutionary database designEvolutionary database design
Evolutionary database design
 
Oow2016 review-db-dev-bigdata-BI
Oow2016 review-db-dev-bigdata-BIOow2016 review-db-dev-bigdata-BI
Oow2016 review-db-dev-bigdata-BI
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
 
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...
 
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
 
Oracle GoldenGate and Baseball - 5 Keys for Moving to the Cloud
Oracle GoldenGate and Baseball - 5 Keys for Moving to the CloudOracle GoldenGate and Baseball - 5 Keys for Moving to the Cloud
Oracle GoldenGate and Baseball - 5 Keys for Moving to the Cloud
 
Best practices: running high-performance databases on Kubernetes
Best practices: running high-performance databases on KubernetesBest practices: running high-performance databases on Kubernetes
Best practices: running high-performance databases on Kubernetes
 

Similar to Migración desde BBDD propietarias a MariaDB

Kb 40 kevin_klineukug_reading20070717[1]
Kb 40 kevin_klineukug_reading20070717[1]Kb 40 kevin_klineukug_reading20070717[1]
Kb 40 kevin_klineukug_reading20070717[1]shuwutong
 
Deep Dive on MySQL Databases on AWS - AWS Online Tech Talks
Deep Dive on MySQL Databases on AWS - AWS Online Tech TalksDeep Dive on MySQL Databases on AWS - AWS Online Tech Talks
Deep Dive on MySQL Databases on AWS - AWS Online Tech Talks
Amazon Web Services
 
[db tech showcase Tokyo 2017] C34: Replacing Oracle Database at DBS Bank ~Ora...
[db tech showcase Tokyo 2017] C34: Replacing Oracle Database at DBS Bank ~Ora...[db tech showcase Tokyo 2017] C34: Replacing Oracle Database at DBS Bank ~Ora...
[db tech showcase Tokyo 2017] C34: Replacing Oracle Database at DBS Bank ~Ora...
Insight Technology, Inc.
 
Migration from Oracle to PostgreSQL: NEED vs REALITY
Migration from Oracle to PostgreSQL: NEED vs REALITYMigration from Oracle to PostgreSQL: NEED vs REALITY
Migration from Oracle to PostgreSQL: NEED vs REALITY
Ashnikbiz
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimization
MariaDB plc
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
Amazon Web Services
 
Migrate from SQL Server or Oracle into Amazon Aurora using AWS Database Migra...
Migrate from SQL Server or Oracle into Amazon Aurora using AWS Database Migra...Migrate from SQL Server or Oracle into Amazon Aurora using AWS Database Migra...
Migrate from SQL Server or Oracle into Amazon Aurora using AWS Database Migra...
Amazon Web Services
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimization
MariaDB plc
 
Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...Charley Hanania
 
DesignMind SQL Server 2008 Migration
DesignMind SQL Server 2008 MigrationDesignMind SQL Server 2008 Migration
DesignMind SQL Server 2008 Migration
Mark Ginnebaugh
 
Running database infrastructure on containers
Running database infrastructure on containersRunning database infrastructure on containers
Running database infrastructure on containers
MariaDB plc
 
Migrating to Amazon RDS with Database Migration Service
Migrating to Amazon RDS with Database Migration ServiceMigrating to Amazon RDS with Database Migration Service
Migrating to Amazon RDS with Database Migration Service
Amazon Web Services
 
Building and Deploying Large Scale SSRS using Lessons Learned from Customer D...
Building and Deploying Large Scale SSRS using Lessons Learned from Customer D...Building and Deploying Large Scale SSRS using Lessons Learned from Customer D...
Building and Deploying Large Scale SSRS using Lessons Learned from Customer D...
Denny Lee
 
Handling Massive Writes
Handling Massive WritesHandling Massive Writes
Handling Massive WritesLiran Zelkha
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
EDB
 
What’s New in Oracle Database 19c - Part 1
What’s New in Oracle Database 19c - Part 1What’s New in Oracle Database 19c - Part 1
What’s New in Oracle Database 19c - Part 1
Satishbabu Gunukula
 
DAT201 Migrating Databases to AWS - AWS re: Invent 2012
DAT201 Migrating Databases to AWS - AWS re: Invent 2012DAT201 Migrating Databases to AWS - AWS re: Invent 2012
DAT201 Migrating Databases to AWS - AWS re: Invent 2012
Amazon Web Services
 
Höchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und OptimierungHöchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und Optimierung
MariaDB plc
 

Similar to Migración desde BBDD propietarias a MariaDB (20)

Kb 40 kevin_klineukug_reading20070717[1]
Kb 40 kevin_klineukug_reading20070717[1]Kb 40 kevin_klineukug_reading20070717[1]
Kb 40 kevin_klineukug_reading20070717[1]
 
Deep Dive on MySQL Databases on AWS - AWS Online Tech Talks
Deep Dive on MySQL Databases on AWS - AWS Online Tech TalksDeep Dive on MySQL Databases on AWS - AWS Online Tech Talks
Deep Dive on MySQL Databases on AWS - AWS Online Tech Talks
 
[db tech showcase Tokyo 2017] C34: Replacing Oracle Database at DBS Bank ~Ora...
[db tech showcase Tokyo 2017] C34: Replacing Oracle Database at DBS Bank ~Ora...[db tech showcase Tokyo 2017] C34: Replacing Oracle Database at DBS Bank ~Ora...
[db tech showcase Tokyo 2017] C34: Replacing Oracle Database at DBS Bank ~Ora...
 
Migration from Oracle to PostgreSQL: NEED vs REALITY
Migration from Oracle to PostgreSQL: NEED vs REALITYMigration from Oracle to PostgreSQL: NEED vs REALITY
Migration from Oracle to PostgreSQL: NEED vs REALITY
 
FatDB Intro
FatDB IntroFatDB Intro
FatDB Intro
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimization
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
 
Migrate from SQL Server or Oracle into Amazon Aurora using AWS Database Migra...
Migrate from SQL Server or Oracle into Amazon Aurora using AWS Database Migra...Migrate from SQL Server or Oracle into Amazon Aurora using AWS Database Migra...
Migrate from SQL Server or Oracle into Amazon Aurora using AWS Database Migra...
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimization
 
Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...
 
DesignMind SQL Server 2008 Migration
DesignMind SQL Server 2008 MigrationDesignMind SQL Server 2008 Migration
DesignMind SQL Server 2008 Migration
 
Running database infrastructure on containers
Running database infrastructure on containersRunning database infrastructure on containers
Running database infrastructure on containers
 
Migrating to Amazon RDS with Database Migration Service
Migrating to Amazon RDS with Database Migration ServiceMigrating to Amazon RDS with Database Migration Service
Migrating to Amazon RDS with Database Migration Service
 
Building and Deploying Large Scale SSRS using Lessons Learned from Customer D...
Building and Deploying Large Scale SSRS using Lessons Learned from Customer D...Building and Deploying Large Scale SSRS using Lessons Learned from Customer D...
Building and Deploying Large Scale SSRS using Lessons Learned from Customer D...
 
Handling Massive Writes
Handling Massive WritesHandling Massive Writes
Handling Massive Writes
 
NoSQL
NoSQLNoSQL
NoSQL
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
 
What’s New in Oracle Database 19c - Part 1
What’s New in Oracle Database 19c - Part 1What’s New in Oracle Database 19c - Part 1
What’s New in Oracle Database 19c - Part 1
 
DAT201 Migrating Databases to AWS - AWS re: Invent 2012
DAT201 Migrating Databases to AWS - AWS re: Invent 2012DAT201 Migrating Databases to AWS - AWS re: Invent 2012
DAT201 Migrating Databases to AWS - AWS re: Invent 2012
 
Höchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und OptimierungHöchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und Optimierung
 

More from MariaDB plc

MariaDB Paris Workshop 2023 - MaxScale 23.02.x
MariaDB Paris Workshop 2023 - MaxScale 23.02.xMariaDB Paris Workshop 2023 - MaxScale 23.02.x
MariaDB Paris Workshop 2023 - MaxScale 23.02.x
MariaDB plc
 
MariaDB Paris Workshop 2023 - Newpharma
MariaDB Paris Workshop 2023 - NewpharmaMariaDB Paris Workshop 2023 - Newpharma
MariaDB Paris Workshop 2023 - Newpharma
MariaDB plc
 
MariaDB Paris Workshop 2023 - Cloud
MariaDB Paris Workshop 2023 - CloudMariaDB Paris Workshop 2023 - Cloud
MariaDB Paris Workshop 2023 - Cloud
MariaDB plc
 
MariaDB Paris Workshop 2023 - MariaDB Enterprise
MariaDB Paris Workshop 2023 - MariaDB EnterpriseMariaDB Paris Workshop 2023 - MariaDB Enterprise
MariaDB Paris Workshop 2023 - MariaDB Enterprise
MariaDB plc
 
MariaDB Paris Workshop 2023 - Performance Optimization
MariaDB Paris Workshop 2023 - Performance OptimizationMariaDB Paris Workshop 2023 - Performance Optimization
MariaDB Paris Workshop 2023 - Performance Optimization
MariaDB plc
 
MariaDB Paris Workshop 2023 - MaxScale
MariaDB Paris Workshop 2023 - MaxScale MariaDB Paris Workshop 2023 - MaxScale
MariaDB Paris Workshop 2023 - MaxScale
MariaDB plc
 
MariaDB Paris Workshop 2023 - novadys presentation
MariaDB Paris Workshop 2023 - novadys presentationMariaDB Paris Workshop 2023 - novadys presentation
MariaDB Paris Workshop 2023 - novadys presentation
MariaDB plc
 
MariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentationMariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentation
MariaDB plc
 
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB plc
 
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-BackupMariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
MariaDB plc
 
Einführung : MariaDB Tech und Business Update Hamburg 2023
Einführung : MariaDB Tech und Business Update Hamburg 2023Einführung : MariaDB Tech und Business Update Hamburg 2023
Einführung : MariaDB Tech und Business Update Hamburg 2023
MariaDB plc
 
Hochverfügbarkeitslösungen mit MariaDB
Hochverfügbarkeitslösungen mit MariaDBHochverfügbarkeitslösungen mit MariaDB
Hochverfügbarkeitslösungen mit MariaDB
MariaDB plc
 
Die Neuheiten in MariaDB Enterprise Server
Die Neuheiten in MariaDB Enterprise ServerDie Neuheiten in MariaDB Enterprise Server
Die Neuheiten in MariaDB Enterprise Server
MariaDB plc
 
Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®
MariaDB plc
 
Introducing workload analysis
Introducing workload analysisIntroducing workload analysis
Introducing workload analysis
MariaDB plc
 
Under the hood: SkySQL monitoring
Under the hood: SkySQL monitoringUnder the hood: SkySQL monitoring
Under the hood: SkySQL monitoring
MariaDB plc
 
Introducing the R2DBC async Java connector
Introducing the R2DBC async Java connectorIntroducing the R2DBC async Java connector
Introducing the R2DBC async Java connector
MariaDB plc
 
MariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introduction
MariaDB plc
 
Faster, better, stronger: The new InnoDB
Faster, better, stronger: The new InnoDBFaster, better, stronger: The new InnoDB
Faster, better, stronger: The new InnoDB
MariaDB plc
 
The architecture of SkySQL
The architecture of SkySQLThe architecture of SkySQL
The architecture of SkySQL
MariaDB plc
 

More from MariaDB plc (20)

MariaDB Paris Workshop 2023 - MaxScale 23.02.x
MariaDB Paris Workshop 2023 - MaxScale 23.02.xMariaDB Paris Workshop 2023 - MaxScale 23.02.x
MariaDB Paris Workshop 2023 - MaxScale 23.02.x
 
MariaDB Paris Workshop 2023 - Newpharma
MariaDB Paris Workshop 2023 - NewpharmaMariaDB Paris Workshop 2023 - Newpharma
MariaDB Paris Workshop 2023 - Newpharma
 
MariaDB Paris Workshop 2023 - Cloud
MariaDB Paris Workshop 2023 - CloudMariaDB Paris Workshop 2023 - Cloud
MariaDB Paris Workshop 2023 - Cloud
 
MariaDB Paris Workshop 2023 - MariaDB Enterprise
MariaDB Paris Workshop 2023 - MariaDB EnterpriseMariaDB Paris Workshop 2023 - MariaDB Enterprise
MariaDB Paris Workshop 2023 - MariaDB Enterprise
 
MariaDB Paris Workshop 2023 - Performance Optimization
MariaDB Paris Workshop 2023 - Performance OptimizationMariaDB Paris Workshop 2023 - Performance Optimization
MariaDB Paris Workshop 2023 - Performance Optimization
 
MariaDB Paris Workshop 2023 - MaxScale
MariaDB Paris Workshop 2023 - MaxScale MariaDB Paris Workshop 2023 - MaxScale
MariaDB Paris Workshop 2023 - MaxScale
 
MariaDB Paris Workshop 2023 - novadys presentation
MariaDB Paris Workshop 2023 - novadys presentationMariaDB Paris Workshop 2023 - novadys presentation
MariaDB Paris Workshop 2023 - novadys presentation
 
MariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentationMariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentation
 
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
 
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-BackupMariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
 
Einführung : MariaDB Tech und Business Update Hamburg 2023
Einführung : MariaDB Tech und Business Update Hamburg 2023Einführung : MariaDB Tech und Business Update Hamburg 2023
Einführung : MariaDB Tech und Business Update Hamburg 2023
 
Hochverfügbarkeitslösungen mit MariaDB
Hochverfügbarkeitslösungen mit MariaDBHochverfügbarkeitslösungen mit MariaDB
Hochverfügbarkeitslösungen mit MariaDB
 
Die Neuheiten in MariaDB Enterprise Server
Die Neuheiten in MariaDB Enterprise ServerDie Neuheiten in MariaDB Enterprise Server
Die Neuheiten in MariaDB Enterprise Server
 
Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®
 
Introducing workload analysis
Introducing workload analysisIntroducing workload analysis
Introducing workload analysis
 
Under the hood: SkySQL monitoring
Under the hood: SkySQL monitoringUnder the hood: SkySQL monitoring
Under the hood: SkySQL monitoring
 
Introducing the R2DBC async Java connector
Introducing the R2DBC async Java connectorIntroducing the R2DBC async Java connector
Introducing the R2DBC async Java connector
 
MariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introduction
 
Faster, better, stronger: The new InnoDB
Faster, better, stronger: The new InnoDBFaster, better, stronger: The new InnoDB
Faster, better, stronger: The new InnoDB
 
The architecture of SkySQL
The architecture of SkySQLThe architecture of SkySQL
The architecture of SkySQL
 

Recently uploaded

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 

Recently uploaded (20)

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 

Migración desde BBDD propietarias a MariaDB

  • 1. From Legacy to Open Source Migrating from legacy databases to MariaDB
  • 2. Agenda • Why migrate to Open Source • What to migrate and what not to migrate • MariaDB Server compatibility features – MariaDB Server up to version 10.1 – MariaDB Server 10.2 – MariaDB Server 10.3 • MariaDB Migration services • Case Studies • Questions and Answers
  • 3. Why migrate to Open Source Total Cost of Ownership High Performance High Availability
  • 4. Why Open Source? • Modern, inexpensive and powerful hardware – Commodity hardware • Agile software development – More software – High quality software – At lower cost • Modern infrastructure is more and more based on Open Source – Cloud technologies – Containers – Microservices – DevOps development
  • 5. Why Open Source? • You just cannot avoid Open Source software • Higher security – More eyeballs looking at software – Ability to0 verify claims of security • Easier software licensing – Legacy software licenses are complex – A big part of Vendor lock-in is due to licensing • Significantly lower Total Cost of Ownership (TCO)
  • 6. What and what not to Migrate Finding the low hanging fruit
  • 7. Types of migration targets • Impossible to migrate – Means that a complete rewrite takes less effort than a migration – May also be the case that it is not worthwhile, for example the code base is too old • Complex migration – Lots of proprietary code – Use of proprietary features in key areas – Complex application – Lack of or bad documentation • Medium complexity – Limited amounts of proprietary code – Well documented code – Using Standard features
  • 8. Types of migration targets • Easy migration – Using only standard features – Separate database layer • Standard or custom – Standard database data types – Small amounts of highly complex SQL – Well documented application and code – Standard development languages
  • 9. What to look out for • Database procedural code, i.e. PL/SQL – Not necessarily a big issue but needs to be investigated – Migration is possible • Complex SQL statements – Tuning issues – Proprietary features • Dynamic SQL – Difficult to migrate – Difficult to tune – Difficult to test
  • 10. What to look out for • Non standard data types – BLOB/CLOB types are sometimes difficult, implementations are different – Temporal datatypes are also notoriously difficult due to semantic differences – Numeric datatypes are sometimes an issue – User Defined Datatypes • Characters sets and collations – UTF-8 support • Non-standard table types – Special indexes – Materialized Views – Nested tables
  • 12. Compatibility in MariaDB Server pre 10.2 • SQL_MODE = Oracle – Pipes as CONCAT - || treated as MariaDB CONCAT function – Quoting for names according to ANSI – " treated as MariaDB ` • CHECK Constraints – Accepted syntax only • SQL_MODE retained for Stored Procedures and Functions • Mainly ANSI SQL datatypes • User Defined Functions and Stored Routines to augment migration • Convert PL/SQL to external code and/or SQL/PSM • Partitioning • ANSI SQL Outer Join syntax – Oracle, Sybase and SQL Server outer join syntax replacement
  • 13. Compatibility in MariaDB Server 10.2 • CHECK Constraints – Implemented and operational in accordance with ANSI SQL • CTE – Common Table Expressions – Eases use of temporary objects – Replacement for Oracle CONNECT BY … PRIOR syntax • Windowing functions – In line with Oracle support • Column DEFAULT expressions enhanced – In line with ANSI SQL and Oracle • User based resource limitations • Enhanced PREPARE statement • Multiple TRIGGERs per event
  • 14. Compatibility in MariaDB Server 10.3 • PL/SQL support – Most of the PL/SQL syntax supported – PACKAGES support – Minimal set of built-in packages support • SEQUENCES support • Support for parameterized CURSORs • Several Oracle compatibility functions • INTERSECT and EXCEPT support • ROW data types in Stored Procedures • System Versioned Tables / AS OF – To replace Oracle Flashback
  • 15. Example schema migration #: let's create some tables, using ORACLE DATA TYPES MariaDB [mydb]> CREATE TABLE TBL_CAR_BRAND ( -> CAR_BRAND_NUMBER INTEGER(10) NOT NULL, -> CAR_BRAND_DESC VARCHAR2(4000) NOT NULL, #: mapped out to MariaDB VARCHAR -> CAR_BRAND_LOGO BLOB, #: mapped out to MariaDB LONGBLOB -> PRIMARY KEY(CAR_BRAND_NUMBER) -> ) ENGINE=InnoDB; Query OK, 0 rows affected (0.007 sec) MariaDB [mydb]> CREATE TABLE TBL_CAR ( -> CAR_NUMBER INTEGER(10) NOT NULL, -> CAR_BRAND_NUMBER INTEGER(10) NOT NULL, -> CAR_MODEL VARCHAR2(60) NOT NULL, -> CAR_MODEL_PRICE NUMBER(10,2) NOT NULL, #: mapped out to MariaDB DECIMAL -> CONSTRAINT FOREIGN KEY (CAR_BRAND_NUMBER) REFERENCES TBL_CAR_BRAND(CAR_BRAND_NUMBER), -> PRIMARY KEY(CAR_NUMBER) -> ) ENGINE=InnoDB; Query OK, 0 rows affected (0.007 sec)
  • 16. Example procedure migration MariaDB [mydb]> DELIMITER / MariaDB [mydb]> CREATE OR REPLACE PROCEDURE mydb.PROC_ADD_CAR_BRAND ( p_car_brand_descmydb.TBL_CAR_BRAND.CAR_BRAND_DESC%TYPE, p_car_brand_logomydb.TBL_CAR_BRAND.CAR_BRAND_LOGO%TYPE ) AS BEGIN IF ((p_car_brand_desc <> '') &&(p_car_brand_logo <> '')) THEN -- creating a start savepoint SAVEPOINT startpoint; #: creating an undo point into the local stream -- inserting the new row INSERT INTO TBL_CAR_BRAND(CAR_BRAND_NUMBER,CAR_BRAND_DESC,CAR_BRAND_LOGO) VALUES(SEQ_CAR_BRAND.NEXTVAL,p_car_brand_desc,p_car_brand_logo); ELSE SELECT 'You must provide the cars brand...' AS WARNING; END IF; EXCEPTION WHEN OTHERS THEN -- executing the exception SELECT 'Exception ' || TO_CHAR(SQLCODE)|| ' ' || SQLERRM AS EXCEPTION; -- rolling backup to the savepoint startpoint ROLLBACK TO startpoint; END; / Query OK, 0 rows affected (0.003 sec)
  • 18. MariaDB Migration Practice services • Competence in MariaDB, MySQL, Oracle, SQL Server and several other database systems • Migration assessment – Assess if a migration is feasible – Determine application complexity – Determine an approximate effort for migration • Migration Proof-of-concept – Migrate distinct part of an application – Use to ensure that a migration is feasible, possible and useful – Uncover hidden complexities – Covers database and well as select application and infrastructure components
  • 19. MariaDB Migration Practice tasks • Schema migration • Data migration • Data validation • Database Procedural code migration – Including Procedural code validation • Application migration – MariaDB Migration Practice focus on the database specific aspects of the application • Application testing and tuning • Switchover
  • 22. Greetz – Oracle RAC to MariaDB Galera Cluster • Application – E-commerce for Personalized Greeting Cards • Business Challenges – High Availability – Cost – Predictable performance • Solution – Migrate from Oracle RAC to MariaDB Galera Cluster • Why MariaDB – Lower Total Cost of Ownership – Lower hardware cost – Lower DBA requirements “MariaDB’s controlled and structured approach gave us certainty in relation to data and enabled us to go live on time. I would not hesitate in working again with SkySQL and highly recommend them.“ — Giulio Gaioni, COO, Greetz
  • 23. Greetz Migration – Some details • Java application – Using Hibernate for database access • Application code required minimal effort – Certain hardcoded Hibernate objects required changing • Small amounts of PL/SQL code – Mostly used for reporting and DBA work – Replaced with Linux shell scripts and limited amount of MariaDB SQL/PSM code • Oracle RAC replaced by MariaDB Galera Cluster • Hardware was leased – Shared disk system could be returned immediately after migration – Significant part of migration cost saving • MariaDB Remote DBA to aid in database work
  • 24. DBS Bank – Migration from Oracle to MariaDB • DBS Bank Singapore – The biggest banks in Southeast Asia. – 27 applications have already been successfully migrated to MariaDB by 2017 • Including some of the most complex ones – Several more application in pipeline for 2018 • Heavy-duty transactional data mart for OLTP applications – Data is then provided to customer-facing applications – 16 countries, 250 tables, 130 procedures, 4 TB hot data, 15 TB cold data • Main drivers – Cost – Drive towards Open Source
  • 25. DBS Bank migration – Some challenges • Proof of Concepts – Many potential issues found during PoC • Density of internal application knowledge – Live application which has been growing over years → hundreds of procedures etc. • Dependency on Oracle features – CONNECT BY, PIPE ROW, non-1NF custom types – Feature development for frequently used constructs – Solution/workaround development for less frequently used constructs, e.g. collections • Complexity due to long-term growing architecture – Tight couplings and dependencies with neighboring systems – Direct access to tables from/to other applications, i.e. bypassing application calls