<<

MySQL @ Oracle

Carsten Thalheimer

Sales Consultant MySQL GBU ([email protected]) Agenda 1 MySQL within Oracle

2 Overview of MySQL architecture

3 Inside MySQL

4 Commercial MySQL vs. „“ MySQL

5 MySQL Subscription / MySQL License

6 A MySQL Reference 7 Questions and Answers

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 2 MySQL within Oracle More Investment, More Innovation

... 20 Years MySQL … 10 Years InnoDB of Oracle Stewardship … 5 Years MySQL within Oracle

 2x Engineering Staff  3x QA Staff 2009  2x Support Staff 2015

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 3 Source: http://db-engines.com/en/ranking

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Source: http://db-engines.com/en/ranking

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Driving MySQL Innovation Year 2010 – 2013 (from MySQL Release 5.1 to MySQL Release 5.6)

MySQL Enterprise Monitor 2.2 MySQL Cluster Manager 1.1 MySQL Enterprise Backup 3.7 MySQL 5.6 MySQL Cluster 7.1 Oracle VM Template for MySQL MySQL Cluster 7.2 MySQL Utilities 1.3 MySQL Cluster Manager 1.0 Enterprise Edition MySQL Cluster Manager 1.2 MySQL Cluster 7.3 MySQL Workbench 5.2 MySQL Enterprise Oracle Certifications MySQL Utilities 1.0 MySQL Workbench 6.0 MySQL Database 5.5 MySQL Windows Installer MySQL Migration Wizard MySQL Enterprise Monitor 3.0 MySQL Enterprise Backup 3.5 MySQL Enterprise Security MySQL for Excel 1.0 / 1.1 MySQL Enterprise Backup 3.9 MySQL Enterprise Monitor 2.3 MySQL Enterprise Scalability MySQL Enterprise Backup 3.8 MySQL Yum repository

MySQL Enterprise Audit

MySQL Enterprise HA (DRBD)

All GA! - 2010 All GA! - 2011 All GA! - 2012 All GA! - 2013 and

Connector/ODBC, Connector/PHP, Connector/Net, Connector/J, Connector Python, Connector /++, Connector/C, Ruby Driver …

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Driving MySQL Innovation (Fall 2015) Year 2014 Year 2015

New Data Dictionary: Replacing FRMs MySQL Cluster Manager 1.3

Optimizer improvements, Cost model MySQL Workbench 6.1 & 6.2 5.7.1 MySQL HTTP Plugin MySQL for Excel 1.2 & 1.3 5.7.2 MySQL Multi-source MySQL Enterprise Backup 3.10, 3.11, 312 5.7.3 Intra-Schema Multi-Threaded Slave 5.7.4 Oracle Clusterware XAG Agent for MySQL

MySQL Group Replication 5.7.5 MySQL Utilities / Fabric 1.4 & 1.5 MySQL JSON UDFs 5.7.6 MySQL Enterprise Manager Plugin (EM 12c) MySQL Applier for Hadoop 5.7.7 (RC1) MYSQL Enterprise Backup 3.11 5.7.8 (RC2) MySQL Enterprise Encryption

5.7.9 GA Latest: MySQL 5.5.45 / 5.6.26 MySQL Cluster 7.2.21/7.3.10/7.4.7 MySQL Labs – 2014/2015 DMR* 2013/2014/2015 *Development Milestone Release GA! And of course … Connector/ODBC, Connector/PHP, Connector/Net, Connector/J, Connector Python, Connector /C++, Connector/C, Ruby Driver

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

MySQL – The from the moon

• MySQL < 5.0/5.1 [pre Oracle] - MyISAM default, InnoDB optional Before 2010 - Very often defaults in Linux distributions

• MySQL 5.5  more ‘SQLish’ - First release under Oracle Dec 2010 - InnoDB default (MVCC, ACID), MyISAM optional - MS Windows optimized

• MySQL 5.6  Replication revamp - InnoDB+, GTID, NoSQL, Performance SchemaIn Feb 2013 - Used by some of the biggest - Introduction of MySQL Fabric

• MySQL 5.7  New ways … - InnoDB++, GIS Support, QRP, Instrinc Tables 2015 (NoSQL and JSON) - MultiThreaded Sls, MultiSourceRpl, Group Rpl - MySQL Fabric, SemiSync+

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 8 Agenda 1 MySQL within Oracle

2 Overview of MySQL architecture

3 Inside MySQL

4 Commercial MySQL vs. „Open Source“ MySQL

5 MySQL Subscription / MySQL License

6 A MySQL Reference

7 Questions and Answers

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 9 Server runs on MS Windows, MySQL Database Linux, Solaris and others OSes Efficient multi- Support for common threaded session development handling languages/platforms

Full DML, DDL parsing, cost based optimizer, caching of queries and result sets

Flexible Storage Engine  InnoDB Default! ACID Transactions, Crash Recovery, Foreign Keys, Up to 64 TByte

Flexible logging and physical storage options Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7 Sysbench Benchmark: OLTP Read Write 1.5x Faster than MySQL 5.6 3x Faster than MySQL 5.5

MySQL 5.7: Sysbench OLTP Read Write 700.000

600.000 MySQL 5.7

500.000

400.000 MySQL 5.6 300.000

200.000 Queries per Second per Queries MySQL 5.5 100.000

0 8 16 32 64 128 256 512 1.024 Intel(R) Xeon(R) CPU E7-8890 v3 Connections 4 sockets x 18 cores-HT (144 CPU threads) 2.5 Ghz, 512GB RAM Linux kernel 3.16

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 11 MySQL 5.7: InnoDB Improvements - Sysbench Benchmark

Scaling with InnoDB, 5.6 (up to 48 CPUs*) vs. 5.7 (beyond 72 CPUs*) * CPU Cores-HT

MySQL 5.7: Sysbench – OLTP Read Write 700.000

600.000 MySQL 5.7

500.000 MySQL 5.6 400.000

300.000 MySQL 5.5

Queries per Second per Queries 200.000

100.000

0 18 36 72 Intel(R) Xeon(R) CPU E7-8890 v3 CPU Cores – HT 4 sockets x 18 cores-HT (144 CPU threads) 2.5 Ghz, 512GB RAM Linux kernel 3.16

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL Replication (HA’) • Native to MySQL, Duplicates updates from a “master” to a “slave” • Failover is either scripted or provided by additional middleware • Supports Asynchronous and Semi-Synchronous replication • Most common solution for HA – Used to scale out as well

Web / App Servers

Writes & Reads Reads

Master

Master Status & Administration Switchover Utility

Slaves

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL Fabric 1.5 (HA’’) High Availability • High Availability Application Application – Server monitoring with auto-promotion and transparent application failover Connector Connector • Fabric-aware connectors: MySQL Fabric Python, , PHP (lim. HA yet), .NET, C (labs)

• Or MySQL Router (DMR)

Read-slaves HA group

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 14 Core New JSON features in MySQL 5.7 • Native JSON datatype • JSON Functions • Generated Columns

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 15 Advantages of New Datatype JSON 1. Provides Document Validation:

INSERT INTO employees VALUES ('some random text');

ERROR 3130 (22032): Invalid JSON text: "Expect a value here." at position 0 in value (or column) 'some random text'.

2. Efficient Binary Format Allows quicker access to object members and array elements

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 16 Naive Performance Comparison Using short cut for Unindexed traversal of 206K documents JSON_EXTRACT. Coming in 5.7.9. # as JSON type # as TEXT type SELECT DISTINCT SELECT DISTINCT feature->"$.type" as json_extract feature->"$.type" as json_extract FROM features; FROM features; +------+ +------+ | json_extract | | json_extract | +------+ +------+ | "Feature" | | "Feature" | +------+ +------+ 1 row in set (1.25 sec) 1 row in set (12.85 sec)

Explanation: Binary format of JSON type is very efficient at searching. Storing as TEXT performs over 10x worse at traversal.

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 17 Meta data change only Generated Columns Support Indexes! (FAST). Does not need to touch .

ALTER TABLE features ADD feature_type VARCHAR(30) AS (feature- >"$.type");

ALTER TABLE features ADD INDEX (feature_type); Creates index only. Does not modify table rows.

SELECT feature FROM features WHERE feature_type = “feature“; ...

SELECT feature FROM features WHERE feature->"$.type” = “feature”; … Optimizer automatically recognizes Index expressions

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 18 MySQL 5.6 / 5.7: InnoDB, NoSQL ()

6x Faster than MySQL 5.6 1 Million QPS MySQL 5.7 vs 5.6 - InnoDB & Memcached

1.200.000 MySQL 1.000.000 5.7 800.000 600.000 400.000 MySQL 200.000 5.6 Queries per Second per Queries 0 8 16 32 64 128 256 512 1.024 Connections Same app can leverage: . Key-value access to InnoDB via Memcached API Intel(R) Xeon(R) CPU E7-4860 x86_64 4 sockets x 10 cores-HT (80 CPU threads) . SQL for rich queries, fully transactional 2.3 GHz, 512 GB RAM 6.5 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 19

The perfect MySQL Server … it’s 2015 

. Choice of – Linux or Windows or Solaris or … ? . MySQL in virtual environments or within Cloud Environments? . Does a server with more than >>80 CPU Threads make sense? . InnoDB loves , (DB size + Index) < available Memory . Fast HD or SSD or RAID10? . Own disk/ for MySQL data (EXT4 and XFS if possible)? . Dedicated NICs for Replication?

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Agenda 1 MySQL within Oracle

2 Overview of MySQL architecture

3 Inside MySQL

4 Commercial MySQL vs. „Open Source“ MySQL

5 MySQL Subscription / MySQL License

6 A MySQL Reference

7 Questions and Answers

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 21 MySQL wording • Database  Schema – Points (normally) to /var/lib/ • InnoDB Buffer Pool → Database Buffer Cache – innodb_buffer_pool_size • InnoDB Log File → Redo Logs – innodb_log_file_size • InnoDB System Tablespace (ibdata1) • InnoDB TS Konzept (innodb_file_per_table): – alles im System TS (default bis 5.5) – 1x Tablespace pro Tabelle (default ab 5.6)

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Settings See: http://www.fromdual.com/mysql-configuration-file-sample

• my.cnf or my.ini (Linux/Win) • Check /etc/ oder /etc/mysql • Check C:\ProgramData\MySQL

• innodb_flush_log_at_trx_commit (InnoDB) • innodb_buffer_pool_size (InnoDB) • innodb_log_file_size (InnoDB) • key_buffer_size (MyISAM)

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Access MySQL • CLI vs. GUI (check next slides) – CLI: mysql  Oracle: SQL*Plus shell> mysql --user=... --password=... --host=... -- port=... Database mysql> help

– GUI: MySQL Enterprise Workbench (WB) • Administration (Backup, Monitoring, ...) • Entwicklung (SQL, Migration) • Designer (ER-Diagramme)

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 24 Access MySQL MySQL Workbench EE New! Database Migration Wizard • Administration for SQL Server, Sybase, SQLite, SQL Anywhere & PostgreSQL – Start Stop, Backup, Monitoring • Development • ER-Diagrams • Database migrations – From Microsoft SQL Server, PostgreSQL, Sybase ASE, Sybase SQL Anywhere, SQLite, , and more

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 25 Examples

• show ; show tables; • use database; e.g. use world; • show processlist; • user, host from mysql.user; • show grants for user@host; e.g. show grants for [email protected]; • show global variables\G; • show global status; • show engines;

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Agenda 1 MySQL within Oracle

2 Overview of MySQL architecture

3 Inside MySQL

4 Commercial MySQL vs. „Open Source“ MySQL

5 MySQL Subscription / MySQL License

6 A MySQL Reference

7 Questions and Answers

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 27 MySQL is ‚‘, but… All MySQL Binaries are available @ http://www.mysql.com

Oracle MySQL is licensed under … but there are costs associated with the GNU General Public using MySQL: License (GPL) and is free. - Cost to integrate, deploy and secure MySQL Code is availeable : - Cost to certify, support and maintain - Opportunity cost

 Are you running MySQL efficiently ?

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL Editions • MySQL Community Edition (CE) – ‘Open Source’ MySQL Server  http://www.mysql.com • MySQL Standard Edition (SE) – Open Source or Commercial MySQL Server – Including MySQL Support –  https://edelivery.oracle.com/ or https://support.oracle.com • MySQL Enterprise Edition (EE) – Standard Edition (SE) – Enterprise Tools (Monitor, Backup, Firewall, Audit and others) –  https://edelivery.oracle.com/ or https://support.oracle.com • (MySQL for OEM, ISV, VAR)

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 29 MySQL Enterprise Edition

Advanced Features* Management Tools* Support

• Scalability • Monitoring • Technical Support • Backup • High Availability • Consultative Support • Security • Development • Audit • Administration • Oracle Certifications • Migration

* All Plugins and Tools are ‚free‘ as part of the Support Subscription

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 30 MySQL Enterprise Audit • Out-of-the-box logging of connections, logins, and query • User defined policies for filtering, and log rotation • Dynamically enabled, disabled: no server restart • XML-based audit stream per Oracle Audit Vault spec – Easily integrate all auditing within Audit Vault

Adds regulatory compliance to MySQL applications (HIPAA, Sarbanes-Oxley, PCI, etc.)

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 31 MySQL Enterprise Firewall • Real Time Protection – Queries analyzed and matched against White List • Blocks SQL Injection Attacks – Positive Security Model • Block Suspicious Traffic MySQL Enterprise Firewall monitoring – Out of Policy Transactions detected & blocked • Learns White List – Automated creation of approved list of SQL command patterns on a per user basis • Transparent – No changes to application required

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 32

MySQL Enterprise Edition

Advanced Features* Management Tools* Support

• Scalability • Monitoring • Technical Support • Backup • High Availability • Consultative Support • Security • Development • Audit • Administration • Oracle Certifications • Migration

* All Plugins and Tools are ‚free‘ as part of the Support Subscription

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 33

Oracle Enterprise Manager for MySQL • Availability monitoring • Performance monitoring • Configuration monitoring • All available metrics collected – Allowing for custom threshold based incident reports • MySQL auto-detection Performance Security Availability

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 34 MySQL Enterprise Monitor • Real-time MySQL performance and availability monitoring • Visually find & fix problem queries • Disk monitoring for capacity planning • Alerts & notifications • MySQL best practice advisors • Security/Backup/Replication Monitoring • Enterprise Query Analyzer

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 35 MySQL Enterprise Backup Logical (aka. Dump) vs. Physical (aka. MEB) • Online, non-locking backup and recovery – Complete MySQL instance backup (data and config) – Partial backup and restore • Incremental backups • Point-in-time recovery • Advanced compressed and encryption • Backup to tape (SBT) • Backup validation • Cross-Platform (Windows, Linux, Unix) • Direct Cloud storage backups (S3, etc.)

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 36 Oracle Integrations: Secure Backup

• MySQL Enterprise Backup images to tape (like RMN) • Via SBT interface (standard for MMS) • Encryption, policy-based management, vault rotation • Common management, SOP for Oracle, MySQL backups mysqlbackup --port=3306 --protocol=tcp --user=root --password --backup-image=sbt:backup-shoeprod-2011-10-02 --backup-dir=/backup backup-to-image

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL Enterprise Edition

Advanced Features Management Tools Support

• Scalability • Monitoring • Technical Support • Backup • High Availability • Consultative Support • Security • Development • Audit • Administration • Oracle Certifications • Migration

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 38 MySQL Enterprise Support • Based on Metalink , https://support.oracle.com • Largest MySQL engineering and support organization • Backed by the MySQL developers • World-class support, in 29 languages • Hot fixes & maintenance releases • 24x7x365 • Unlimited incidents Get immediate help for any MySQL • Consultative support issue, plus expert advice • Global scale and reach

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 39 MySQL Lifecycle Make the Most of your Deployments • Oracle Premier Support: 5 Years after GA – Release MySQL 5.5: Dec. 2010  Dec. 2015 – Release MySQL 5.6: Feb. 2013  Feb. 2018 – Release MySQL 5.7: Oct. 2015  Oct. 2020 • Oracle Extended Support: 3 Years after Premier Support (8 Years after GA) – Release MySQL 5.5: Dec. 2015  Dec. 2018 – Release MySQL 5.6: Feb. 2018  Feb. 2021 – Release MySQL 5.7: Oct. 2020  Oct. 2023 • Oracle Sustaining Support – Lifetime

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 40

MySQL & Oracle Product Integrations • Oracle Linux • Oracle Enterprise Manager • Oracle VM • • Oracle GoldenGate • Oracle Clusterware • Oracle Audit Vault & Database Firewall • Oracle Secure Backup • MyOracle Online Support

MySQL Integrates into your Oracle Environment

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 41 Agenda 1 MySQL within Oracle

2 Overview of MySQL architecture

3 Inside MySQL

4 Commercial MySQL vs. „Open Source“ MySQL

5 MySQL Subscription / MySQL License

6 A MySQL Reference

7 Questions and Answers

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 42 MySQL Pricing Strategy: Enterprise • Tiered Pricing: – Tier 1 = 1-4 Socket Servers, Tier 2 = 5+ Socket Servers • Pricing is calculated "per Server", "per Year” (no limit on Users or Virtual Machines) • Informative price examples (excl. taxes, electronic delivery): – MySQL Standard Edition Subscription (1-4 socket server), 1 Server, 1 Year, € 1,740 – MySQL Enterprise Edition Subscription (1-4 socket server), 1 Server, 1 Year, € 4.434 – MySQL Cluster Carrier Edition Subscription (1-4 socket server), 1 Server, 1 Year, € 8.868 • MySQL Price List on Oracle.com: http://www.oracle.com/us/corporate/pricing/price-lists/mysql-pricelist-183985.pdf

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 43 Agenda 1 MySQL within Oracle

2 Overview of MySQL architecture

3 Inside MySQL

4 Commercial MySQL vs. „Open Source“ MySQL

5 MySQL Subscription / MySQL License

6 A MySQL Reference

7 Questions and Answers

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 44 Industry Leaders Rely on MySQL

Web & Enterprise OEM & ISVs

Cloud

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 45 MySQL 5.7 is GA! Performance & Scalability Manageability

3 X Faster than MySQL 5.6 Native JSON Support

Enhanced InnoDB: faster online & bulk Improved Security: safer initialization, load operations setup & management Replication Improvements (incl. multi- Performance Schema Improvements source, multi-threaded slaves...)

New Optimizer Cost Model: greater user MySQL SYS Schema control & better query performance

And many more new features and enhancements. Learn more at: dev.mysql.com

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 46 MySQL 5.8 ???

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 47 Agenda 1 MySQL within Oracle

2 Overview of MySQL architecture

3 MySQL Replication and MySQL Fabric

4 Commercial MySQL vs. „Open Source“

5 MySQL Subscription / MySQL License

6 A MySQL Reference

7 Questions and Answers Carsten Thalheimer Mobile: +49 172 8833386 [email protected]

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 48 MySQL Enterprise HA : Shared Storage • Stricter data durability, integrity constraints – Shared storage persists commits across

instances

– Clustering software manages data access

Clients VirtualIP

– Auto-failover of applications and database • MySQL certified & supported solutions – Oracle Clusterware – Windows Failover Clustering – Oracle

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 49

Oracle Golden Gate Data Distribution • MySQL specific optimizations

• Hybrid web, enterprise applications Zero Downtime Migration and Upgrades Log Based, Real- • Offload, scale query activity to Time Change Data Capture Disaster Recovery, Data Standby MySQL read-only slaves Protection (Open & Active) OGG • Real-time access to web-based ETL ODS analytics, reporting ETL

EDW • Migration path from/to MySQL from Real-time BI

Heterogeneous Source Reporting other databases with minimal Systems Database Operational Reporting downtime • Also supports MySQL Cluster Query Offloading

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 50 Oracle VM

E-Delivery Save days / weeks in installation and configuration time Download from Oracle •Pre-built, pre-configured template •Complete OS, VM and MySQL Customize & Save Database as Golden Images VM VM VM •Rapid provisioning and cloning VM 1 VM 2 VM

Oracle VM Server Pool

File Oracle VM Servers Start-Up in Oracle VM Pool Import to SAN, iSCSI Oracle VM Manager VM

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 51

Oracle Audit Vault & Database Firewall • For MySQL 5.5 and higher Global Filtering/Policies (First Class support) • Audit Vault collects local MySQL audit stream XML data based on AV MySQL “collector” and auditing Server data from MySQL packets on AV Agent network • AV Console, Repo used to browse/report, archive, manage AV Repository MySQL audit images

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 52 Oracle Secure Backup • Centralized tape backup management • New Cloud module Admin – Direct backups to AWS S3 via RMAN Server – Offers additional disaster recovery (DR) SBT protections • MySQL Enterprise Backup – Backups via SBT interface to OSB RMAN – Backups directly to AWS S3 • Support for additional providers coming soon!

AvailabilityMedia Server Cloud Storage

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 53 Oracle Clusterware • Business continuity and High Availability Oracle RAC MySQL MySQL • Scalability and agility Oracle ASM / ACFS Oracle Clusterware • Cost-effective workload management • Standardized Deployment and System Management • Ensures business critical work is satisfied Consolidated Pool of Storage with within defined performance and Automatic Storage Management (ASM) availability SLAs Security • New MySQL Plugin!

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 54