Mysql WP Enterprise Guide
Mysql WP Enterprise Guide
Product Guide
Whether you are building high volume websites, enterprise and departmental
applications, or advanced communications networks, your organization needs the tools
to build and manage these business-critical database applications. This paper explores
how you can confidently deploy MySQL, on-premise and in the Cloud, as part of a cost-
effective cross-platform solution for delivering high-performing, highly available, reliable
and scalable applications. It examines some of the challenges associated with building
and supporting scalable, data-driven applications using open source technologies and
provides a detailed overview of how MySQL Enterprise Edition can address these
challenges. MySQL Enterprise Edition, combines the most secure, scalable, “always on”
version of the MySQL database with online backup, monitoring, management and visual
database design and SQL development tools, all backed by Oracle Premier Support,
24x7 global enterprise-class support services. Further, MySQL Enterprise Edition
supports your use of MySQL in conjunction with many of the Oracle products and tools
you may already be familiar with or are currently using. MySQL Enterprise Edition is
specifically designed to help you bring secure, high performing and scalable MySQL
applications to market faster, mitigate risk, and ensure you meet customer and end-user
Service Level Agreements (SLAs).
MySQL is the world's most popular open source database. Whether you are a fast
growing web property, software vendor, or large enterprise, MySQL can cost-effectively
help you deliver high performance, scalable database applications. If you are currently
using MySQL, you probably started with the MySQL Community Edition. In fact, in
many instances MySQL enters an organization via an application development project
and makes its way into the data center when the application is promoted for production
use. It often makes its way into shipping products in a similar fashion. Challenges arise
when these applications become vital to business revenues or key business functions.
The most common challenges around running MySQL and other open source
technologies are revealed by a simple line of questioning:
• How will you ensure you are using the most reliable, secure, scalable, up-to-date
version?
• How will you know:
o If a server or applications is down?
o If there is a replication master/slave synchronization or latency issue?
o If something else is affecting the performance of a server?
• Will you know:
o If MySQL is configured to scale-out as your application data and customer
base grows?
o How to configure MySQL variables to ensure your applications run at their
peak performance?
To help you answer these questions with confidence MySQL provides the MySQL
Enterprise Edition. MySQL Enterprise Edition is a commercial offering comprised of the
MySQL database with security, auditing and scalability extensions, online backup,
monitoring, management, and visual database design and SQL development tools.
MySQL Enterprise Edition is backed by Oracle Premier support for organizations
delivering highly available, business critical applications and services. MySQL
Enterprise includes the following components:
3 MySQL Database
You can learn more about what’s new in MySQL 5.6 for DBAs and Developers here:
http://www.mysql.com/why-mysql/white-papers/whats-new-mysql-5-6.
MySQL Replication has been widely deployed by MySQL users to deliver both
scalability and high availability. It is simple for users to rapidly create multiple replicas of
their database to scale-out beyond the capacity constraints of a single instance,
enabling them to serve rapidly growing database workloads.
MySQL Replication works by simply having one server act as a master, while one or
more servers act as slaves. The master server will log the changes to the database.
Once these changes have been logged, they are then sent and applied to the slave(s).
Replication is also the most common approach to delivering High Availability (HA) for
MySQL databases. Updates are replicated from a master to slave server with the goal
being to fail-over to the slave server in the event the master goes offline either due to an
error, crash or for maintenance purposes. To this end MySQL provides an advanced set
of automated, monitoring and fail-over utilities that enable DBAs to take a “set it and
forget it” approach to ensuring the MySQL databases under their care remain up and
available. Rendered in Python and provided as open source under the GPL, the
MySQL Utilities provide advanced slave promotion and fail-over functionality and are
fully extensible to meet custom needs. More information is available at
http://dev.mysql.com/doc/workbench/en/mysql-utilities.html.
You can learn more about MySQL Replication and get practical, hands on experience
using these resources:
MySQL Enterprise Edition builds on the above feature set by providing a set of
commercial extensions around the MySQL Database that meet the advanced security,
performance, scale and availability requirements of the most demanding applications,
With this in mind, MySQL 5.5 and higher provides an open pluggable audit interface that
enables all MySQL users to write their own auditing solutions based on application
specific requirements. To help users quickly and seamlessly add auditing compliance
to their existing applications MySQL Enterprise Edtion includes MySQL Enterprise Audit
an easy to use policy-based auditing solution that enables users to:
MySQL Database 5.5 and higher also supports an open, pluggable authentication
interface that enables users to develop plug-ins to authenticate MySQL client
connections against external resource such as LDAP, Windows Active Directory, PAM,
etc. This enables MySQL to easily integrate with existing security standards and
infrastructure.
MySQL Enterprise Edition provides ready to use external authentication modules for
users who authenticate users via Pluggable Authentication Modules (“PAM”) or native
Windows OS services. Each is described below:
While this model serves and scales most web deployment use cases very well it does
have the potential to limit scalability as connection and query loads increase at an
increasing rate. This use case is becoming more common as application clients now
extend far beyond the keyboard to mobile and other web-enabled devices. For the
most highly-trafficked applications when concurrent connections grow from hundreds to
thousands and associated query executions grow proportionally scalability challenges
and limitations with the default model are potentially exposed:
• Current model does not prioritize connection queries for execution, regardless of
the number that have been submitted or that are in a “wait” status. No
prioritization of queries means that all attempt to execute in parallel with no
regard for server resource limitations.
• More concurrency of query executions requires significantly more server
memory. In an extreme case if the amount of memory needed by all active
connections exceeds server memory, the MySQL server may revert to
memory/disk swapping, which will greatly impact user response times.
To meet these challenges around the most demanding “mobilized” application user and
workloads MySQL Enterprise Edition provides the MySQL Thread Pool. The Thread
Pool is a user configurable option that provides an efficient, alternate thread-handling
model designed to sustain performance and scalability as concurrent user loads
continue to grow. In these use cases the Thread Pool addresses the limitations to
scalability by:
• Managing/controlling query execution until the MySQL server has the resources
to execute it.
• Splitting threads into managed Thread Groups. Inbound connections are
assigned to a group via a round-robin algorithm and the number of concurrent
connections/threads per group is limited based on queue prioritization and
nature of queries awaiting execution. Transactional queries are given a higher
priority in queue than non-transactional, but queue prioritization can be
overridden at the user level as needed.
• Avoiding deadlocks when queries are stalled or executing for long period of
time.
SysBench OLTP benchmarks show that the MySQL Thread Pool provides a significant
improvement in sustained performance and scalability for applications that service a
growing number of concurrent user connections and query executions. The graphs
Databases are the center of today’s applications – whether SMB, enterprise, web or
cloud, as they store and protect an organization’s most valuable assets, and run
business-critical applications. Just minutes of downtime can often result in significant
amounts of lost revenue and unsatisfied customers. Making database applications
highly available is therefore a top priority for DevOps and Architect teams.
Integrating MySQL Enterprise Edition with Oracle VM and Oracle Linux, the Oracle VM
Template for MySQL1 is the fastest, easiest and most reliable way to provision
virtualized and highly available MySQL databases.
The Oracle VM Template for MySQL Enterprise Edition ensures rapid deployment and
helps eliminate configuration efforts and risks by providing a pre-installed and pre-
configured virtualized software image, taking advantage of Oracle VM’s mechanisms to
deliver high availability.
1
http://www.mysql.com/why-mysql/virtualization/index.html
© 2013, Oracle Corporation and/or its affiliates 12
Figure 8: Oracle VM Template for MySQL 5.5 Enterprise Edition enable rapid
provisioning and integrated High Availability
Organizations can meet stringent SLA (Service Level Agreement) demands by using
the High Availability features of the Oracle VM Template for MySQL Enterprise Edition:
Microsoft Windows is consistently ranked as the top development platform for MySQL,
and outranks any individual Linux distribution as the leading platform for MySQL
deployments, according to surveys of MySQL Enterprise, ISV / OEM and Community
users.
With the certification and support of MySQL with Windows Server Failover Clustering
(WSFC), organizations can safely deploy business-critical applications demanding high
levels of availability, powered by MySQL Enterprise.
Administrators can also initiate a failover themselves when they need to take a server
offline for maintenance.
2
Users need to subscribe to the Unbreakable Linux Network to receive support for Oracle Linux and Oracle VM
Integrating MySQL Enterprise Edition with an integrated stack of mature and proven
open source technologies, fully supported by Oracle, the solution includes:
- MySQL Database;
- DRBD kernel module and userland utilities;
- Pacemaker and Corosync cluster messaging and management processes;
- Oracle Linux operating system.
Oracle does not provide technical support for Windows Server Failover Clustering itself. This must be sourced from Microsoft.
3
You can learn more about configuring and deploying MySQL Enterprise Edition with the
DRBD stack by downloading the whitepaper:
http://www.mysql.com/why-mysql/white-papers/mysql_wp_drbd.php.
Oracle Solaris Cluster provides high availability and load balancing to mission-critical
applications and services in physical or virtualized environments. With Oracle Solaris
Cluster, organizations have a scalable and flexible solution that is suited equally to
small clusters in local datacenters or larger multi-site, multi-cluster deployments that are
part of enterprise disaster recovery implementations.
The Oracle Solaris Cluster MySQL agent integrates seamlessly with MySQL offering a
selection of configuration options in the various Oracle Solaris Cluster topologies
You can learn more about Oracle Solaris Cluster and the MySQL agents here:
http://www.oracle.com/technetwork/server-storage/solaris-cluster/overview/index.html
Backup
Restore
MySQL Enterprise Backup restores data from a full backup with full backward
compatibility. Consistent Point-in-Time Recovery (PITR) enables restoration to a
specific point in time. Using MySQL backups and binlog, you can also perform fine-
grained roll forward recovery to a specific transaction. A partial restore allows recovery
of targeted tables or tablespaces. In addition, you can restore backups to a separate
location, or create clones for fast replication setup or administration.
Compression
MySQL developers, DBAs and SysAdmins often find themselves having to manage
dynamic, high growth applications that require continuous uptime. The MySQL
Enterprise Monitor helps them automate the management of their MySQL infrastructure
and improve the performance and availability of their applications.
The MySQL Enterprise Monitor is a web-based application that can manage MySQL
within the safety of a corporate firewall or remotely in a public cloud. MySQL Enterprise
Monitor provides:
The Enterprise Dashboard, provides real-time visibility into the performance and
availability of all your MySQL databases. You can monitor MySQL metrics for a single
server or groups of servers, and manage all of their replication topologies. The
Enterprise Dashboard is designed to give you an overall view of the health of your
MySQL Servers and point you to potentially critical issues that may impact the
performance and availability of your applications. A rich set of real time and historical
graphs allow you to drill down into server statistic details.
The Enterprise Dashboard makes it easier to scale out using MySQL Replication by
providing industry-leading auto detection, grouping, documenting and monitoring of all
MySQL Replication master/slave hierarchical relationships. Changes and additions to
existing replication topologies are also auto detected and maintained providing you
instant visibility into newly implemented updates. This helps reduce the learning curve
for anyone new to MySQL Replication or to specific scale-out environments.
The MySQL Query Analyzer helps developers and DBAs improve application
performance by monitoring queries and accurately pinpointing SQL code that is causing
a slow down. Using the Performance Schema with MySQL Server 5.6, data is gathered
directly from the MySQL server without the need for any additional software or
configuration.
The MySQL Query Analyzer saves you time and effort in monitoring MySQL servers for
problem queries by providing:
• An integrated monitoring solution for all supported versions of MySQL (5.1 and
higher).
• Aggregated query content and performance stats in real time with no reliance on
MySQL logs or SHOW PROCESSLIST.
• Visual “grab and go” correlation of query activity with Monitor graphs.
• A consolidated view into query activity across all MySQL servers, no user parsing
required.
• Historical browsing/analysis of queries across all MySQL servers.
• Aggregated, searchable roll ups of all queries in canonical form (no variables)
with total number of executions, total execution time, total data size and
date/time of when query was “first seen”:
o Total Executions helps you see when queries are running too often or in
error. Even properly tuned queries cause performance problems when
they run excessively.
MySQL Workbench is a unified visual development tool that includes advanced data
modeling capabilities, a visual SQL editor and comprehensive administration tools for
database design, query development, server configuration, user administration, and
wizard-driven database migrations.
Design
Develop
MySQL Workbench delivers visual tools for creating, executing, and optimizing SQL
queries. The SQL Editor provides color syntax highlighting, reuse of SQL snippets, and
execution history of SQL. The Database Connections Panel enables developers to
easily manage database connections. The Object Browser provides instant access to
database schema and objects.
Migrate
MySQL Workbench provides a visual Migration Wizard that enables quick migration of
tables, objects and data from Microsoft SQL Server and other RDBMS platforms to
MySQL. The MySQL Workbench Migration Wizard is designed to save DBA and
developer time by providing visual, point and click ease of use around all phases of
configuring and managing a complex migration process:
• Oracle Linux – enables MySQL to run on the most advanced, Oracle developed
and supported version of the Linux kernel.
• Oracle Virtual Machine – provides MySQL specific template for easy
deployment of applications that requirement the highest levels of availability.
• Oracle Fusion Middleware– provides the same set of operational and business
planning solutions that are available for the Oracle database.
• Oracle Secure Backup – provides secure, policy-driven backup to tape media
for MySQL databases.
• Oracle Golden Gate - provides bi-directional replication between MySQL and
Oracle databases for distributed hybrid enterprise application deployments.
• Oracle Database Firewall – provides network-based monitoring, logging and
deflection of MySQL protocol communication packets.
Oracle offers 24x7, global support for MySQL. The MySQL Support team is composed
of seasoned MySQL developers, who are database experts and understand the issues
and challenges you face. With Oracle Premier Support, you can lower the total cost and
risk of owning your MySQL databases, improve the return from your IT investment, and
optimize the business value of your IT solutions. MySQL support is included in the
subscription for end users, and available separately from commercial licenses for ISVs
and OEMs. Oracle Premier Support for MySQL includes the following features:
• 24 X 7 production support
• Unlimited support incidents
• Knowledge Base
• Maintenance releases, bug fixes, patches and updates
• MySQL Consultative support
• Staffed by the most experienced MySQL Engineers in the industry
13 Conclusion
In this paper we explored the components that are included in MySQL Enterprise
Edition. These components are designed to help you mitigate risk and meet Service
Level Agreements (SLAs) as you implement applications built on the lower costs and
licensing freedom that comes with standardizing on MySQL and other open source
technologies. MySQL Enterprise Edition extends the MySQL Database to include
advanced Auditing, Security, Performance/Scale and High Availability features. The
MySQL Enterprise Backup performs online "Hot", non-blocking backups of your MySQL
databases. The Enterprise Monitor, Advisors and Query Analyzer proactively notify you
of problems and tuning opportunities before they turn into customer facing issues.
MySQL Workbench enables developers, DBAs, and data architects to design, develop,
migrate, and administer database applications. For managing Oracle and MySQL
databases, there are supported integrations and certifications that allow you to manage
MySQL using many Oracle products. Finally, the Oracle Premier Support provides you
with quick answers and resolutions when you need help, so your systems provide
uninterrupted availability to your customers.
MySQL is also the database of choice for a new generation of modern database
applications including Web, SaaS and Cloud applications. The world’s most trafficked
Web sites including Facebook, Google and YouTube rely on MySQL for their business
critical applications. These Web sites are proof that MySQL can meet the most
demanding performance and scalability requirements. For example, Facebook deploys
thousands of MySQL servers and has scaled MySQL to manage 500 million users.
Some of the most advanced MySQL customers and markets segments include:
• Web: Facebook, Google, YouTube, eBay, Yahoo
• eCommerce: Zappos, Ticketmaster
• SaaS/Cloud: Savvis, RightNow, Zimbra, Clickability
• Embedded: Adobe, CA, Cisco, Symantec
The Challenge
In the earliest start-up days of Zappos.com, the company needed to properly balance
enterprise database requirements with the realities of a not-so-limitless IT budget. After
evaluating several open source alternatives, they selected MySQL because it was the
most robust, easy-to-use and affordable database software available. As Zappos'
business quickly grew, their use of MySQL also became more advanced and business-
critical.
MySQL products and services protect them from downtime and performance issues via
proactive monitoring and alerts that are provided by the Enterprise Monitor and
Advisors. They have confidence and peace of mind knowing that any problem they
experience with MySQL will be quickly resolved with help from the MySQL Support
team.
The Challenge
As one of the Web's most successful online travel sites, Booking.com experienced
explosive growth; travel bookings grew 100% from 2005 to 2006. In 2007, the
company's development team undertook a project to re-architect their legacy MySQL-
based system and improve their site's performance, uptime, scalability and business
reporting capabilities. To get things started they employed the MySQL Professional
Services group to consult on implementing a new, modern scale-out architecture built
on Replication and the MySQL Enterprise Server.
MySQL provides Booking.com with the support and services they need to deliver a
pleasant, consistent travel booking experience to the customers they service. They
continue to leverage the MySQL Professional Services team to consult on their Scale-
out needs as their applications must continue to scale to serve their growing business.
Booking.com also uses the Enterprise Monitor and Advisors to help find problems and
tuning opportunities before they turn into problems and potential lost customers.
The Challenge
Designers and developers face a number of challenges as they try to deliver project
after project under tight deadlines. Some of the reasons that make it difficult for
workgroups of artists, designers and project managers to deliver projects on time and
on budget include:
• Artists can’t open an image file because it is being used by someone else
• Designers waste hours opening up files to find the most recent version
• Departments spend days re-creating work because files get overwritten by
another designer
• Project managers waste precious time consolidating feedback from emails, faxes
and hard copy edits
The Challenge
Existing proprietary messaging and collaboration solutions such as Microsoft Exchange
are difficult and expensive to operate, requiring organizations to hire dedicated, high
cost administrators. Zimbra saw an opportunity to change the game by building a truly
modern and innovative messaging and collaboration application cost-effectively
delivered on premise or on demand, as Software as a Service (SaaS). To be
successful, Zimbra built a system that would scale to meet the needs of businesses with
hundreds-of-thousands of users — and service providers with millions, and even tens-
of-millions of users.