Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Postgres for Oracle people
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Professional Services
For professional services or support contracts for
all of your Oracle to PostgreSQL or Open Source
needs, please contact CMD at:
● +1.503.667.4564
● sales@commandprompt.com
● https://www.commandprompt.com/
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Who Am I
● @jdatcmd/@linuxhiker
● jd@commandprompt.com
● Lead Architect – Command Prompt, Inc.
● Director & Founder – PgUS (501c3)
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Why PostgreSQL
● Licensing
● Community
● Business
● Tech!
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Licensing
● BSD licensed
● Can I?
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Can I?
● Fork it?: Yes
● Close it?: Yes
● Modify it?: Yes
● Not share it?: Yes
● Throw it away?: Yes
● Sue you?: Nein!
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Community
● Large International Community:
– Postgresql.org
● Postgresql.us
● Postgresql.eu
– Germany, Nordic, France, Italy...
● Postgresql.jp
● Postgres.cn
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Business
● Costs
● Support
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Costs
● PostgreSQL is 100% free.
– Zero cost to download
– Zero cost to install
– Zero cost to support (assuming expertise)
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Established companies
(Support)
● Command Prompt, Inc (oldest, yes that’s us)
● Crunchy
● Credativ
● OmniTI
● OpenSCG
● 2ndQuadrant
(list goes on and on)
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
EnterpriseDB?
● They specialize in a closed source fork not
Open Source PostgreSQL
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Tech
● The basics
● Features
● Quirks
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
The basics
● ACID Compliant
●
Rich datatypes
– Standards such as varchar(), integer, numeric etc..
– XML, JSON/B, Money, Hstore...
● Rich builtin functions
– to_char(),to_date(),overlaps(),enum_first(),xpath(),greatest(),in(),any(),some(),trim,overlay()...
●
Constraints
– CHECK, PRIMARY KEY, NOT NULL…
● Referential Integrity
– Foreign Keys (Deferrable, Initially Deferred)
● Partitioning
● SCHEMA (namespaces)
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Features
● Solid SQL implementation
● Mature code base
● “Enterprise”
● Cool stuff’
● Of note
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Solid SQL Implementation
No current version of any database management
system claims full conformance to Core SQL:2011.
PostgreSQL supports most of the major features of
SQL:2011. Out of 179 mandatory features required for
full Core conformance, PostgreSQL conforms to at
least 160. In addition, there is a long list of supported
optional features.
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
ISO/IEC SQL Implementation
● ISO/IEC 9075-1 (SQL/Framework)
● ISO/IEC 9075-2 (SQL/Foundation)
● ISO/IEC 9075-9 (SQL/MED)
– FDW, DBI-LINK
● ISO/IEC 9075-11 (SQL/Schemata)
● ISO/IEC 9075-14 (SQL/XML)
– Native XML handling and functions
● ISO/IEC 9075-13 (SQL/JRT(Java))
– PL/JAVA
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Mature code base
PostgreSQL started as Ingres at the University
of California, Berkeley in the 1970s.
Current iterations have been in continual
development since 1997.
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Enterprise features
● It’s Free! No licensing audits.
● FDW
● Backup and recovery
● Replication
● Table spaces
● Transactional DDL
● UDF
– We don’t have packages
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
It’s free. No licensing audits
● Oracle has spawned an entire industry to
defend against the possibility of an audit.
● PostgreSQL has spawned an entire industry
letting businesses and developers use a
database.
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
FDW
Foreign Data Wrappers
Connect to external data sources including
Oracle! (CREATE DATABASE LINK)
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Backups and Recovery
● Online logical backups (pg_dump/pg_dumpall)
● Online binary backups (pg_basebackup,
pgBackrest, (tar,cpio,cp,rsync))
● Point In Time Recovery (PITR)
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Replication
● Logical Replication (pgLogical, Slony, Londiste)
● Binary Replication (Warm,Cold and Hot
Standby). SYNC AND ASYNC
● Load balancing
– Pgpool-II->Master->(n)Slaves
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Table Spaces
Postmaster
Warehouse
TBLSpace
Transactional
TBLSpace
Indexes
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Transactional DDL
BEGIN;
CREATE TABLE foo (
id BIGSERIAL PRIMARY KEY,
fname TEXT NOT NULL
CHECK(fname ~ ‘[^[:alnum:]_]’)
);
COMMIT/ROLLBACK;
BEGIN;
ALTER TABLE foo ADD COLUMN lname TEXT NOT NULL;
SELECT test_foo_column_laname();
COMMIT/ROLLBACK;
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
UDF
● Can be written in a number of languages
– C
– SQL
– PL/PgSQL (similar to PL/SQL)
– Python
– Ruby
– Perl
– V8 (JavaScript)
– Java
– Lots more
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Cool stuff
● Savepoints
● Two Phase Commit
– XA
● SELinux integration
● Column, Row permissions (versus just relation)
● Extensions
● GIS/Postgis
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Savepoints
● Similar to Oracle:
BEGIN;
INSERT INTO table1 VALUES (1);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (2);
ROLLBACK TO SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (3);
COMMIT;
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Two Phase Commit
● Intended use by external transaction managers
– XA implementation via JDBC driver
● Can be used via SQL
● Review: max_prepared_transactions
configuration parameter
● Always clean up, will interfere with maintenance
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
selinux
● For more information
visit:
https://wiki.postgresql.org/wiki/SEPostgreS
QL_SELinux_Overview
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Column/Row Permissions
● Column level privs are set using standard
GRANT/REVOKE
● ROW level privs are set via a policy method:
https://www.postgresql.org/docs/9.5/static/ddl-rowsecurity.html
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Extensions
● Column Database (Citus)
● Auditing (PgAudit)
● Case insensitive index search (Citext)
● And more (pgxn.org)
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Of note
● Use TEXT for CLOB, BYTEA (or lo) for BLOB
● NULL is different:
postgres=# create table bar(a text);
CREATE TABLE
postgres=# insert into bar values('');
postgres=# select * from bar where a IS NULL;
a
---
(0 rows)
postgres=# insert into bar values(NULL);
postgres=# select * from bar where a IS NULL;
a
---
(1 row)
● PostgreSQL has a boolean data type.
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
GIS/PostGIS
● Full Geometric support including
– Datatypes
– Functions
● Extended support through PostGIS (external
project).
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Of note (2)
● No connect by
– Use “WITH RECURSIVE”
● PostgreSQL is much more reliant on the host
operating system than Oracle. Make sure you
are running an LTS, UNIX (Solaris) or
FreeBSD.
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Tools for easing migration
● Ora2pg
– Complete migration toolkit
● Orafce
– Implements compatibility layers that are 10g
compatible including but not limited to:
● Oracle date functions
● Oracle.date data type
● Oracle data operators etc...
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
What we don’t have
● No RAC
● No Packages
● No Flashback (on main system, can be
achieved via PITR/Cold standby)
Command Prompt, Inc.
http://www.commandprompt.com/
@cmdpromptinc
Questions?
● Business
● Community
● Technical

More Related Content

PDF
Oracle to Postgres Migration - part 2
PDF
PostgreSQL : Introduction
PPTX
A simple introduction to redis
PDF
MySQL Timeout Variables Explained
PPTX
Caching solutions with Redis
PDF
MS-SQL SERVER ARCHITECTURE
PPTX
Introduction to Redis
PDF
The Oracle RAC Family of Solutions - Presentation
Oracle to Postgres Migration - part 2
PostgreSQL : Introduction
A simple introduction to redis
MySQL Timeout Variables Explained
Caching solutions with Redis
MS-SQL SERVER ARCHITECTURE
Introduction to Redis
The Oracle RAC Family of Solutions - Presentation

What's hot (20)

PPTX
Migration from Oracle to PostgreSQL: NEED vs REALITY
PPTX
Oracle to Postgres Schema Migration Hustle
 
PDF
Postgresql database administration volume 1
PPTX
PostgreSQL- An Introduction
PDF
Get to know PostgreSQL!
PPS
PDF
ProxySQL Cluster - Percona Live 2022
PDF
Migrating Oracle database to PostgreSQL
PPTX
PostgreSQL Database Slides
PDF
Introduction to MongoDB
PDF
SQLServer Database Structures
PDF
Oracle to Postgres Migration - part 1
PPTX
Lightweight Transactions in Scylla versus Apache Cassandra
PDF
Dd and atomic ddl pl17 dublin
PPT
Introduction to redis
PDF
Top 65 SQL Interview Questions and Answers | Edureka
PDF
PDF
Postgresql tutorial
PDF
Achieving Continuous Availability for Your Applications with Oracle MAA
PDF
Redis cluster
Migration from Oracle to PostgreSQL: NEED vs REALITY
Oracle to Postgres Schema Migration Hustle
 
Postgresql database administration volume 1
PostgreSQL- An Introduction
Get to know PostgreSQL!
ProxySQL Cluster - Percona Live 2022
Migrating Oracle database to PostgreSQL
PostgreSQL Database Slides
Introduction to MongoDB
SQLServer Database Structures
Oracle to Postgres Migration - part 1
Lightweight Transactions in Scylla versus Apache Cassandra
Dd and atomic ddl pl17 dublin
Introduction to redis
Top 65 SQL Interview Questions and Answers | Edureka
Postgresql tutorial
Achieving Continuous Availability for Your Applications with Oracle MAA
Redis cluster
Ad

Similar to PostgreSQL for Oracle Developers and DBA's (20)

ODP
1. MySql plugins
PDF
Must Know Postgres Extension for DBA and Developer during Migration
PDF
MySql's NoSQL -- best of both worlds on the same disks
PDF
POUG2019 - Test your PL/SQL - your database will love you
PDF
Bgoug 2019.11 test your pl sql - not your patience
PDF
When it all GOes right
PDF
Sprint 157
PDF
The Foreman Project
PDF
Prometheus and Docker (Docker Galway, November 2015)
PDF
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
PDF
3 query tuning techniques every sql server programmer should know
PDF
MySQL 5.7 -- SCaLE Feb 2014
PDF
Fuzzing softwares for bugs - OWASP Seasides
PDF
Bootify Yyour App from Zero to Hero
PDF
PHP Development Tools
PDF
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
PDF
Gdb basics for my sql db as (percona live europe 2019)
KEY
Grabbing the PostgreSQL Elephant by the Trunk
PDF
An evening with Postgresql
PDF
Docker Monitoring Webinar
1. MySql plugins
Must Know Postgres Extension for DBA and Developer during Migration
MySql's NoSQL -- best of both worlds on the same disks
POUG2019 - Test your PL/SQL - your database will love you
Bgoug 2019.11 test your pl sql - not your patience
When it all GOes right
Sprint 157
The Foreman Project
Prometheus and Docker (Docker Galway, November 2015)
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
3 query tuning techniques every sql server programmer should know
MySQL 5.7 -- SCaLE Feb 2014
Fuzzing softwares for bugs - OWASP Seasides
Bootify Yyour App from Zero to Hero
PHP Development Tools
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Gdb basics for my sql db as (percona live europe 2019)
Grabbing the PostgreSQL Elephant by the Trunk
An evening with Postgresql
Docker Monitoring Webinar
Ad

More from Gerger (13)

PDF
Source Control for the Oracle Database
PDF
Big Data for Oracle Professionals
PDF
Apache Spark, the Next Generation Cluster Computing
PDF
Best Way to Write SQL in Java
PDF
Version control for PL/SQL
PDF
Gitora, Version Control for PL/SQL
PDF
Gitora, Version Control for PL/SQL
PDF
Shaping Optimizer's Search Space
PDF
Gitora, Version Control for PL/SQL
PDF
Monitoring Oracle Database Instances with Zabbix
PDF
Introducing ProHuddle
PDF
Use Cases of Row Pattern Matching in Oracle 12c
PDF
Introducing Gitora,the version control tool for PL/SQL
Source Control for the Oracle Database
Big Data for Oracle Professionals
Apache Spark, the Next Generation Cluster Computing
Best Way to Write SQL in Java
Version control for PL/SQL
Gitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQL
Shaping Optimizer's Search Space
Gitora, Version Control for PL/SQL
Monitoring Oracle Database Instances with Zabbix
Introducing ProHuddle
Use Cases of Row Pattern Matching in Oracle 12c
Introducing Gitora,the version control tool for PL/SQL

Recently uploaded (20)

PPTX
O2C Customer Invoices to Receipt V15A.pptx
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Hybrid model detection and classification of lung cancer
PDF
August Patch Tuesday
PDF
CloudStack 4.21: First Look Webinar slides
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PPTX
Modernising the Digital Integration Hub
PPTX
Web Crawler for Trend Tracking Gen Z Insights.pptx
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
O2C Customer Invoices to Receipt V15A.pptx
Group 1 Presentation -Planning and Decision Making .pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Benefits of Physical activity for teenagers.pptx
Hybrid model detection and classification of lung cancer
August Patch Tuesday
CloudStack 4.21: First Look Webinar slides
Assigned Numbers - 2025 - Bluetooth® Document
Final SEM Unit 1 for mit wpu at pune .pptx
Modernising the Digital Integration Hub
Web Crawler for Trend Tracking Gen Z Insights.pptx
A contest of sentiment analysis: k-nearest neighbor versus neural network
Enhancing emotion recognition model for a student engagement use case through...
Chapter 5: Probability Theory and Statistics
Univ-Connecticut-ChatGPT-Presentaion.pdf
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
observCloud-Native Containerability and monitoring.pptx
Zenith AI: Advanced Artificial Intelligence
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf

PostgreSQL for Oracle Developers and DBA's