MySQL Plugin for Oracle Enterprise Manager 12c Cloud Control

This is the home page for MySQL Plugin for Oracle Enterprise Manager 12c Cloud Control.

If you are looking for the plugin to older versions (10g and 11g Grid Control) — you can find it here.

The plug-in extends monitoring capabilities of Oracle EM so that DBAs with heterogeneous environments can monitor MySQL systems using the same tool they use for Oracle products such as Oracle Databases and Application Servers.

With this plug-in, a DBA can add a new MySQL target just as they can an Oracle database. Oracle Enterprise Manager Agent doesn’t have to be running on the same host as the monitored MySQL database. I.e., remote monitoring of the MySQL database with an agent running on another service is possible. This is very important as many administrators prefer to keep MySQL server software stack at bare minimum whereas Oracle Agent is often considered somewhat heavy and bulky to install.

MySQL targets behave in the same way as any other Grid Control targets, including availability monitoring, performance metrics collections, configuration management, incident management, and reports. The plugin also has unique user interface that will be further expanded soon.

Plugin versions:

  • Bug fix: plugin deployment on non-Linux environment fails.
  • Bug fix: changing metric monitoring threshold and applying templates fails.
  • This is the first public version. While there was a private beta available with few dozens users reported successful deployments, it’s likely that it still has some rough edges especially when it comes to the home page UI. Please report issues you see.
  • Migration from the plugin version 1.1.2 for 10g/11g Grid Control done.
  • Version naming is now consistent with Oracle’s new guidelines for EM 12c.
  • Added slave configuration collection (from show slave status). Default collection interval is every 3 hours as opposed to general configuration that’s collected every 24 hours.
  • Added slave monitoring using information provided by show slave status.
  • Reports are not available in the Reports tab anymore — this feature was removed from EM 12c.
  • Home page includes the first basic MySQL instance dashboard. It’s implemented using metadata UI option of EM 12c.
  • This version tested only with MySQL 5.5 but should work for 5.1, 5.0 and 4.1. Please report your success or issues.

Licensing and Support

This plugin is provided by Pythian for free. Community support is the best effort and you can post your issues in the comment in the blog comments in the posts announcing each plugin version. Commercial support services are available. Customers are responsible for all other licensing of Oracle Enterprise Manager components. You can always engage Pythian professional services to assist with Oracle EM12c deployment planning and/or implementation.


The plugin requires to have Oracle EM 12c environment installed and 12c Management agents. Plugin version works with all public 12c releases and was tested and developed on Oracle EM version. Your EM repository database and OMS can run on any platform.


Oracle Agent on Linux was tested with plugin version but it should run on any other platform.

MySQL instance can run either locally on the same servers that hosts the agent or on any other remote server. The plugin should work with any OS hosting MySQL. Plugin version was tested with MySQL 5.5 but older versions down to 4.1 should work.


Plugin is distributed as .opar file — Oracle Plugin Archive. Download it here.

Installation Guide

Section 13.5 Importing and Deploying the Plug-in Archive of Extensibility Programmer’s Reference is the official guide on deploying the plugins. I will update this section when I get a bit more time to dedicate on it.


When you are adding targets, you will need to specify MySQL Instance target properties:

  • Unix socket (optional) — the path to Unix socket file to monitor local MySQL; socket is only used when Hostname is not defined; default — /tmp/mysql.sock
  • Hostname (optional) — the IP address or hostname to connect to the MySQL database; Unix socket is used if this property is left empty
  • Port (optional) — MySQL’s port for connection if it’s not the default (3306)
  • MySQL Username (optional) — the MySQL database user; default — OS user running an Agent
  • Password (optional) — the MySQL database user password; default — no password is used

MySQL user and/or password can be left empty, depending on your security setup, but I strongly suggest you use them. I suggest to create a dedicated MySQL user. All it needs to do is to be able to connect and run these statements:

show global status;
show processlist;
show global variables;
show slave status;

That basically means PROCESS and REPLICATION CLIENT privileges. The latter is required to monitor slave status and configuration. If you don’t want to grant that privilege then you should disable metric collection for “Slave Status” and “Slave Configuration” (the latter is on the second tab in metrics settings screen).


Note that username in MySQL consists of username and client host info. The latter defines client server(s) that this user name used to login from. For example, agent@ or agent@localhost. You can also use % mask to connect from any hosts as this used but it makes your security model weaker — agent@'%'.