tag:blogger.com,1999:blog-21133899546771932992024-03-05T14:53:31.127+01:00Lars ThalmannDevelopment Director, MySQL Replication, Backup & ConnectorsLars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.comBlogger15125tag:blogger.com,1999:blog-2113389954677193299.post-43581437214728675842012-10-01T17:20:00.002+02:002012-10-01T17:20:53.162+02:00MySQL Connect 2012<div dir="ltr" style="text-align: left;" trbidi="on">
The conference is over. I had a great time and it was very fun to meet both old and new MySQL users. It was a packed couple of days and we managed to present quite a lot. I am energized by all the positive feedback we got on especially MySQL 5.6, Performance Schema, the Parallel MySQL Enterprise Backup 3.8, the Connector Enhancements, and the MySQL Utilities. Tomas keynote has the mayor things we announced. Here are some highlights from my team:<br />
<br />
<b>1. New release of Connector Python</b><br />
<br />
We were are happy to announce the new MySQL Connector/Python 1.0.7 as Generally Available. Python is an important language and it feels great that we now fully support this.<br />
<br />
<b>2. New release of faster MySQL Enterprise Backup 3.8</b><br />
<br />
A lot of users want really fast backup and we have now re-factored MySQL Enterprise Backup into a new multi-threaded architecture. In certain scenarios where a user is taking compressed backups, internal tests show MySQL Enterprise Backup 3.8 to be up to 10 times faster than earlier releases. You can tune it on the number of threads and buffers memory you would like it to use.<br />
<br />
<b>3. MySQL Replication 5.6 more powerful than ever</b><br />
<br />
For the MySQL 5.6 release, we have focused on four different areas:<br />
<ul style="text-align: left;">
<li><b><i>Performance</i></b> (Multi-Threaded Slaves, Binary Log Group Commit, Optimized Row-Based Replication),</li>
<li><b><i>Failover & Recovery</i></b> (Global Transaction Identifiers, Replication Failover & Admin Utilities, Crash Safe Slaves & Binlogs)</li>
<li><b><i>Data Integrity</i></b> (Replication Event Checksums)</li>
<li><b><i>Agility</i></b> (Time Delayed Replication, Remote Binlog Backup, Informational Log Events)</li>
</ul>
It is great that failover is now so much easier to manage and we have performance boosts for both master and slave.<br />
<br />
<b>4. PHP driver enhancements to boost MySQL 5.6</b><br />
<br />
Two PHP mysqlnd driver plugins let you get most out of MySQL 5.6. PECL/mysqlnd_memc alpha substitutes a SQL access with a NoSQL Memcache API access to MySQL transparently. The second plugin, PECL/mysqlnd_ms 1.4 stable, offers sophisticated failover, load balancing and optional read-write splitting. Global Transaction IDs are used in a creative way to provide eventual consistency, session consistency or strong consistency - no matter what kind of MySQL clustering solution used. The best: for simple use cases both solutions require no code changes to existing applications.<br />
<br />
<b>5. New release of Connector ODBC 5.2</b><br />
<br />
MySQL ODBC 5.2 is set of drivers (Unicode and ANSI) with all functionality of 5.1 series. We also added support for Server Side Prepared Statements and OUT/INOUT parameters. Earlier, we had 3.51 (pure ANSI) and 5.1 (UNICODE) drivers with 5.1 functionality being a superset of 3.51. Since 5.2 is based on 5.1, 5.2 ANSI is a completely new ANSI driver not comparable to old 3.51.<br />
<br />
<b>6. New release of MySQL Utilities</b><br />
<br />
In the latest release of Workbench 5.2.44, we have upgraded the utilities. There is now a Utilities console, i.e. a user-friendly shell to execute utilities with type completion, option name completion, and user defined variables. At the moment, the best way to get utilities is to download Workbench. The source code is on Launchpad.<br />
<br /></div>
Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com0tag:blogger.com,1999:blog-2113389954677193299.post-8945288422240703012011-10-05T15:47:00.001+02:002011-10-05T15:47:28.931+02:00The new MySQL Enterprise Backup 3.6.1 release<div dir="ltr" style="text-align: left;" trbidi="on">This maintenance release allow MySQL Enterprise Backup to leverage the <i><b>new authentication feature</b></i> of the commercial <a href="http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html">MySQL 5.5.16 server release</a>. MySQL Enterprise Backup 3.6.1 allows the backup user to be authenticated by an external authentication method supported by the MySQL Server.<br />
<div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">We have also fixed the following issues:</div><div style="margin-bottom: 0in;"></div><ul style="text-align: left;"><li><div style="margin-bottom: 0in;">If the user has given a wrong combination of options or misspelled an option, MySQL Enterprise Backup now prints a message to allow the users to diagnose the issue.</div></li>
<li>Behavior of the incremental backup feature when used with the --<i>only-innodb</i> option has been corrected. If there are DDL changes between the previous backup and a new incremental backup, it is now ensured that all such DDL changes are correctly reflected when the incremental backup is restored.</li>
<li>This release also addresses the cleanup of empty temporary files that were left behind after backup.</li>
<li>The message “mysqlbackup completed OK!” is printed for each successful “copy-back” and “apply-log” operation.</li>
</ul>For further details, please refer the the change log in the MySQL Enterprise Backup documentation.<br />
<div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">MySQL Enterprise Backup 3.6.1 is now available for download on the <a href="http://support.oracle.com/">My Oracle Support</a> (MOS) website.</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;"><i>This text was written by Sanjay Manwani, MySQL Enterprise Backup Team.</i></div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">If you are at Oracle Open World, we give two talks about backup for MySQL today: <i><b>Data Protection and Recovery for MySQL</b></i> and <i><b>MySQL Enterprise Backup</b></i>. You are very welcome to attend!</div></div>Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com0tag:blogger.com,1999:blog-2113389954677193299.post-71389922906107825202011-10-03T19:29:00.001+02:002011-10-03T19:29:54.353+02:00MySQL Oracle Open World talks<div dir="ltr" style="text-align: left;" trbidi="on">Some suggestions for MySQL sessions at Oracle Open World 2011.<br />
<br />
Tomas Ulin will give the MySQL keynote today:<br />
<ul style="text-align: left;"><li><b>MySQL Executive Keynote: The state of the dolphin</b>, Monday 12:30pm</li>
</ul>Luis Soares, Sanjay Manwani, Chuck Bell and myself will give the following talks:<br />
<ul style="text-align: left;"><li><b>Introduction to MySQL Replication</b>, Monday 2:00pm<br />
A walk-through of how MySQL Replication works and what you can do with it. An introduction if you don't know it, and a summary of possible use cases for those of you that are already familiar with the technology.</li>
<li><b>Advanced MySQL Replication Architectures</b>, Tuesday 10:15am<br />
Directed for the more advanced users, in this talk we go through not only the traditional but also more complex scenarious, e.g. hierarchical replication and replicating from multiple master servers into a slave server.</li>
<li><b>Data Protection and Recovery for MySQL</b>, Wednesday 1:00pm<br />
Describes different ways to do protect your data, logical backups using mysqldump, snapshot backups, and MySQL Enterprise Backup to do backup and restore. Benefits of the different technologies and when to use what.</li>
<li><b>MySQL Enterprise Backup</b>, Wednesday 5:00pm<br />
An introduction to the MySQL Enterprise backup tool, what you can do with it and its integration with media managers, such as Oracle Secure Backup. How to create full, incremental, and partial backups.</li>
<li><b>Cloud Computing Solutions for MySQL</b>, Thursday 1:30pm<br />
How to use MySQL in the cloud with use cases. Describes benefits and risks. Improvements in MySQL 5.6 for InnoDB and MySQL Replication to improve the use of MySQL in the cloud.</li>
</ul><div><i>(Please double check the time of the talks, since schedule may change.)</i></div></div>Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com0tag:blogger.com,1999:blog-2113389954677193299.post-39831939173651364762011-10-03T15:12:00.001+02:002011-10-03T15:15:26.458+02:00Windows Native Authentication for MySQL<div dir="ltr" style="text-align: left;" trbidi="on">Starting with MySQL 5.5.16 it is possible to setup password-less connections from clients into the MySQL server using the <i>Windows SSPI authentication framework</i>.<br />
<br />
This functionality is provided by the <i>Windows Native Authentication (WNA)</i> plugin distributed with the commercial version of 5.5.16 server. The client-side support for WNA authentication is built into the client library (libmysql) distributed with the community version of 5.5.16 server and requires no additional configuration. Clients which link to 5.5.16 or higher version of libmysql will be able to connect to MySQL accounts using WNA authentication out-of-the-box.<br />
<br />
For password-less connections to work, the server's administrator must install the WNA plugin in the server and create user accounts which use this plugin for authentication. It is also possible to allow connections to existing MySQL accounts via a proxy WNA account. With this setup Windows clients can password-less connect to the proxy account, and then proxy configuration selects the final MySQL account based on client's Windows credentials (user name or group membership). Detailed instructions on how to install the WNA plugin and setup and configure WNA accounts are given in the <a href="http://dev.mysql.com/doc/refman/5.5/en/windows-authentication-plugin.html">documentation</a>.<br />
<br />
Internally, the WNA plugin uses Windows SSPI API to create a shared security context between client and server, which allows server to read client's credentials. For this to work, obviously both client and server must run on a Windows machine. Additionally, both computers must be registered inside a Windows domain (in which case Windows internally uses Kerberos authentication). If this is not the case then password-less connections are still possible but only from the same computer on which server is running (in which case NTLM authentication is used).<br />
<br />
Note that whether native Windows authentication is used or not entirely depends on the MySQL account to which a client tries to connect. If that account is configured by DBA to authenticate using WNA plugin, then this is the only option for that account - a client can connect to it only if the client supports WNA and is run by an authorized Windows user. It can not fall-back to the standard MySQL password authentication, as well as it can not request native Windows authentication when connecting to a non-WNA account.<br />
<br />
At the moment, client support for WNA plugin is implemented mainly in the libmysql client library which is shipped with MySQL 5.5.16 (the community version). This support is built into the library and does not require any additional configuration. If your client uses this version of libmysql for connecting to the server it should be able to connect to WNA accounts.<br />
<br />
Note that if the client is using a connector library like Connector/C++ and that library links to libmysql dynamically, then configuring the dynamic linker to use version 5.5.16 or later of libmysql will enable WNA support in your client application. If, however, the client uses libmysql based connector which is statically linked to an older version of the library (as is the case with Connector/ODBC), then it will not work with WNA plugin.<br />
<br />
Some connectors do not use libmysql but have their own implementation of the MySQL client-server protocol (for example Connector/Java). These connectors will require changes in their implementation of the protocol to support WNA plugin.<br />
<br />
Here is a summary of which MySQL connector products support WNA plugin at the moment:<br />
<ul style="text-align: left;"><li><b>Libmysql 5.5.16</b>: Yes</li>
<li><b>Connector/NET 6.4.4</b>: Yes</li>
<li><b>Connector/C++ 1.1.0</b>: Yes, although not in statically linked version</li>
<li><b>Connector/ODBC 3.51.28 & 5.1.8</b>: No, but watch for coming releases</li>
<li><b>Connector/Java 5.1.17</b>: No, will not happen very soon</li>
<li><b>Connector/PHP 5.3</b>: No, currently no plans to support WNA in PHP</li>
</ul><i>This text was written by Rafal Somla, MySQL Connectors Team.</i></div>Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com1tag:blogger.com,1999:blog-2113389954677193299.post-27018485274716282912011-07-25T22:50:00.000+02:002011-07-25T22:50:41.230+02:00OSCON MySQL Replication Update<div dir="ltr" style="text-align: left;" trbidi="on"><br />
The slides for the MySQL Replication Update talk at OSCON are now available at <a href="http://larsthalmann.com/">larsthalmann.com</a><br />
<br />
This is the MySQL Schedule for OSCON 2011:<br />
<br />
<ul style="text-align: left;"><li>MySQL Replication Update, Mon 10:40am</li>
<li>InnoDB: Performance & Scalability, Mon 4:20pm</li>
<li>MySQL Community BOF, Mon 9pm</li>
<li>PHP & MySQL, Wed 4:10pm</li>
<li>Python Utilities for Managing MySQL, Wed 4:10pm</li>
<li>PHP under the hood, Thu 10:40am</li>
<li>MySQL Technology Update, Thu 2:30pm</li>
<li>MySQL Binlog API, Fri 10:00am</li>
</ul><br />
If you are at OSCON, come and visit us at Oracle booth 701!<br />
</div>Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com0tag:blogger.com,1999:blog-2113389954677193299.post-2789899834325879862011-04-13T10:00:00.024+02:002011-04-13T14:19:21.581+02:00MySQL Workbench Utilities<div dir="ltr" style="text-align: left;" trbidi="on">One of the many new things that is being introduced this week are some great new external tools for managing MySQL servers. These are available in <b><i>MySQL Workbench</i></b> under the name <b><i>MySQL Workbench Utilities</i></b>.<br />
<br />
It is a package of easy-to-use utilities for maintenance and administration of MySQL servers. These utilities encapsulate a set of primitive commands bundling them so that you can perform macro operations with a single command.<br />
<br />
Some of the key features of MySQL Workbench Utilities are:<br />
<ul style="text-align: left;"><li>Plugin for MySQL Workbench 5.2.31</li>
<li>Available under the GPLv2 license</li>
<li>Written in Python</li>
<li>Easily to extend using the supplied library</li>
</ul><b><br />
</b><br />
<b>How Does It Work?</b><br />
There are two ways to access the utilities from within the MySQL Workbench.<br />
<br />
You can click on the drop down arrow icon to the right of the MySQL Workbench main window. This will display a list of the plugins available. You can scroll through the screens and find the MySQL Utilities icon. The image below shows what the window looks like.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3Lh21HdUHzuSIVVqhXAOMFxYOUIwvuKtVO-K8aazcUL8q7cwF6vfC-8m_Dw9r7L6md5xqVTsydComsYX3lQZPKuUFrvw4xgnCSHGNXyhHRgfsl0Hai13RpW6BxvFEd9IiPPW9d7R1yaF-/s1600/option1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3Lh21HdUHzuSIVVqhXAOMFxYOUIwvuKtVO-K8aazcUL8q7cwF6vfC-8m_Dw9r7L6md5xqVTsydComsYX3lQZPKuUFrvw4xgnCSHGNXyhHRgfsl0Hai13RpW6BxvFEd9IiPPW9d7R1yaF-/s320/option1.jpg" width="320" /></a></div><br />
<br />
Once you hover on the MySQL Utilities icon, you will see an Action button appear. Click Action then Start Plugin to launch the MySQL Utilities shell in a new window. The image below shows what the window would look like.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhvWROOx7bmzrC2Pyydp43kX65Tc1bPAzMb2lw3VUezuWrbwVwS2rZR4j47GSEUzKUxYWGjGbCM4aqUGPEQVhjXMB9WjhXnChlICOsXkgoDuKeT1aS0hF5PVIyJ8n5AlFJFSu2UOGRrPxG/s1600/option2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhvWROOx7bmzrC2Pyydp43kX65Tc1bPAzMb2lw3VUezuWrbwVwS2rZR4j47GSEUzKUxYWGjGbCM4aqUGPEQVhjXMB9WjhXnChlICOsXkgoDuKeT1aS0hF5PVIyJ8n5AlFJFSu2UOGRrPxG/s320/option2.jpg" width="320" /></a></div><br />
<br />
<picture></picture>You can launch any of the utilities listed by typing the name of the command. To find out what options are available, use the --help option.<br />
<br />
Note: you can also add the MySQL Utilities icon to your home screen. Highlight Add to Home Screen and then choose a position from the menu.<br />
<br />
You can also launch the MySQL Utilities command window by clicking on the Plugins menu item and selecting Start Shell for MySQL Utilities.<br />
<br />
<b>What Utilities are Available?</b><br />
The MySQL Workbench and MySQL Workbench Utilities developers are adding new features and utilities with every release. If you don’t see a utility you want, check back with each release of Workbench or send the developers an email and let them know what you want!<br />
<br />
You should try the --help option for each tool to see what options it supports. Some utilities have lots of options for controlling the operation (for example the mysqldbexport can produce one of several formats with object definitions, data, or both).<br />
<br />
There are several options that are common to the utilities available (for instance --version, --help, --verbose) but the one that is most important is the server specification option used to connect to a specific server. This manifests as --server, --source, --destination, or --server1, etc. and all require the same \<br />
format as follows:<br />
<br />
--server=user_name:password@hostname:port_num:socket_file.<br />
<br />
The parameter includes the user name followed by the user’s password (if available) separated by a colon (colon is omitted if no password) followed by the @ symbol and the host machine name. Optionally, you can provide the port number and the socket file each preceded by a colon. That sounds like a lot of crazy typin\<br />
g but it is really simple. The following are some examples using this format.<br />
<br />
--server=root@localhost:3306<br />
--server=joe:pass@192.168.1.101<br />
--server=dolly:sassyshoes@localhost:3310:/tmp/mysql.sock<br />
<br />
The following list describes the utilities available as well as some examples of use. For more details, please see the manuals for each utility.<br />
<br />
<b>mysqldbcopy</b> - Permits a database administrator to copy a database from one server either to another server as the same name or a different name or to the same server as the same or as a different name.<br />
<br />
Example 1: Copy a database named ‘util_test’ to a new name ‘util_test_copy’ on the same server.<br />
<br />
mysqldbcopy util_test:util_test_copy<br />
--source=root:pass@host1:3306<br />
--destination=root:pass@host1:3306<br />
<br />
Example 2: Copy a database named ‘util_test’ to another server.<br />
<br />
mysqldbcopy util_test:util_test<br />
--source=root:pass@host1:3306<br />
--destination=root:pwd@host2:33010<br />
<br />
<b>mysqldbexport</b> - Permits a database administrator to export the metadata (object definitions, hence definitions) or data or both from one or more databases. By default, the utility will export only definitions.<br />
<br />
Example 1: Export the definitions of the database ‘dev’ from a MySQL server on localhost via port 3306 producing CREATE statements.<br />
<br />
mysqldbexport --skip=GRANTS<br />
--server=root:pass@localhost<br />
--export=DEFINITIONS util_test<br />
<br />
Example 2: Export the data of the database ‘util_test’ producing bulk insert statements.<br />
<br />
mysqldbexport --export=DATA<br />
--bulk-insert util_test<br />
--server=root:pass@localhost<br />
<br />
<b>mysqldbimport</b> - Permits a database administrator to import the metadata (objects) or data for one or more databases from one or more files in either SQL or a text format such as CSV, TAB, GRID, or VERTICAL.<br />
<br />
Example 1: Import the metadata of the database ‘util_test’ to server1 on port 3306 using a file in CSV format.<br />
<br />
mysqldbimport --import=definitions<br />
--server=root@localhost --format=csv<br />
data.csv<br />
<div><br />
</div><div><div>Example 2: Import both the data and definitions of the database ‘util_test’ to server1 on port 3306 producing bulk insert statements from a file that contains SQL statements.</div><div><br />
</div><div>mysqldbimport data.sql --import=both</div><div> --bulk-insert --format=sql</div><div> --server=root@localhost</div><div><br />
</div><div><b>mysqldiff</b> - Reads the definitions of objects and compares them using a diff-like method to determine if two objects are the same based on the definition of the object.</div><div><br />
</div><div>Example 1: Find the differences among objects in database employees on one server and emp1 on the same server.</div><div><br />
</div><div>mysqldiff --server1=root@localhost</div><div> employees:emp1</div><div><br />
</div><div>Example 2: Find differences between the salaries table on one server and the same table on another server.</div><div><br />
</div><div>mysqldiff --server1=root@localhost</div><div> --server2=root@host2:3306</div><div> employees.salaries:emp1.salaries</div><div> --differ</div><div><br />
</div><div><b>mysqldiskusage</b> - Permits a database administrator to see the disk space usage for one or more databases in either CSV, TAB, GRID, or VERTICAL text formats. The utility will also allow the user to examine the disk usage for the binary logs, slow, error, and general log; and InnoDB tablespace usage.</div><div><br />
</div></div><div><div>mysqldiskusage - Permits a database administrator to see the disk space usage for one or more databases in either CSV, TAB, GRID, or VERTICAL text formats. The utility will also allow the user to examine the disk usage for the binary logs, slow, error, and general log; and InnoDB tablespace usage.</div><div><br />
</div><div>Example 1: Show only the disk space usage for the employees and test databases in grid format.</div><div><br />
</div><div>mysqldiskusage --server=root@localhost</div><div> employees test</div><div><br />
</div><div>Example 2: Show all disk usage for the server in CSV format.</div><div><br />
</div><div>mysqldiskusage --server=root@localhost</div><div> --format=csv -a</div><div><br />
</div><div><b>mysqlindexcheck</b> - Eeads the indexes for one or more tables and identifies duplicate and potentially redundant indexes.</div><div><br />
</div><div>Example 1: Scan all of the tables in the employees database to see the possible redundant and duplicate indexes as well as the DROP statements for the indexes.</div><div><br />
</div><div>mysqlindexcheck --server=root@localhost</div><div> --show-drops employees</div><div><br />
</div><div>Example 2: Scan all of the tables in the employees database and display the indexes. Display the output in a tabular format.</div><div><br />
</div><div>mysqlindexcheck --server=root@localhost</div><div> --show-indexes --format=TAB employees</div><div><br />
</div><div><b>mysqlmetagrep</b> - Searches for objects matching a given pattern and shows a table of the objects that match the pattern `’t\_’.</div><div><br />
</div><div>mysqlmetagrep --pattern=“t_”</div><div> --server=mats@localhost</div><div><br />
</div><div>Example 2: Find all objects that contain ‘t2’ in the name or the body (for routines, triggers, and events).</div><div><br />
</div><div>mysqlmetagrep -b --pattern=“%t2%”</div><div> --server=mats@localhost:3306</div><div><br />
</div><div>mysqlprocgrep - Scans the process lists for processes that match the search criteria specified and will either print the result (the default) or execute certain actions on it.</div><div><br />
</div><div>Example 1: Kill all connections created by user “mats” that are younger than 1 minute.</div><div><br />
</div><div>mysqlprocgrep --server=root@localhost</div><div> --match-user=mats --age=1m</div><div> --kill-query</div><div><br />
</div><div>Example 2: Kill all connections with queries that have been idle for more than 1 hour.</div><div><br />
</div><div>mysqlprocgrep --server=root@localhost</div><div> --match-command=sleep --age=1h</div><div> --kill</div><div><br />
</div><div><b>mysqlreplicate</b> - Permits an administrator to start replication among two servers. The user provides login information to the slave and provides connection information for connecting to the master.</div></div><div><div><br />
</div><div>Example 1: Setup replication between a MySQL instance on two different hosts using the default settings.</div><div><br />
</div><div>mysqlreplicate --rpl-user=rpl:rpl</div><div> --master=root@localhost:3306</div><div> --slave=root@localhost:3307</div><div><br />
</div><div>Example 2: Ensure the replication between the master and slave is successful if and only if the InnoDB storage engines are the same and both servers have the same storage engines with the same default specified.</div><div><br />
</div><div>mysqlreplicate --pedantic</div><div> --master=root@localhost:3306</div><div> --slave=root@localhost:3307</div><div> --rpl-user=rpl:rpl -vv</div><div><br />
</div><div><b>mysqlserverclone</b> - Permits an administrator to start a new instance of a running server.</div><div><br />
</div><div>Example 1: Create a new instance of a running server.</div><div><br />
</div><div>mysqlserverclone --new-port=3310</div><div> --server=root:pass@localhost</div><div> --new-data=/source/test123</div><div><br />
</div><div>Example 2: Create a new instance of a running server set the root password and turn binary logging on.</div><div><br />
</div><div>mysqlserverclone --new-port=3310</div><div> --server=root:pass@localhost</div><div> --new-data=/source/test123</div><div> --root-password=pass</div><div> --mysqld=--log-bin=mysql-bin</div><div><br />
</div><div><b>mysqluserclone</b> - Permits a database administrator to use an existing user account on one server as a template and clone a MySQL user such that one or more new user accounts are created on another (or the same) server with the same privileges as the original user.</div><div><br />
</div><div>Example 1: Clone ‘joe’ as ‘sam’ and ‘sally’ with passwords and logging in as root on the local machine.</div><div><br />
</div><div>mysqluserclone --source=root@localhost</div><div> --destination=root@localhost</div><div> joe@localhost sam:secret1@localhost</div><div> sally:secret2@localhost</div><div><br />
</div><div>Example 2: Show all of the users on the localhost server in the most verbose output in CSV format.</div><div><br />
</div><div>mysqluserclone --source=root@localhost</div><div> --list --format=CSV -vvv</div><div><br />
</div><div><b>mut</b> - Designed to execute predefined tests to test the MySQL Utilities.</div><div><br />
</div><div>Example 1: Run all tests.</div><div><br />
</div><div>mut --server=root@localhost</div><div><br />
</div><div>Example 2: Run all tests that start with ‘clone_user’ and set the width of the display to 70 characters.</div><div><br />
</div><div>mut --server=root@localhost</div><div> --do-tests=clone_user –width=70</div><div><br />
</div><div><b>How Can I Get It?</b></div><div>You can download MySQL Workbench from:</div><div><br />
</div><div><a href="http://www.mysql.com/downloads/workbench/">http://www.mysql.com/downloads/workbench/</a></div><div><br />
</div><div>You can also download the latest development source code tree for the MySQL Workbench Utilities from:<br />
<br />
<a href="https://launchpad.net/mysql-utilities">https://launchpad.net/mysql-utilities</a></div></div><div><br />
</div></div>Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com6tag:blogger.com,1999:blog-2113389954677193299.post-62657036459433211292011-04-11T10:41:00.001+02:002011-04-12T00:43:41.734+02:00MySQL Replication & Backup at Collaborate 11<div dir="ltr" style="text-align: left;" trbidi="on"><div>The MySQL talks at <a href="http://collaborate11.ioug.org/">Collaborate 11</a> start in just a few hours. The MySQL Replication and Backup team will make the following presentations:</div><div><div><div><ul style="text-align: left;"><li>At 11 April 11:45am, Andrei will present "<b>Boosting MySQL Replication Performance Through Multi-Threaded Slave</b>" in which he shows the ongoing development of the multi-threaded slave and how you can try it out for yourself.</li>
<li>At 11 April 2:30pm, I will present "<b>MySQL Replication</b>" and go through an overview of all the new features that has been developed for MySQL Replication. It is a long list.</li>
<li>At 12 April 3:15pm, Luis do an "<b>Introduction to MySQL Replication</b>" for anyone new to MySQL Replication or who wants a refreshed mind on how it works.</li>
<li>At 13 April 8:00am, Mats presents "<b>Sharding Techniques for MySQL</b>" to show how you can do sharding with MySQL.</li>
<li>At 13 April 10:30am, Sanjay talks about "<b>MySQL Enterprise Backup</b>" and the new features we have developed for doing online backups.</li>
<li>At 14 April 09:45am, Chuck gives an "<b>Introduction to MySQL in the Cloud</b>" that describes how easy it is to use MySQL in a cloud.</li>
</ul></div></div><div>The best way I've found to find all the MySQL talks, is to surf to <a href="http://collaborate11.ioug.org/Education/ScheduleBuilder/tabid/79/Default.aspx">http://collaborate11.ioug.org/Education/ScheduleBuilder/tabid/79/Default.aspx</a> and enter "MySQL" as a keyword.<br />
<br />
Also, Sheeri's blog posts contains a very good description of many of the MySQL talks:</div><div><br />
<ul style="text-align: left;"><li><a href="http://palominodb.com/blog/2011/03/09/mysql-beginners-guide-collaborate">http://palominodb.com/blog/2011/03/09/mysql-beginners-guide-collaborate</a></li>
<li><a href="http://palominodb.com/blog/2011/03/20/experienced-mysql-dba-guide-collaborate">http://palominodb.com/blog/2011/03/20/experienced-mysql-dba-guide-collaborate</a></li>
</ul></div><div>Have a great conference!</div></div><div><br />
</div></div>Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com3tag:blogger.com,1999:blog-2113389954677193299.post-18394650041779791572010-11-18T12:32:00.000+01:002010-11-18T12:32:12.277+01:00What information do you want in the binlog?The MySQL task <a href="http://forge.mysql.com/worklog/task.php?id=4033">WL#4033 Informational Events</a> includes adding information about the original query for row-based replication. This will make it easier to debug failures and user mistakes. It also makes it easier for us to add other information to the binary log. Is there some information missing that you think we should add to the binary log? Please feel free to comment on this blog entry or send me an email at firstname.lastname@oracle.com.Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com8tag:blogger.com,1999:blog-2113389954677193299.post-67945360979189069372010-09-21T16:48:00.004+02:002010-09-21T17:09:02.102+02:00MySQL 5.5 Replication Features (MySQL Sunday)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMPgSoyDr0t27QPksvnJdfdX-fePFV6Kk1nNxEQDVoWTKvnRGK6XyRUJ2FWPvIWOY5F-BReYuzxcSFAnEcrEfqrLk2Mv_ZFv4CQcYRj8AFwE9AZ7PUxsFCwcoEC7gDWPYQRuLh_GnR3cDb/s1600/cat.gif"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 180px; height: 236px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMPgSoyDr0t27QPksvnJdfdX-fePFV6Kk1nNxEQDVoWTKvnRGK6XyRUJ2FWPvIWOY5F-BReYuzxcSFAnEcrEfqrLk2Mv_ZFv4CQcYRj8AFwE9AZ7PUxsFCwcoEC7gDWPYQRuLh_GnR3cDb/s320/cat.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5519383645981156178" /></a><div>There were several requests for copies of the replication presentation at MySQL Sunday at Oracle Open World. It will be published by the conference, but for now you can download it from <a href="http://www.larsthalmann.com/">www.larsthalmann.com</a>.</div><div><br /></div><div>There were also questions about the high availability book. It is called <a href="http://oreilly.com/catalog/9780596807290">MySQL High Availability</a> and was written by Chuck, Mats and me.</div><span><span></span></span><div style="text-align: right;"><br /></div>Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com0tag:blogger.com,1999:blog-2113389954677193299.post-19314986229314285542010-04-13T19:45:00.005+02:002010-12-28T22:55:17.311+01:00Replication features in MySQL 5.5.3<div>We are happy to announce the new and exciting replication features in the MySQL 5.5.3 development release.</div><div><br />
</div><div>If you are at the MySQL User Conference, you are most welcome to join the "New Replication Features" talk at 2pm today where these will be presented in more detail.</div><div><ul><li><b>Semi-sync replication plugin</b> - you can now have improved resilience of the overall replication by having a master server to wait for the slave server to collect and persist events in the relay log on a per transaction basis. As a consequence, by the time the user commits a transaction there is a guarantee that the events are already written to one or more slaves relay logs. This feature is provided as a plugin and using it is as easy as installing the plugin and enabling it.</li>
<li><b>Slave fsync tuning</b> - you can now fine tune relay logs and {master|relay-log}.info fsyncs operations so that corruption is much less likely on slave crashes. Three new parameters allow you to choose how often IO and SQL threads will issue file sync. You can tweak the options to your specific needs and set them on server startup.</li>
<li><b>Relay log corruption recovery</b> - you can now automatically recover corrupted slave relay logs. When this recovery mechanism is active, it will, on slave startup, search for corrupted relay logs and if corruption is found it discards them and contacts the master so that these are re-transferred. This feature, together with the new fsync options, increases slave resilience to crash faults.</li>
<li><b>Replication Heartbeat</b> - MySQL slaves will now request from the master that it sends a heartbeat (event) periodically. This is done when the slave connects to the master and the heartbeat period is configurable by the user. You can now avoid the spurious relay log rotation when the master is idle and have a more precise failure detection mechanism.</li>
<li><b>Show Relay Logs</b> - you can now show relay log contents, as you would do for the binlogs, by issuing 'SHOW RELAYLOG EVENTS'. This may be used for comparing the events on the master binlog against the ones in the slave relay log. In a chained replication topology, the show commands provide the ability to painlessly inspect the binary and relay logs in the servers that act both as master and slave. Additionally, it may also be used to diagnose relay log corruption.</li>
<li><b>Per master server event filtering</b> - you can now instruct a MySQL slave to discard events from a specific master. The 'CHANGE MASTER' has been enriched with a new 'IGNORE_SERVER_IDS = ...' clause that allows you to configure which events should be discarded. This feature is useful in circular replication topologies. In such scenarios, a server originating an event is also responsible for removing it from the chain. However, if it is removed from the chain, its events may loop forever. With this new feature, you can instruct the replacing server to remove the old server events.</li>
<li><b>Slave Type Conversions</b> - unlike statement-based replication, when using row-based replication replication between columns with different types was limited. Starting from 5.5, type promotion and demotion is now supported in row-based replication. For instance, one can now replicate seamlessly from a TINYINT column on the master to an INT column on the slave, from a CHAR(10) column to a VARCHAR(20) column, or even from a TEXT column to a VARCHAR(20) column.</li>
<li><b>Individual Log Flushing</b> - the user can now selectively flush server logs when using 'FLUSH LOGS'. Given that this command has a tight connection with binary and relay log maintenance, this means that every time the user wanted to flush such logs the other server logs would flush as well. Starting from 5.5, the user can now specify which individual log to flush by providing the log type as an argument to the 'FLUSH LOGS' command.</li>
<li><b>Writing Non-Transactional events Directly To The Binary Log</b> - starting from 5.5, it is safe to mix non-transactional and transactional statements in the same transaction. In row and mixed format the non-transactional statement is immediately logged instead of waiting until commit time.</li>
</ul></div><div>To try out these features, you can download MySQL 5.5.3 from:</div><div><a href="http://dev.mysql.com/downloads/mysql/">http://dev.mysql.com/downloads/mysql/</a></div><div><br />
</div><div>As always, we appreciate the community feedback. Please feel free to drop some comments or contact us.</div><div><br />
</div>Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com9tag:blogger.com,1999:blog-2113389954677193299.post-71111161383999138342009-12-22T02:38:00.006+01:002009-12-22T04:22:34.751+01:00How to contribute with Replication and Backup codeThe MySQL Replication and Backup team is working with several community developers.<br /><br />MySQL does a milestone release (roughly) every six months. To get patches included into a milestone release, it needs to be ready before the deadline for that milestone. All milestone releases are published, but not all will become GA-classified.<br /><br />The below describes the process on how to get a contributed Replication or Backup patch included into a milestone release.<br /><ol><li><span style="font-weight: bold;">Get acceptance of the idea.</span> Each accepted patch needs to be thoroughly tested (by multiple teams in different ways) and we need to ensure that we can maintain it for many years. Due to this resource requirement, we can only accept a few patches per year (this number is increasing though, which is great). When your idea is accepted, you get an assigned "coach developer" that will help your patch through the procedure to get it included into a release.</li><li><span style="font-weight: bold;">Get acceptance of patch.</span> This includes multiple parts:<br /><ul><li>contributor agreement must be signed,</li><li>design must be accepted,</li><li>tests must be accepted, and</li><li>code must be accepted.</li></ul></li><li><span style="font-weight: bold;">Patch gets pushed into a team repository.</span> The Replication and Backup team push the patch into the team repository. Some more testing is done. If there are problems with the patch, it can possibly be removed from the tree.</li><li>Before the deadline for a milestone, the team tree gets <span style="font-weight: bold;">merged into the release tree</span> for that milestone. Release testing is done by the System QA and Server QA teams. If there are problems with the patch, it can possibly be removed from the tree.</li><li>The <span style="font-weight: bold;">milestone release is built</span> from the milestone repository and is published on www.mysql.com. Some milestone releases will be marked as GA releases.</li></ol>Before step 2 is completed, it is hard to know for which release it can be included into.<br /><br />More information about how to contribute is available here:<br /><a href="http://forge.mysql.com/wiki/Contributing_Code">http://forge.mysql.com/wiki/Contributing_Code<br /></a><br />If you have comments about this procedure or would like to contribute with Replication and Backup code, please let me know.Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com2tag:blogger.com,1999:blog-2113389954677193299.post-88293061371969320052009-05-07T14:18:00.002+02:002009-05-07T14:21:34.227+02:00New Replication Features talkIn a few minutes, we will present the new replication features of 5.1 and 6.0 at the MySQL University:<br /><br /><a href="http://forge.mysql.com/wiki/MySQL_Replication:_Walk-through_of_the_new_5.1_and_6.0_features">Walk-through of new 5.1 and 6.0 replication features</a><br /><br />The talk is the same as was given at the MySQL User Conference 2009.<br /><br />Very welcome to join the talk!Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com1tag:blogger.com,1999:blog-2113389954677193299.post-64833074632075652922009-04-17T17:06:00.004+02:002009-04-17T17:21:43.456+02:00Feature Preview: Multi-threaded SlaveWe have just published Andrei's first version of the multi-threaded slave as a preview release.<br /><br />Currently, the master produce a load by concurrent multiple client connections while the single slave thread execute replication events one by one. In some scenarios, this causes the slave to lag behind the master.<br /><br />With the multi-threaded slave work, the replication slave will scale on multi-core machines.<br /><br />This is a very early preview with serious limitations. Even so, please feel free to try it out and let us know what you think.<br /><a href="http://forge.mysql.com/wiki/ReplicationFeatures/ParallelSlave"><br />http://forge.mysql.com/wiki/ReplicationFeatures/ParallelSlave</a>Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com0tag:blogger.com,1999:blog-2113389954677193299.post-81741712004157310122008-11-21T16:00:00.002+01:002008-11-21T17:05:23.447+01:00MySQL 6.0.8 Feature: Interface for Semi-synchronous Replication<span style="font-weight: bold;"></span>MySQL 6.0.8 has new interfaces for semisynchronous replication.<br /><br />The interfaces make it possible to load components to ensure that all transactions are replicated to the slave before the users of the master gets acceptance of the commits.<br /><br />The original code was developed by Mark Callaghan (Google) and Wei Li (Google). Zhenxing He (MySQL) ported the Google code to MySQL 6.0, extracted the functionality into pluggable components, and changed the code so that all storage engines are supported. Paul DuBois (MySQL) wrote the <a href="http://dev.mysql.com/doc/refman/6.0/en/replication-semisync.html">MySQL manual documentation</a>.<br /><br />The extraction of this patch into components is a first step in our strategy to make MySQL Replication modularized with separate loadable components for special replication functionality. With more interfaces to the server, it becomes easier to make the server behave in the way you want.<br /><br />Please let us know what you think. Does it work as you expect? Do you want the synchronization to be different? Want to publish your own replication components for MySQL?<br /><br /><span style="font-weight: bold;">References</span><br /><ul><li><a href="http://dev.mysql.com/doc/refman/6.0/en/replication-semisync.html">MySQL manual documentation</a></li><li><a href="http://downloads.mysql.com/forge/replication_preview">Plugin executables</a></li><li><a href="https://code.launchpad.net/%7Ehezx/mysql-server/semi-sync-replication">Plugin source code</a></li><li><a href="http://code.google.com/p/google-mysql-tools/wiki/SemiSyncReplication">Original Google patches</a></li></ul>Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com6tag:blogger.com,1999:blog-2113389954677193299.post-82734383423657789142008-11-04T07:00:00.000+01:002008-11-04T09:45:09.270+01:00MySQL Feature Preview: mysqlbackup programThe mysqlbackup client program is now available for download as a feature preview. This program gives information about the produced backup image files and is a complement to the new MySQL 6.0 Backup feature. The program is not yet part of the main MySQL server releases.<br /><br />So far, we have implemented the first milestone of <a href="http://forge.mysql.com/worklog/task.php?id=4534">WL#4534</a>, e.g.:<br /><ul><li>Display metadata contained in backup image (i.e the SQL statements)</li><li>List objects contained in the backup image</li><li>Display statistics about the backup image (e.g. compression algorithm)</li><li>Search and display objects of backup image</li><li>Search and display metadata of backup image objects</li><li>In case of problems with reading the image provide as much information<br />as possible, e.g. the position of the failure<br /></li></ul>The current preview handles charsets, databases, tables, and views only. Other object types will follow soon.<br /><br />Links for Linux and Windows binary download are on the <a href="http://forge.mysql.com/wiki/OnlineBackup">Backup Forge Page</a>.<br /><br />Please try it out and let us know what features you are missing or you would like to see. Thanks Ingo for great work on coding this.Lars Thalmannhttp://www.blogger.com/profile/04670086448620772049noreply@blogger.com0