Technical Comparison Edb Postgres Enterprise and Oracle Enterprise Ebook
Technical Comparison Edb Postgres Enterprise and Oracle Enterprise Ebook
A TECHNICAL
COMPARISON
of EDB Postgres TM Enterprise
and Oracle® Enterprise
General / Capabilities........................................................ 8
Terminology..........................................................................9
Capacities........................................................................... 10
Indexes................................................................................ 14
SQL Capabilities................................................................. 15
SQL Extensions.................................................................. 16
Security................................................................................ 19
Integration........................................................................... 21
Application Development................................................ 22
Management ..................................................................... 28
Incompatibilities ............................................................... 29
APPENDIX A ..................................................................... 31
APPENDIX B..................................................................... 32
APPENDIX C......................................................................34
A Technical Comparison of EDB PostgresTM Enterprise and Oracle® Enterprise
INTRODUCTION
EDB Postgres Enterprise provides the performance, security, manageability features, and capabilities
required to power enterprise workloads. This frees up expensive proprietary database money that can
be redirected to new applications and digital transformation initiatives.
This potential to free up money in core IT is especially true for organizations using Oracle because EDB
Postgres Enterprise is also compatible with Oracle. EDB Postgres’ compatibility allows it:
This guide is intended to help you evaluate EDB Postgres’ capabilities and identify the workloads and
applications where EDB Postgres Enterprise can be used in place of Oracle.
4
In the pages that follow, you will find:
• A comparison of various aspects of Oracle Enterprise Edition from Oracle with EDB Postgres
Enterprise (EPE) featuring the EDB Postgres Advanced Server (EPAS) database from
EnterpriseDB (EDB).
• An emphasis on the issues of greatest interest to EDB prospects and customers as communicated
to us since EDB’s founding in 2004.
• A limited compilation of some options and tools used in the database or with the database software
in common deployments.
• A comparison of capabilities specific to any one version of Oracle. It’s also important to note that
EDB’s database compatibility features are driven specifically by customer requests, which span
many versions of Oracle.
• Product documentation. This information does not reflect Oracle or EDB’s product documentation.
It also does not include all of EDB Postgres Advanced Server’s compatibility features - only the
most popular ones. For a comprehensive list of features and official documentation, refer to the
information links below.
• A Total Cost of Ownership calculator. For actual pricing determinations and comparisons, readers
are advised to contact EDB at the link noted below.
• Download EDB Postgres Advanced Server and try it • Comparison of EDB PostgreSQL and EDB Postgres
Advanced Server
• Compatibility documentation: Database Compatibility
for Oracle® Developer’s Guide v9.5 • Contact EDB to meet with an EDB Sales Engineer
skilled in Oracle
• All documentation
• For a detailed Total Cost of Ownership discussion,
Contact EDB
In selecting new features for every software release, EDB focuses on the most popular features whose
value to customers meets one or more of the following criteria:
Reduced Technical Risk: This refers to objects or code created in Oracle that
can be migrated and executed “as is” against or inside an EDB Postgres
Advanced Server database and behave or produce the identical result as
they would in Oracle.
Reduced Re-Training Risk: This means that knowledge, skills, and tools most
frequently used with Oracle can also be used with EDB Postgres Advanced Server,
significantly reducing the learning curve needed to be productive quickly in either
creating new applications or migrating old ones.
Reduced Integration Risk: This means that EDB Postgres Advanced Server
databases and applications can integrate well with existing Oracle infrastructure
and non-database software that will be retained or cannot be changed for the
foreseeable future.
Tables Legend
Denotes whether the feature or characteristic is supported in
YES / NO
the database.
EVALUATING EDB
POSTGRESTM ENTERPRISE
General / Capabilities
There are a few foundational details prospective users should understand straight away when
comparing Oracle’s database with EDB Postgres Advanced Server. Both are mature, enterprise-class
object-relational databases that meet the industry standards for atomicity, consistency, isolation, and
durability (ACID) compliance. It’s also important to note the products were both developed from the same
seminal IBM research on System R, and designed to solve many of the same problems and so there is a
great deal of similarity.
PostgreSQL development
started in 1986. EPAS
CONTINUOUS development started in 2004.
1979
DEVELOPMENT SINCE EPAS is based on PostgreSQL
and continuously merged.
MULTI-VERSION
Yes Yes
CONCURRENCY CONTROL
AUTOMATIC WORKLOAD
Yes No
MANAGEMENT
Terminology
For all the work that has gone into making SQL a standard, there are still differences in nomenclature
used in many SQL based products. Some of the more important and perhaps non-obvious differences
are noted below.
Page
DATA BLOCK Data Block
When Block is on Disk.
PAGE Buffer
Page
When Block is in Memory.
Each instance of EDB Postgres Advanced Server is referred to as a “cluster.” A cluster is comprised of a data
directory that contains all data and configuration files and can be referred to in two ways: by location of the data
directory or by port number. A single server can have many installations and you can create multiple clusters using
the command: initdb.
10
Capacities
Some of the first questions raised when considering a new database involve capacity. DBAs and
developers need to understand whether a new solution has the capacity to support existing application
data designs, workloads, and anticipated growth. Applying the capacity of a new solution to an
organization’s workloads and future applications means understanding how it supports data across
multiple structures within the database.
For BLOB:
MAX. FIELD SIZE (4 GB - 1) x DB_BLOCK_SIZE 1 GB
Initialization Parameter
250-1600
MAX. COLUMNS PER TABLE 1000 Depending on
Column types.
11
Tables and Partitioning
The range of constructs within the database and how much flexibility DBAs have in organizing these
structures can impact performance as well as maintenance and other operational requirements. The
ability to partition a database improves performance, for example. Organizing data into distinct structures
and distributing them across the infrastructure also improves manageability, availability, and load
balancing. Materialized views allow DBAs to replace slow, resource-intensive runtime queries, complex
joins, or lengthy scans of data with simple, faster reads from pre-joined, pre-sorted, and stored results.
12
Data Types
Data types provide various ways for a DBMS to define, implement, and use information within the system
and put constraints on how data is interpreted by the database when multiple data types are in use.
EDB Postgres Advanced Server has very strong compatibility with Oracle data types and is highly
extensible allowing it to very quickly support new and emerging data types and workloads as they
become popular.
NUMBER ✓
also DEC, NUMERIC,
NUMBER SMALLINT (16-bit), INT,
INTEGER
BINARY_INTEGER,
PLS_INTEGER, INTEGER
(32-bit), BIGINT (64-bit)
BINARY_FLOAT ✓,
BINARY_DOUBLE ✓
BINARY_FLOAT,
FLOATING POINT also FLOAT, REAL (32-bit),
BINARY_DOUBLE
DOUBLE PRECISION
(64-bit)
NUMBER ✓
DECIMAL NUMBER also DEC, DECIMAL,
NUMERIC
CHAR ✓, VARCHAR2 ✓,
CHAR, VARCHAR2, CLOB, CLOB ✓, NCLOB ✓,
STRING NCLOB, NVARCHAR2, NCHAR, NVARCHAR2 ✓, NCHAR
LONG (deprecated) also CHARACTER, TEXT,
CHAR VARYING, CHARACTER
VARYING, VARCHAR
DATE ✓, TIMESTAMP ✓
DATE, TIMESTAMP (with/without TIMEZONE),
DATE/TIME (with/without TIMEZONE), INTERVAL ✓
INTERVAL also TIME
(with/without TIMEZONE),
13
14
Indexes
In order to provide optimal performance for the wide range of supported data types and new workloads
utilizing those data types, the database must also support a wide variety of indexes. EDB Postgres
Advanced Server is somewhat unique in this regard, especially its GiST index which allows for easy
development of specialized indexes for new data types.
Yes
REVERSE Yes A functional index can be used
to reverse the order of a field.
Yes
BLOCK RANGE INDEX Yes
Exadata Smart Scan is similar.
GiST
No Yes
Easy creation of specialized indexes.
GIN No Yes
Custom inverted indexes.
Yes
K-NEAREST-NEIGHBOR Using the package
Yes
DBMS_DATA_MINING
and Spatial option.
15
SQL Capabilities
Postgres Advanced Server strongly conforms to the ANSI-SQL:2008 standard. It also has Transactional
DDL which supports backing out even large changes to DDL, such as table creation. While you can’t
recover from an add/drop on a database or tablespace, all other catalog operations are reversible. This
feature is often used for protection when doing complicated work like schema upgrades. If you put all
such changes into a transaction block, you can make sure they all apply atomically or not at all. This
drastically lowers the possibility that the database will be corrupted by a typo or other such error in the
schema change, which is particularly important when you’re modifying multiple related tables where a
mistake might destroy the relational key.
16
SQL Extensions
Oracle has a number of SQL extensions that are very popular with Oracle users. While not standard to
the SQL language they provide a lot of utility and convenience to DBAs and developers. EDB Postgres
Advanced Server supports those most desired by EDB customers.
17
High Availability
Mission-critical workloads must remain operational at all times and have little tolerance for even planned
downtime for maintenance. This demand for high availability requires solutions that provide high speed
replication and redundancy to eliminate single points of failure in the system; failure detection and
automated failover to ensure systems continue to function in the event of a breakdown in the system;
and data and system recovery to assist DBAs following failure events.
Yes
Using Streaming
DATA GUARD Yes
Replication and
Log Shipping.
Yes
Using Streaming
ACTIVE DATA GUARD Yes Replication, Log Shipping,
Cluster Health Monitoring,
Failover and Replica Reads.
FLASHBACK TABLE,
DATABASE AND Yes No
TRANSACTION QUERY
BACKUP AND
Yes Yes
RECOVERY TOOLS
18
Performance / Scalability
Database operations may be optimized through various means to deliver higher performance.
Connection pooling, for example, refers to a common way of maintaining open connections to
the database for applications that repeatedly make requests as opposed to having to create new
connections each time. Data replication can increase performance by making information simultaneously
available to multiple end-user applications. These performance enhancements can be achieved through
database enhancements and various external complementary solutions.
Yes No
A shared everything A shared nothing architecture.
REAL APPLICATION architecture for High Availability is achieved with
CLUSTERS (RAC) Performance, High EDB Failover Manager or active/
Availability and passive clustering. Read scaling is
Read scaling. achieved with Replication.
Yes Yes
COLUMNAR STORE Using In-Memory Using cstore Foreign
Column Store. Data Wrapper.
19
Security
Database security encompasses many dimensions from secure connections to password management
to access control to physical data encryption to auditing and more. Among many commercial databases
and among all open source based databases, EDB Postgres Advanced Server is the most secure and
contains extensive support for PCI DSS.
Yes Yes
AUTHENTICATION
LDAP, SSL, RADIUS, PAM, LDAP, SSL, RADIUS, PAM,
SUPPORT
Kerberos, GSSAPI, SSPI Kerberos, GSSAPI, SSPI
DB CONNECTION
Yes Yes
ENCRYPTION
DB CONNECTION Yes
WHITE LISTS Using before Yes
connect triggers.
Yes
DB CONNECTION BLACK LISTS Using before Yes
connect triggers.
COLUMN LEVEL
Yes Yes
PERMISSIONS
20
Security cont'd
Only DBMS_RLS
REAL APPLICATION SECURITY Yes
functionality.
Yes
FINE GRAINED AUDITING Yes Using VPD policies to
insert audit trail into an audit
log upon access.
21
Integration
Today’s data centers commonly consist of one or more relational and many non-relational database
solutions deployed to handle specific workloads based on data type and application. Relational
databases utilize a range of mechanisms for connecting to other like and dissimilar database solutions
across the infrastructure in order to connect data from multiple sources and create a cohesive data
fabric. In some cases, the database is engineered with specific capabilities that enhance data
integration. Database vendors also develop adaptors that enable their database to connect with
other vendor solutions.
NATIVE SYNCHRONOUS
Yes Yes
LOG-BASED REPLICATION
SESSION BASED
No Yes
SYNCHRONOUS REPLICATION*
INTEGRATION WITH:
SQL Server Database Gateway EDB Replication Server
Sybase Database Gateway not available
Hadoop Oracle Data Integrator Data Adapter
MongoDB Golden Gate Data Adapter
MySQL Oracle Data Integrator Data Adapter
* It is possible, and often useful, to have some transactions commit synchronously and others asynchronously depending
on the session connected to the database.
22
Application Development
Databases are a foundation of today’s data-driven enterprise, and applications are increasingly
data-intensive. Vendors in turn work to continually enhance their database solutions to support the
needs of application developers, who seek the flexibility to make choices and simple ways for executing
complex tasks. For example, databases that can provide support for multiple server-side languages for
triggers, functions, and stored procedures give developers the option to choose their language for both
client, middle tier and database server programming. Object oriented capabilities like user-defined
object types allow the database to store real world representations of data thus making development
easier, quicker, and more understandable.
EDB Postgres
IDE SQL Developer Enterprise Manager
PL/pgSQL (PostgreSQL’s
Procedural Language)
ADDITIONAL PROGRAMMING
PL/Java
LANGUAGES FOR
Java C
DATABASE SERVER STORED
C++
PROCEDURES, TRIGGERS,
PL/Perl
AND FUNCTIONS
Python
PL/Tcl
EDB Postgres
PL/SQL DEBUGGER SQL Developer
Enterprise Manager
23
NAMED PARAMETER
NOTATION FOR STORED Yes Yes ✓
PROCEDURES
Yes ✓
PL/SQL SUPPLIED PACKAGES Yes
(See Appendix B)
PRAGMA
Yes Yes ✓
RESTRICT_REFERENCES
PRAGMA No
Yes
AUTONOMOUS_TRANSACTION
24
25
Yes Yes ✓
EMBEDDED C ecpgPlus
Pro*C
26
Yes
Yes Text- and High
JSON SUPPORT Text Based. Performance
Binary-Based.
COMPRESSION (TABLES,
FILES, NETWORK, Yes No
AND BACKUPS)
Yes
ETL via Data Integrator Yes
HADOOP INTEGRATION
Application Adapter for Hadoop Real-time Join with Relational Data
Yes Yes
MONGODB INTEGRATION
Golden Gate Adaptor Read/Write/Join
27
TRANSPORTABLE
CROSS-PLATFORM Yes No
TABLE SPACES
28
Management
Many enterprises have large database deployments often into the hundreds and beyond. DBAs require
tools for maintaining these data farms easily and quickly and for performing operations in bulk across
multiple databases. Customizable graphical consoles with a full compliment of features for monitoring,
tuning, managing, and alerting are paramount to DBAs performing the basics of their responsibilities.
Management encompasses both the capabilities within the database that support the DBA in their
operational tasks and tools external to the database as well.
Yes Yes ✓
SYSTEM CATALOG VIEWS
(See Appendix C)
AUTOMATIC MEMORY
Yes No
MANAGEMENT
AUTOMATIC Yes No
STORAGE MANAGEMENT
AUTOMATIC UNDO
MANAGEMENT Yes Yes
29
Incompatibilities
There are a number of incompatibilities between Oracle and EDB Postgres Advanced Server that are
either not yet addressed or worth noting because of fundamental differences.
Yes
AUTONOMOUS TRANSACTIONS Yes However, uses different syntax.
30
Deployment Options
With the advance of private, public, and private clouds and virtualization, the range of database
deployment options has increased for end users. The following provides a snapshot of the available
deployment options for Oracle Enterprise and EDB Postgres Enterprise.
Intel
AMD Intel
ON-PREMISES HARDWARE IBM Power AMD
Sun ultraSPARC IBM Power
Yes Yes
ON-PREMISES VIRTUAL With restrictions.
31
APPENDIX A:
Data Encryption Options
The following data encryption options offer different levels and granularity of protection depending on
the needs of the application.
File system disk partition is encrypted/ Individual files or directories are encrypted by
decrypted by the OS the file system
Protects all files in the database partition Requires file-based key management
including temporary files
Individual management of encrypted files
Data is decrypted when read from the (e.g. incremental backups) even in
filesystem. This allows DBAs to see encrypted form
the data – so have roles and permissions
locked down Access control can be enforced by use of
public-key cryptography
Transparent to application developers
Cryptographic keys are only held in memory
e.g. Red Hat Enterprise Linux supports while the file that is decrypted by them is
Linux Unified Key Setup-on-disk-format (LUKS) held open
32
APPENDIX B:
EDB Postgres Advanced Server
Compatible Package Support
EDB focuses on the most popular functions within packages. Hence for some packages not all Oracle
functions may be supported. For specific details refer to the Database Compatibility for Oracle®
Developer’s Guide
DBMS_ALERT Functions that allow asynchronous notification of database events via an Alert.
Using this package and triggers, an application can notify itself whenever values of
interest in the database are changed.
DBMS_JOB Has been replaced by DBMS_SCHEDULER but included for compatibility with older
Oracle applications.
DBMS_LOB Functions that allow access to and manipulation of Large Object values.
DBMS_OUTPUT Allows the sending of messages from stored procedures, packages, and triggers for
application or debugging use.
DBMS_PIPE Functions that allow two or more sessions in the same database instance to
communicate with one another.
DBMS_SCHEDULER Job scheduler functions for creating and executing unattended repetitive tasks
inside the database.
DBMS_RANDOM Useful functions to generate random text, numeric and date values.
33
DBMS_RLS Implements row level security functions in the database blocking users
from seeing each other’s data in the same application.
UTL_FILE Allows database procedures to read and write operating system text files
in an I/O stream fashion.
UTL_HTTP Functions that provide the ability to make HTTP calls to access
information on web servers.
UTL_MAIL Provides functions to create, manage, and send email from the database
including attachments, CC, and BCC.
UTL_SMTP Provides functions for sending mail via SMTP according to the RFC821
specification.
34
APPENDIX C:
EDB Postgres Advanced Server
Compatible Catalog Views
EDB Postgres Advanced Server provides over 70 Oracle Catalog Views that provide information about
database objects in a manner compatible with the Oracle data dictionary views.
DBA_CONS_COLUMNS USER_CONS_COLUMNS
35
www.enterprisedb.com
Copyright © EnterpriseDB Corporation, 2018. All Rights Reserved.
20180307