Upload
enterprisedb
View
116
Download
1
Embed Size (px)
Citation preview
1
Product UpdateEDB Postgres Platform 2017
Advances in Postgres Set New Digital Business Standard: More Workloads, Larger Data Sets, and Greater Integration
Agenda
• An Overview of EDB Technologies• EDB Postgres Platform Update – Winter 2017
• EDB Postgres Advanced Server 9.6• Backup and Recovery 2.0• Replication Server 6.1
EDB Technologies Updates in Winter 2017
EDB Postgres Platform Update – Winter 2017
EDB Postgres Advanced Server 9.6• Migrate more applications from Oracle and support ISVs• Manage larger data sets • Faster analytic queries• Build more robust clustering, scale out & integration solutions• Improved monitoring
Backup and Recovery 2.0• Faster backups with block level incremental change capture
Replication Server 6.1• Updated support for Oracle 12c, SQL Server 2012• Parallel replication for multi master improves performance with
multiple active nodes
Feature Highlights for Postgres Advanced Server 9.6
• DBMS_AQ Advance Queuing• Nested Sub-procedures• Partitioned Table performance
enhancements• EDBLDR Enhancements• Oracle compatibility features
PostgreSQL 9.6Postgres Advanced Server 9.6
Parallel sequential scans, joins and aggregatesElimination of repetitive scanning of old data by autovacuumSynchronous replication support for multiple standby servers Full-text search for phrasesSupport for remote joins, sorts, and updates in postgres_fdw
Focus on Security, Scalability, and Enterprise Readiness
EDB: Oracle Compatible DBMS_AQ:
• Business applications communicate with each other
• Producer applications enqueue messages
• Consumer applications dequeue messages
Implemented in database tablesStandard database features apply
• Recovery• Restart• Security
Advanced Queuing provides database-integrated message queuing functionality
EDB: Oracle Compatible DBMS_AQ:
• DBMS_AQADM.CREATE_QUEUE_TABLE: Creates a new queue table that can physically hold any number of queues.
• DBMS_AQADM.CREATE_QUEUE: Creates a new queue in an existing queue table.
• DBMS_AQADM.DROP_QUEUE: Drops an existing queue.
• DBMS_AQADM.DROP_QUEUE_TABLE: Drops an existing queue table.
• DBMS_AQADM.ALTER_QUEUE: Modifies an existing queue.
• DBMS_AQADM.ALTER_QUEUE_TABLE: Modifies an existing queue table.
• DBMS_AQADM.START_QUEUE: Enables enqueuing and/or dequeuing in an existing queue.
• DBMS_AQADM.STOP_QUEUE: Disables enqueue and/or dequeue in existing queue.
DBMS_AQ.ENQUEUE: Posts a message to a queue. Messages can optionally be delayed, so that they are not available for dequeuing for a certain number of seconds. Messages can optionally have an expiry time limit, so that they will expire and move to the exception queue if they are not dequeued after a certain number of seconds.
DBMS_AQ.DEQUEUE: Retrieves a message from a queue if one is available, and optionally waits for one to become available.
DBMS_AQ.REGISTER: Registers a callback procedure that will be invoked in a background worker when messages are enqueued.
DBMS_AQ.UNREGISTER: Unregisters a callback procedure previously registered with REGISTER.
Packages: DBMS_AQ and DBMS_AQADM
Advantages of Advanced Queuing
• Interactions are integrated with database transactions, so messages are only enqueued or dequeued if a transaction commits.
• Simple asynchronous processing using background workers and any supported stored procedure language.
• Queue operations can be used in triggers.• A system of retries and exception handling is integrated with database
transactions.• No extra services/daemons required.• Messages are persistent and covered by existing backup procedures.
EDB: Oracle Compatible Nested Sub Procedures
• Defined in the declaration part of the enclosing procedure or function
• Support for both Procedures and Functions• Procedures perform an action• Functions compute a value
Named PL/SQL blocks that can be called with a set of parameters Starts with the PROCEDURE or FUNCTION key word
“A named procedure defined and used inside another procedure or function”
SQL> CREATE OR REPLACE PROCEDURE HR.DBA_WEEK AS 2 PROCEDURE DBA_TASK (day VARCHAR2) AS 3 BEGIN 4 IF day = 'MONDAY' THEN 5 DBMS_OUTPUT.PUT_LINE('Checking log files.'); 6 ELSIF day = 'FRIDAY' THEN 7 DBMS_OUTPUT.PUT_LINE('Rebuild indexes.'); 8 ELSE 9 DBMS_OUTPUT.PUT_LINE('Reading some papers.'); 10 END IF; 11 END; 12 BEGIN 13 DBA_TASK('MONDAY'); 14 DBA_TASK('TUESDAY'); 15 END; 16 / SQL> EXECUTE DBA_WEEK; Checking log files. Reading some papers.
EDB: Oracle Compatible Nested Sub Procedures
Simple Procedure Example
Nested Sub Procedure
Main Procedure
EDB: Oracle Compatible Nested Sub Procedures
Simple Function example
SQL> CREATE OR REPLACE PROCEDURE SUM_TEST AS 2 FUNCTION MY_SUM(X NUMBER, Y NUMBER) 3 RETURN NUMBER AS 4 BEGIN 5 RETURN X + Y; 6 END; 7 BEGIN 8 DBMS_OUTPUT.PUT_LINE('3 + 5 = ' || 9 TO_CHAR(MY_SUM(3,5))); 10 DBMS_OUTPUT.PUT_LINE('5 + 3 = ' || 11 TO_CHAR(MY_SUM(5,3))); 12 END; 13 / SQL> EXECUTE SUM_TEST; 3 + 5 = 8 5 + 3 = 8
Nested Sub Function
Main Procedure
EDB Advanced Server: Compatibility with Oracle
• EDBLDR compatibility with Oracle SQLLDR• Oracle Style Parallel Hints• OLD and NEW• Compatible “all_directories” View
Additional features
EDB Advanced Server: Compatibility with Oracle
EDBLDR:• NULLIF• SELECT EXPRESSIONS• Datatype(length)• BOUNDFILLER• Column name in when
clause
Examples:deptno POSITION(1:2) INTEGER EXTERNAL(2) NULLIF deptno=BLANKS,
job POSITION (15:23) "(SELECT dname FROM dept WHERE deptno = :deptno)”
RECORD_CODE BOUNDFILLER CHAR(3)• c1,
field2 BOUNDFILLER, field3 BOUNDFILLER, c2 ":field2 || :field3”WHEN (1:3) = “200” now WHEN EMPNO= “200”
Additional features
EDB Advanced Server: Performance
Partitioning:• Fast Pruning for more datatypes (varchar, smallint)• Fast Pruning for Prepared Statements• Exchange Partition Improvements (compatible with Oracle
behavior)Parallelism:
• Parallel Clause within SPL Package Body (Parallel safe or unsafe)
dblink:• Join pushdown• Sort pushdown
Highlights
PostgreSQL 9.6
Parallelism:• Sequential Scan• Nested Loops and Hash
Joins• Aggregates• Group Locking
Phase 1:• Better performance for read
only transactions• Sequential scan, Aggregations,
Hash Joins and Nested Loops can be parallelized
• Parallel infrastructure: designate a group of processes whose locks will be mutually non-conflicting
Highlights
PostgreSQL 9.6
PostgreSQL FDW:• Join pushdown• DML pushdown• Sort pushdown• Sorted Joins pushdown
Push processing to the remote system to minimize I/O
Highlights
PostgreSQL 9.6
• Snapshot too old
• Freeze Map
Reduce BLOAT when long running queries prevented VACUUM from running
New bit in the freeze map lets VACUUM skip frozen pages
Highlights
PostgreSQL 9.6
• Multiple Synchronous standbys
• Full Text search for Phrases
• Monitoring:• VACUUM Progress checker• pg_stat_activity improvements
• Synchronous Replication now supports multiple standby servers
• Support searching for Phrases (adjacent, distance)
• Progress reporting for VACUUM operations
• Waits for lightweight locks and buffer pins are now shown in pg_stat_activity (until now only heavyweight locks were)
Highlights
Backup and Recovery: BART 2.0
• Complete, hot, physical backups of multiple local or remote Postgres servers
• Block level Incremental backup• Policy enforced management of files required for recovery• Store backup data in compressed formats • Verify backup data with MD5 checksum• Disk space awareness• Rich reporting to show backup time, size, WAL file information• Optional friendly name for backups
Simplify and reduces errors with a system-wide catalog and command line tool that allows online backup and recovery across local and remote PostgreSQL and PPAS Servers.
Block Level Incremental Backup
Supported with Postgres 9.5+• WAL from DB scanned using the XLogReader API.
Basic concept -• WAL scanner runs in the background & identifies data
that has changed and the location of the modified blocks.
• BAR generates an MBM (Modified Block Map) file for each WAL that indicates which blocks have changed.
• A harvester process creates a CBM (Consolidated Block Map) out of the MBMs and fetches modified blocks.
• Restore process copies blocks from CBM to restored server.
Incremental Backup decreases amount of time required for backup and minimizes the amount of storage required
Postgres 9.5+
WAL Files
BAR 1.2
1) WAL Scanner identifies modified blocks
2) Harvester collects modified blocks direct from DBServer
3) Restore process copies modified blocks from backup server. Drop or truncate actions result in file removal or truncation
basebackup
Modified blocks fetched via libpq
Replication Solutions for Postgres
Native Replication in Postgres EDB Replication ServerFull database replication only Table based replication with row level
filtering supportRead only replicas with no multi master capabilities
Options for read only or multi master
No replication to non-Postgres sources Replicate to and from Oracle 10g, 11g, 12c* and SQL Server 2005, 2008, 2014*
Minimal cross version replication Replication across PostgreSQL and EDB Postgres Advanced Server 9.1 to 9.6
* Updated in 6.1
EDB Replication Server Highlights
• Distributed Publication / Subscription Architecture• 6.1 updates support for Oracle 12c, SQL Server 2014
• Snapshot and continuous synchronization modes• 6.0 added Log Based replication from Postgres• 6.1 optimizes for parallel synchronization with multiple active nodes
• Replicate one or more tables• 6.0 added pattern matching selection rules for easier to configure publication tables
• Define and apply row filters• Flexible replication scheduler• Supports cascading replication• Replication History Viewer• Graphical Console and CLI
Recap - EDB Postgres Platform Update – Winter 2017
EDB Postgres Advanced Server 9.6• Migrate more applications from Oracle and support ISVs• Manage larger data sets • Faster analytic queries• Build more robust clustering, scale out & integration solutions• Improved monitoring
Backup and Recovery 2.0• Faster backups with block level incremental change capture
Replication Server 6.1• Updated support for Oracle 12c, SQL Server 2014• Parallel replication for multi master improves performance with
multiple active nodes
24
QUESTIONS?
25