<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-19281624</atom:id><lastBuildDate>Fri, 15 Mar 2013 16:33:41 +0000</lastBuildDate><category>sandbox</category><category>MySQL CLuster 7.0</category><category>proto buffers</category><category>Patriot Act</category><category>clusterj</category><category>installation</category><category>tools</category><category>use cases</category><category>cmon</category><category>contention</category><category>memory management</category><category>PaaS</category><category>uc2011</category><category>bugs</category><category>corescripts</category><category>MySQL Replication</category><category>openshift</category><category>scaling</category><category>Oracle</category><category>general</category><category>troubleshooting</category><category>large databases</category><category>redhat</category><category>MySQL Cluster</category><category>Amazon EC2</category><category>ldap</category><category>configuration</category><category>eurocloud</category><category>tuning</category><category>configurator</category><category>nosql</category><category>performance</category><category>JOINs</category><category>connectors</category><category>pxc</category><category>usability</category><category>update</category><category>percona</category><category>unorthodox</category><category>reporting</category><category>online add node</category><category>cloud services</category><category>MySQL</category><category>ndbinfo</category><category>java</category><category>arbitration</category><category>cloud computing</category><category>semi-sync replication</category><category>error handling</category><category>webinar</category><category>cloud database</category><category>MySQL Cluster 7.1</category><category>severalnines</category><category>deployment</category><category>high availability</category><category>6.4</category><category>AMI</category><category>monitoring</category><category>award</category><category>mysql 5.5</category><category>InnoDB</category><category>clustered databases</category><category>uc2010</category><category>SPJ</category><category>dolphinics</category><category>HA</category><category>gearman</category><category>disk data</category><category>galera</category><category>high-availability</category><category>administration</category><category>ndb_restore</category><category>hotbackup</category><category>synchronous replication</category><category>jboss</category><category>mysql ha</category><category>sanity check</category><category>benchmarking</category><category>jbalock</category><category>clustercontrol</category><category>uc2009</category><category>ubuntu</category><category>automation</category><category>xtracluster</category><category>chkfrag</category><category>replication</category><title>Johan Andersson's Cluster and HA Blog</title><description>Stuff mainly about MySQL Cluster. Johan works as a Consultant for Severalnines, a company focused on building fast, scalable, and highly available solutions. 

Prior to Severalnines, Johan was working at Ericsson/MySQL/Sun/Oracle and was the Principal Consultant and lead of the Cluster consulting group.</description><link>http://johanandersson.blogspot.com/</link><managingEditor>noreply@blogger.com (Johan Andersson)</managingEditor><generator>Blogger</generator><openSearch:totalResults>134</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-2567469730898276694</guid><pubDate>Mon, 21 Jan 2013 08:49:00 +0000</pubDate><atom:updated>2013-01-21T10:01:32.497Z</atom:updated><title>Galera Recovery - rsync or xtrabackup</title><description>&lt;b id="internal-source-marker_0.42228524503298104" style="color: #222222; font-family: Arial; font-size: 13px; text-indent: 33px;"&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Is there any difference using &lt;i&gt;rsync&lt;/i&gt; or &lt;i&gt;xtrabackup&lt;/i&gt; when performing SSTs?&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Yes, the main difference between the two methods is that the rsync method will block the Donor, hence it will not be possible to write to the Donor during the SST (because it is read-only).&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Thus, if you have a three node cluster, and one node fails, effectively two are out of service.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;When using xtrabackup this is not a problem, as reads and writes can happen on the Donor node during the SST.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Is there any difference in recovery times comparing the two methods?&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;To test this we set up a &lt;/span&gt;&lt;a href="http://www.severalnines.com/galera-configurator/"&gt;&lt;span style="background-color: white; color: #1155cc; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;three node Galera cluster &lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;(based on the &lt;a href="http://codership.com/" target="_blank"&gt;Codership&lt;/a&gt; build), populating the cluster, using &lt;a href="http://support.severalnines.com/entries/22898353-benchmark-galera-or-mysql-cluster-using-sysbench" target="_blank"&gt;sysbench&lt;/a&gt;, with 22GB of data. We are using standard Galera wsrep options.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;The servers, created on Rackspace UK (all servers are in the same availability zone) &amp;nbsp;using Ubuntu 12.04, has 2GB of RAM each. No changes were made on the data during the recovery, or between the runs.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Rsync&lt;/span&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;17:24:49 [Note] WSREP: Shifting PRIMARY -&amp;gt; JOINER (TO: 12586)&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;17:55:26 [Note] WSREP: Shifting JOINED -&amp;gt; SYNCED (TO: 12586)&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Recovery Time: ~31 minutes&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;To test the &lt;a href="http://www.percona.com/software/percona-xtrabackup" target="_blank"&gt;xtrabackup&lt;/a&gt; we installed the necessary tools and changed the my.cnf files following the &lt;/span&gt;&lt;a href="http://support.severalnines.com/entries/22610387-change-from-rsync-to-xtrabackup-avoid-read-only-donor"&gt;&lt;span style="background-color: white; color: #1155cc; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;procedure outlined here&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;xtrabackup:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;8:35:45 [Note] WSREP: Shifting PRIMARY -&amp;gt; JOINER (TO: 12586)&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;9:06:04 [Note] WSREP: Shifting JOINED -&amp;gt; SYNCED (TO: 12586)&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Recovery Time: ~31 minutes&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;So for this data set and setup, using rsync or xtrabackup for optimizing recovery times does not matter, but for sure the benefit of having a read/write donor is an appealing case for using xtrabackup as the SST method. Over WAN it may be different, we will look into this in a later post.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="color: #222222; font-family: Arial; font-size: 13px; text-indent: 33px;"&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="color: #222222; font-family: Arial; font-size: 13px; text-indent: 33px;"&gt;&lt;span style="background-color: white; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;On a side note, I actually expected rsync to be faster that xtrabackup (on paper/theory it should be..), but it may be due to the limited bandwidth between the Rackspace servers (it peaks at about 15MB/s on the instances used here), so in a private data center it may be different, However, having a read/write Donor is something I appreciate a lot. Thanks Massimo for bringing it up.&lt;/span&gt;&lt;/b&gt;</description><link>http://johanandersson.blogspot.com/2013/01/galera-recovery-rsync-or-xtrabackup.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-8621501362590665558</guid><pubDate>Fri, 14 Dec 2012 09:25:00 +0000</pubDate><atom:updated>2013-01-16T13:22:16.358Z</atom:updated><title>Recommended MySQL Cluster setup</title><description>&lt;b id="internal-source-marker_0.70134492428042"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;MySQL Cluster was first released in November 2004, in MySQL 4.1 - that’s a pretty mature nine-year old! There is a ton of information about it on the Internet, on topics like how to setup a good minimal cluster, how to distribute the nodes, the kind of hardware that is appropriate for each node type, etc. We published our &lt;/span&gt;&lt;a href="http://www.severalnines.com/mysql-cluster-training"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;MySQL Cluster training slides&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt; sometime back. However, despite all that information, we still see many testers who do not get the basics right. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;In this blog, we will see what a good MySQL Cluster setup looks like.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;MGM Node&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt; - &amp;nbsp;holds the configuration for MySQL Cluster in a file called config.ini. It also writes a cluster log, and takes part in arbitration to prevent split-brain or network partitioning. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;You are recommended to have two MGM Nodes for redundancy. Since MGM hardly use any resources, and is not involved in query processing or routing of requests, it can be colocated with the SQL Nodes/Access Nodes.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Data Node&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt; - stores the data and the tables. Tables are divided up into partittions, and the number of partitions depends on the number of data nodes (and the number of Local Query Handlers). Data distribution is automatic and by default is based on the hash of the primary key to conclude which partition a particular data item should be written. You can also partition the data on part of the Primary Key (using PARTITION BY KEY(part_of_pk) if you want to group e.g users together with its associated data. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;The data nodes takes cares of managing the transactions, recovery, etc etc. Failover is automatic, but &amp;nbsp;the application is responsible for retrying failed transactions. Data can either be written in in-memory tables (fastest) or on disk tables (slower).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;For redundancy you need at least two data nodes. Data nodes usually operate in pairs, so the number of data nodes would be two, four, six, etc. The data nodes should have many cores, fast cores, enough RAM to store your data, and fast disks (SAS 10-15KRPM and/or SSD for disk data tables). On EC2, IOPS instances are prefered. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Since the Linear two-phase commit protocol is used to write data onto two partitions (synchronous replication between data nodes) it is recommended to have as fast network as possible, 1 Gig-E, 10Gig-E, Infiniband or even &lt;/span&gt;&lt;a href="http://www.dolphinics.com/products/"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Dolphin ICS IX PCI Express&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt; adapters. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Distributing Data Nodes that belong to one cluster over WAN is generally not recommended, unless the WAN connection is very stable and the latency is very low (at most a few milliseconds). &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;SQL Node / Access Node &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;- the most common way to read/write data to the Data Nodes is by using the MySQL Server (aka SQL Node). A query comes into the SQL Node. The SQL Node parses, optimizes and executes the query on the Data Nodes. &amp;nbsp;Other ways of connecting to the Data Nodes includes Cluster/J (Java driver), Memcached, or directly from the NDBAPI (C++) api. All methods mentioned above accessing the Data Nodes boil down to the NDBAPI requests being sent across the wire. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;You need at least two SQL Nodes for redundancy. Nodes in the access layer should have fast CPUs, disks are not important, fast network to the data nodes (same specs as for the data nodes), and about 2+ GB of RAM (depending on the number of connections, per thread buffers etc). Do not co-locate the SQL Nodes/Access Nodes with the Data Nodes.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.severalnines.com/resources/clustercontrol-mysql-haproxy-load-balancing-tutorial"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;SQL Load Balancing&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt; with HAProxy &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;- HAProxy is a load balancer, and load balances application requests to multiple SQL Nodes. We recommend 2 instances of HAProxy for redundancy. HAProxy has neat features like queuing and throttling of connections towards one or more SQL Nodes, which is great for overload control. Unless you have 10 or more app servers, we recommend to deploy the HAProxy servers directly on the machine running the app servers.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.severalnines.com/resources/cmon-cluster-monitor-mysql-cluster"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;ClusterControl&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt; - This is a management server that gives a single, consolidated view of all the nodes in the cluster. It collects status information from all the nodes, and reacts on this information to provide automatic recovery, scaling/add nodes, health reports, query monitoring, notifications, and backup. Requires approx 2 CPU cores, 16Gb of disk space, and at least 1GB of RAM.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;We recommend that you do not co-locate the ClusterControl server with any node that is part of the MySQL Cluster setup.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Putting it all together:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 15px; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;b id="internal-source-marker_0.70134492428042"&gt;&lt;img height="370" src="https://lh3.googleusercontent.com/obotp9JzgJR0V0lAdp8ZoL9UUR18cz4w2EzP5rbmfs-Fs_SmjOMgGyqYgqrivFMTgdQxCndWuUijkjOlu_dGq1SSCGbsYJHol-41uDy4DEQYnIl70xM" width="400" /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 15px; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;b id="internal-source-marker_0.70134492428042"&gt;&lt;span style="font-family: Arial; font-size: 15px; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Bare metal or Virtualized platform?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Generally, you can run MySQL Cluster on virtualized hardware if you keep attention to:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; text-decoration: initial; vertical-align: baseline;"&gt;&lt;b id="internal-source-marker_0.70134492428042"&gt;&lt;span style="text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Latency&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li dir="ltr" style="font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; text-decoration: initial; vertical-align: baseline;"&gt;&lt;b id="internal-source-marker_0.70134492428042"&gt;&lt;span style="text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;Disk speed&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b id="internal-source-marker_0.70134492428042"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;The Data Nodes are the ones that are most sensitive. Cloud servers work fine as well. As an example, &lt;/span&gt;&lt;a href="http://www.slideshare.net/daniel_b_austin/a-global-inmemory-data-system-for-mysql"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Paypal deploys a number of MySQL Clusters on Amazon&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;. They use small AWS instances for their MGM and SQL nodes, but XL instances for Data Nodes. &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;If you e.g use VMWare, then you want to have:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;nodes in one node group running on separate instances, and those instances should be on different physical hosts. Else if the host goes down, the entire node group will go down, and then the entire cluster&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;the physical host running as few instances as possible&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;as less sharing of possible of the physical hosts resources (like CPU and disk) - you don't want two data nodes share the same physical core e.g.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</description><link>http://johanandersson.blogspot.com/2012/12/recommended-mysql-cluster-setup.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-8040747054341347473</guid><pubDate>Tue, 23 Oct 2012 10:31:00 +0000</pubDate><atom:updated>2012-10-29T13:12:39.463Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>galera</category><category domain='http://www.blogger.com/atom/ns#'>mysql 5.5</category><category domain='http://www.blogger.com/atom/ns#'>hotbackup</category><category domain='http://www.blogger.com/atom/ns#'>percona</category><category domain='http://www.blogger.com/atom/ns#'>pxc</category><category domain='http://www.blogger.com/atom/ns#'>xtracluster</category><category domain='http://www.blogger.com/atom/ns#'>clustercontrol</category><category domain='http://www.blogger.com/atom/ns#'>InnoDB</category><title>Hotbackup of Galera Cluster for MySQL using Xtrabackup </title><description>&lt;!--[if !mso]&gt;&lt;style&gt;v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} &lt;/style&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;o:DocumentProperties&gt;  &lt;o:Revision&gt;0&lt;/o:Revision&gt;  &lt;o:TotalTime&gt;0&lt;/o:TotalTime&gt;  &lt;o:Pages&gt;1&lt;/o:Pages&gt;  &lt;o:Words&gt;981&lt;/o:Words&gt;  &lt;o:Characters&gt;5598&lt;/o:Characters&gt;  &lt;o:Company&gt;Severalnines AB&lt;/o:Company&gt;  &lt;o:Lines&gt;46&lt;/o:Lines&gt;  &lt;o:Paragraphs&gt;13&lt;/o:Paragraphs&gt;  &lt;o:CharactersWithSpaces&gt;6566&lt;/o:CharactersWithSpaces&gt;  &lt;o:Version&gt;14.0&lt;/o:Version&gt; &lt;/o:DocumentProperties&gt; &lt;o:OfficeDocumentSettings&gt;  &lt;o:AllowPNG/&gt; &lt;/o:OfficeDocumentSettings&gt;&lt;/xml&gt;&lt;![endif]--&gt; &lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;  &lt;w:View&gt;Normal&lt;/w:View&gt;  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;  &lt;w:TrackMoves&gt;false&lt;/w:TrackMoves&gt;  &lt;w:TrackFormatting/&gt;  &lt;w:PunctuationKerning/&gt;  &lt;w:ValidateAgainstSchemas/&gt;  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;  &lt;w:DoNotPromoteQF/&gt;  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;  &lt;w:LidThemeAsian&gt;JA&lt;/w:LidThemeAsian&gt;  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;  &lt;w:Compatibility&gt;   &lt;w:BreakWrappedTables/&gt;   &lt;w:SnapToGridInCell/&gt;   &lt;w:WrapTextWithPunct/&gt;   &lt;w:UseAsianBreakRules/&gt;   &lt;w:DontGrowAutofit/&gt;   &lt;w:SplitPgBreakAndParaMark/&gt;   &lt;w:EnableOpenTypeKerning/&gt;   &lt;w:DontFlipMirrorIndents/&gt;   &lt;w:OverrideTableStyleHps/&gt;   &lt;w:UseFELayout/&gt;  &lt;/w:Compatibility&gt;  &lt;m:mathPr&gt;   &lt;m:mathFont m:val="Cambria Math"/&gt;   &lt;m:brkBin m:val="before"/&gt;   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;   &lt;m:smallFrac m:val="off"/&gt;   &lt;m:dispDef/&gt;   &lt;m:lMargin m:val="0"/&gt;   &lt;m:rMargin m:val="0"/&gt;   &lt;m:defJc m:val="centerGroup"/&gt;   &lt;m:wrapIndent m:val="1440"/&gt;   &lt;m:intLim m:val="subSup"/&gt;   &lt;m:naryLim m:val="undOvr"/&gt;  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="276"&gt;  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt; &lt;/w:LatentStyles&gt;&lt;/xml&gt;&lt;![endif]--&gt; &lt;!--[if gte mso 10]&gt;&lt;style&gt; /* Style Definitions */ table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:Cambria;  mso-ascii-font-family:Cambria;  mso-ascii-theme-font:minor-latin;  mso-hansi-font-family:Cambria;  mso-hansi-theme-font:minor-latin;} &lt;/style&gt;&lt;![endif]--&gt;   &lt;!--StartFragment--&gt; &lt;br /&gt;Hot backups are important for high availability, they can run without blocking the application. Percona Xtrabackup is a great tool for backing up InnoDB data.&amp;nbsp; &lt;br /&gt;We have created a backup tool called &lt;span style="font-family: Courier New, Courier, monospace;"&gt;s9s_backup&lt;/span&gt; that makes Xtrabackup really easy to use, and is fully integrated with ClusterControl, which means that you can schedule backups with ease and view the backups that you have taken, and also restore the backups with no pain. &lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;s9s_backup&lt;/span&gt; is available in the lastest version of ClusterControl or you can &lt;a href="http://www.severalnines.com/downloads/cmon/s9s_backup" target="_blank"&gt;download it here&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-UUpCJ2mRZsk/UIU5WCcvckI/AAAAAAAAAOc/ML87O7fgBdE/s1600/backupstatus.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" src="http://4.bp.blogspot.com/-UUpCJ2mRZsk/UIU5WCcvckI/AAAAAAAAAOc/ML87O7fgBdE/s640/backupstatus.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;Is mysqldump totally useless then?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;No. If you would like to isolate and load only one table, mysqldump is great, or if you want to load your data into another storage engine or database (e.g. NDB). Then mysqldump comes in very hand. Within ClusterControl you can create schedules to make a mysqldumps, full and incremental backups using Xtrabackup. &lt;br /&gt;&lt;h3&gt;&lt;b&gt;How to use s9s_backup&lt;/b&gt;&lt;/h3&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;s9s_backup&lt;/span&gt; is included in ClusterControl and automatically installed in either&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;/usr/bin&lt;/span&gt; or &lt;span style="font-family: Courier New, Courier, monospace;"&gt;/usr/local/cmon/bin&lt;/span&gt;.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;Running&lt;span style="font-family: Courier New, Courier, monospace;"&gt;/usr/bin/s9s_backup&lt;/span&gt;prints out the set of options that&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;s9s_backup&lt;/span&gt; supports:&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="background-color: transparent; font-family: 'Courier New', Courier, monospace;"&gt;/usr/bin/s9s_backup &amp;lt;--backup|--list|--install|--purge|--restore&amp;gt; &lt;options follows="follows"&gt;&lt;/options&gt;&lt;/span&gt;&lt;span style="background-color: transparent;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;h3&gt;&lt;b&gt;Full Backup&lt;/b&gt;&lt;/h3&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="background-color: transparent; font-family: 'Courier New', Courier, monospace;"&gt;/&lt;/span&gt;&lt;span style="background-color: transparent;"&gt;usr/bin/s9s_backup --backup full&amp;nbsp; /path/to/my.cnf&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;backupdir&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;This will take a full backup of the host where you run the tool and store the backup in &lt;span style="font-family: Courier New, Courier, monospace;"&gt;&amp;lt;backupdir&amp;gt;/full/backupdir&lt;/span&gt;. &lt;br /&gt;s9s_backup writes a log &amp;nbsp;(you can change it easily in the s9s_backup script if you want it on screen instead) to &lt;span style="font-family: Courier New, Courier, monospace;"&gt;/tmp/s9s_backup.log&lt;/span&gt;. &lt;br /&gt;Status information is written into the CMON Database, so you can see if a backup has failed or succeeded, size information, md5 etc. &lt;br /&gt;&lt;h3&gt;&lt;b&gt;Incremental Backup&lt;/b&gt;&amp;nbsp;&lt;/h3&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;&lt;span style="background-color: transparent; font-size: x-small;"&gt;/usr/bin/s9s_backup --backup incr&amp;nbsp; /path/to/my.cnf&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;backupdir&amp;gt;&lt;/span&gt;&lt;/pre&gt;This will take an incremental backup of the host where you run the tool and store the backup in &lt;span style="font-family: Courier New, Courier, monospace;"&gt;&amp;lt;backupdir&amp;gt;/incremental&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;In order to take an incremental backup you must have already made a full backup on the host. So when creating the backup schedule (in either cron or ClusterControl), make user the first backup that will run is a full backup, else the incremental backups will fail.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;s9s_backup writes a log to &lt;span style="font-family: Courier New, Courier, monospace;"&gt;/tmp/s9s_backup.log&lt;/span&gt;.&amp;nbsp; &lt;br /&gt;&lt;h3&gt;&lt;b&gt;List backups&lt;/b&gt;&lt;/h3&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;&lt;span style="background-color: transparent; font-size: x-small;"&gt;/usr/bin/s9s_backup --list&lt;/span&gt;&lt;/pre&gt;This prints out a list of backup sets (a full backup plus the subsequent incremental backups) together with a backup id. This is called the&lt;b&gt; backup set:&lt;/b&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;&lt;span style="font-size: x-small;"&gt;root@server01:~# ./s9s_backup --list&lt;br /&gt;===========================================================================&lt;br /&gt;Full backup taken '2012-October-23_07:40:37':&lt;br /&gt;   server:     server01&lt;br /&gt;   &lt;b&gt;backup set: 2&lt;/b&gt;&lt;br /&gt;   status:     completed&lt;br /&gt;   location:   /backups//full/backup-full-...tar.gz (796873 bytes)&lt;br /&gt;   lsn:        8791838&lt;br /&gt;   md5:        31f84543c997a28a6bca7917776a5fac&lt;br /&gt;   &amp;gt;&amp;gt; incremental backup taken '2012-October-23_07:58:48':&lt;br /&gt;      server:   server01&lt;br /&gt;      &lt;b&gt;parent:   2&lt;/b&gt;&lt;br /&gt;      status:   completed&lt;br /&gt;      location: /backups//incremental/backup-incr-...tar.gz (2037959 bytes)&lt;br /&gt;      lsn:      35177200&lt;br /&gt;      md5:      5f845dd7a478fa0a99b4d97f6868c747&lt;/span&gt;&lt;/pre&gt;The list of a backup set is ordered by the &lt;i&gt;LSN&lt;/i&gt; (Logical Sequence Number) and the backup, once restored, will be restored in LSN order.&lt;br /&gt;&lt;o:p&gt;The incremental backups have as parent the full backup, so you can verify that the incremental backup indeed belongs to the correct backup set (parent). Orphaned backups cannot be restored.&lt;/o:p&gt;&amp;amp;nbsp &lt;br /&gt;&lt;h3&gt;&lt;b&gt;Restore backups&lt;/b&gt;&amp;nbsp;&lt;/h3&gt;Do not try to unpack the files in the backup set files manually. Instead you should use s9s_backup’s restore option to do it in the correct way and in the correct order: &lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;&lt;span style="background-color: transparent;"&gt;/usr/bin/s9s_backup --restore &amp;lt;backup id&amp;gt;  &amp;lt;my.cnf&amp;gt;  &amp;lt;restoredir&amp;gt;&lt;/span&gt;&lt;/pre&gt;To restore a backup, you must specify a backup set id. From the ClusterControl Web interface you can easily see which backup files are part of a backup set, or you can run the --list command. &lt;br /&gt;&lt;br /&gt;The &lt;i&gt;&lt;b&gt;restoredir&lt;/b&gt;&lt;/i&gt; specifies where the restored backup files in the backup set will be applied and combined by xtrabackup. Please note that the &lt;b&gt;restoredir is not, and must not be the same as the mysql datadir&lt;/b&gt;.&amp;nbsp; The increments are restored in LSN order to ensure you have a consistent restore point. This means that you as a user don’t have to worry about what order to apply the increments in. s9s_backup takes care of that, which is great when you are under pressure. &lt;br /&gt;&lt;br /&gt;When restoring, s9s_backup compares the&lt;b&gt; md5sum&lt;/b&gt; of the backup files when the backup was taken with the backup files that are currently restored. If there is a mismatch, s9s_backup will abort the restoration. &lt;br /&gt;&lt;br /&gt;Once the restore is completed, the restoredir contains a complete restored backup that can be copied back to the mysql datadir.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;br /&gt;Assuming you have a &lt;i&gt;total cluster crash&lt;/i&gt;, and the cluster is unable to repair itself, then do on one node only: &lt;!--[endif]--&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make sure that the ClusterControl controller is stopped to prevent auto-recovery (you are now in charge of the recovery). On the controller do: &lt;span style="font-family: Courier New, Courier, monospace;"&gt;service cmon stop&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="MsoNormal"&gt;Verify the other mysql servers are stopped.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;cd &amp;lt;restoredir&amp;gt;/&amp;lt;backup set id&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;make sure the &lt;mysql datadir="datadir"&gt; is empty (use e.g &lt;span style="font-family: Courier New, Courier, monospace;"&gt;rm -rf /var/lib/mysql&lt;/span&gt;) before running the innobackupex –copy-back command in the next step&lt;/mysql&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;innobackupex&amp;nbsp; --copy-back&amp;nbsp; &amp;lt;restoredir&amp;gt;/&amp;lt;backup set id&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;chown mysql:mysql –R &amp;lt;mysql datadir&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;mysqld_safe --defaults-file=/path/to/my.cnf --wsrep-cluster-address='gcomm://' &amp;amp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Start the ClusterControl controller (on the controller do:&amp;nbsp;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;service cmon start&lt;/span&gt;),and it will orchestrate the synchronization of the other nodes.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;&lt;b&gt;Purge backups&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;If you want to purge old backups, or failed backups, you can do:&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;&lt;span style="background-color: transparent;"&gt;/usr/bin/s9s_backup --purge &amp;lt;retention_period&amp;gt; &lt;backup id="id" set="set"&gt; &lt;my .cnf=".cnf"&gt; &lt;restoredir&gt;&lt;/restoredir&gt;&lt;/my&gt;&lt;/backup&gt;&lt;/span&gt;&lt;/pre&gt;Backups older than &lt;span style="font-family: Courier New, Courier, monospace;"&gt;retention_period&lt;/span&gt;&amp;nbsp;will be removed from the file system.&lt;br /&gt;The retention, if not specified on the command line, will be fetched from the cmon database (in the cmon_configuration table), which you can set from the Web interface under Cluster Settings.&lt;br /&gt;&lt;h3&gt;&lt;b&gt;Installation of Xtrabackup and Cron Job&lt;/b&gt;&lt;/h3&gt;If Percona Xtrabackup is not already installed, then s9s_backup will automatically download and install Xtrabackup.  &lt;br /&gt;To install Xtrabackup and to also install a cron job do: &lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;&lt;span style="background-color: transparent;"&gt;/usr/bin/s9s_backup --install cron&lt;/span&gt;&lt;/pre&gt;The 'cron' at the end means Install Cron job. &lt;br /&gt;This will install Percona Xtrabackup on this server, but no cron job: &lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;/usr/bin/s9s_backup --install &lt;/pre&gt;In both cases above, the Percona Xtrabackup will be downloaded and installed. &lt;br /&gt;The cron job is defined in the s9s_backup script, and you can easily modify it to suit your needs. The cron job is installed in&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;/etc/cron.d/s9s_backup&lt;/span&gt;&lt;br /&gt;The cron job will take a full backup every Sunday at 0300 and then incremental backups Mon-Sat at 0300.&lt;br /&gt;&lt;br /&gt;If you want to modify the cron job table you can do it directly in the s9s_backup script or post installation by changing &lt;span style="font-family: Courier New, Courier, monospace;"&gt;/etc/cron.d/s9s_backup&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally, you can of course edit, change and make whatever modifications you like to the s9s_backup script if you want to customize it further.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;!--EndFragment--&gt;</description><link>http://johanandersson.blogspot.com/2012/10/hotbackup-of-galera-cluster-for-mysql.html</link><author>noreply@blogger.com (Johan Andersson)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-UUpCJ2mRZsk/UIU5WCcvckI/AAAAAAAAAOc/ML87O7fgBdE/s72-c/backupstatus.png' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-3648916120415881639</guid><pubDate>Mon, 24 Sep 2012 08:50:00 +0000</pubDate><atom:updated>2012-09-24T09:51:24.539+01:00</atom:updated><title>garbd - How to avoid network partitioning or split brain in a Galera Cluster</title><description>&lt;br /&gt;Network partitioning (aka split brain) is something you don’t want to happen,&amp;nbsp;but what is the problem really?&lt;br /&gt;&lt;br /&gt;Sometimes, users set up a &lt;a href="http://www.severalnines.com/%20galera-configurator/" target="_blank"&gt;Galera Cluster&lt;/a&gt; (or Percona XtraDB Cluster) containing an&lt;i&gt; even number&lt;/i&gt;&lt;br /&gt;&lt;i&gt;of nodes&lt;/i&gt;, e.g, four or six nodes, and then place half of the nodes in one data&amp;nbsp;center and the other half in another data center. If the network link goes down&amp;nbsp;between the two data centers, then the Galera cluster is partitioned and half of&amp;nbsp;the nodes cannot communicate with the other half. Galera’s quorum algorithm&lt;br /&gt;will not be able to select the ‘primary component’, since both sets have the same&amp;nbsp;number of nodes. You then end up with 2 sets of nodes that are ‘non-primary’,&amp;nbsp;and effectively, none of the nodes would be available for database transactions.&lt;br /&gt;&lt;br /&gt;Below is a screenshot of &lt;a href="http:// www.severalnines.com/clustercontrol-mysql-galera" target="_blank"&gt;ClusterControl&lt;/a&gt; for Galera. I have simulated a&amp;nbsp;network partition by simply killing two of the nodes at the same time.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Je1PvZLNRfI/UGAbayIA2SI/AAAAAAAAAOE/lTqE-2vio5A/s1600/garbd-split-brain.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="254" src="http://4.bp.blogspot.com/-Je1PvZLNRfI/UGAbayIA2SI/AAAAAAAAAOE/lTqE-2vio5A/s640/garbd-split-brain.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Network partitioning / split brain&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Half of the nodes got disconnected from the other nodes. The nodes staying up&amp;nbsp;cannot determine the state of the other nodes, e.g, if they are really down (dead&amp;nbsp;process), or if it was just the network link that went down and the processes are&amp;nbsp;still up. Continuing then would be unsafe, and the two separated halves could&amp;nbsp;potentially drift away, and you would have an inconsistent database.&lt;br /&gt;&lt;br /&gt;At this point, our 2 nodes are pretty useless; at least one node should be in&amp;nbsp;state ‘synced’ before it can be accessed. ClusterControl will address this situation&amp;nbsp;by first recovering the first two nodes in ‘non-Primary’ state and setting them to&amp;nbsp;Primary. It will then resync the two crashed nodes when they are back.&lt;br /&gt;&lt;br /&gt;In order to avoid this, you can install an arbitrator (&lt;i&gt;garbd&lt;/i&gt;). &lt;i&gt;garbd&lt;/i&gt; is a stateless&amp;nbsp;daemon which acts as a lightweight group member. In a quorum situation where&amp;nbsp;half of the nodes are not available, garbd will help avoid a split-brain.&lt;br /&gt;&lt;br /&gt;In ClusterControl, &lt;i&gt;garbd&lt;/i&gt; is a managed process (will be automatically restarted &amp;nbsp;in case of failure) and can easily be installed from&amp;nbsp;the deployment package:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;./install-garbd.sh &lt;somehost&gt; &lt;clusterid&gt;&lt;/clusterid&gt;&lt;/somehost&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now that we have installed garbd in our 4-node test cluster, it will now consist&amp;nbsp;of 1+4 nodes. Killing 2 nodes will not affect the whole cluster, as the remaining&amp;nbsp;nodes will have the majority, see the picture below The minority will be excluded from the cluster, and&amp;nbsp;when they are up and ready to rejoin the cluster, they will go through a recovery&amp;nbsp;protocol before being accepted into the cluster.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hxCyENDs2Sc/UGAbdHrx0NI/AAAAAAAAAOM/ew1VfwnFD10/s1600/garbd-two-synced.png" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/-hxCyENDs2Sc/UGAbdHrx0NI/AAAAAAAAAOM/ew1VfwnFD10/s640/garbd-two-synced.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Majority win - garbd + two survivors &amp;gt; two failed nodes&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Hopefully this gives an idea how and why &lt;i&gt;garbd&lt;/i&gt; comes in handy.&lt;br /&gt;&lt;br /&gt;</description><link>http://johanandersson.blogspot.com/2012/09/garbd-how-to-avoid-network-partitioning.html</link><author>noreply@blogger.com (Johan Andersson)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Je1PvZLNRfI/UGAbayIA2SI/AAAAAAAAAOE/lTqE-2vio5A/s72-c/garbd-split-brain.png' height='72' width='72'/><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-2160703571470110880</guid><pubDate>Tue, 11 Sep 2012 09:11:00 +0000</pubDate><atom:updated>2013-01-09T10:03:11.352Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>scaling</category><category domain='http://www.blogger.com/atom/ns#'>MySQL</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Cluster</category><category domain='http://www.blogger.com/atom/ns#'>replication</category><category domain='http://www.blogger.com/atom/ns#'>severalnines</category><category domain='http://www.blogger.com/atom/ns#'>reporting</category><category domain='http://www.blogger.com/atom/ns#'>HA</category><category domain='http://www.blogger.com/atom/ns#'>InnoDB</category><title>MySQL Cluster to InnoDB Replication Howto</title><description>&lt;br /&gt;In this blog post I will show you how to setup a replication from MySQL Cluster &amp;nbsp;(ndbcluster) to a regular MySQL Server (InnoDB). If you want to understand the concepts, check out part 7 of our&amp;nbsp;&lt;a href="http://www.severalnines.com/resources/tutorials" target="_blank"&gt;free MySQL Cluster training&lt;/a&gt;.&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;br /&gt;First of all we start with a MySQL Cluster looking like this, and what we want to do is to setup replication server to the Reporting Server (InnoDB slave).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-GH7pDg2CBkU/UE7-EEWQBfI/AAAAAAAAANw/8a3_4WBscQY/s1600/NDB-to-InnoDB-Repl.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="322" src="http://3.bp.blogspot.com/-GH7pDg2CBkU/UE7-EEWQBfI/AAAAAAAAANw/8a3_4WBscQY/s400/NDB-to-InnoDB-Repl.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;o:DocumentProperties&gt;  &lt;o:Revision&gt;0&lt;/o:Revision&gt;  &lt;o:TotalTime&gt;0&lt;/o:TotalTime&gt;  &lt;o:Pages&gt;1&lt;/o:Pages&gt;  &lt;o:Words&gt;125&lt;/o:Words&gt;  &lt;o:Characters&gt;713&lt;/o:Characters&gt;  &lt;o:Company&gt;Severalnines AB&lt;/o:Company&gt;  &lt;o:Lines&gt;5&lt;/o:Lines&gt;  &lt;o:Paragraphs&gt;1&lt;/o:Paragraphs&gt;  &lt;o:CharactersWithSpaces&gt;837&lt;/o:CharactersWithSpaces&gt;  &lt;o:Version&gt;14.0&lt;/o:Version&gt; &lt;/o:DocumentProperties&gt; &lt;o:OfficeDocumentSettings&gt;  &lt;o:AllowPNG/&gt; &lt;/o:OfficeDocumentSettings&gt;&lt;/xml&gt;&lt;![endif]--&gt; &lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;  &lt;w:View&gt;Normal&lt;/w:View&gt;  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;  &lt;w:TrackMoves/&gt;  &lt;w:TrackFormatting/&gt;  &lt;w:PunctuationKerning/&gt;  &lt;w:ValidateAgainstSchemas/&gt;  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;  &lt;w:DoNotPromoteQF/&gt;  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;  &lt;w:LidThemeAsian&gt;JA&lt;/w:LidThemeAsian&gt;  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;  &lt;w:Compatibility&gt;   &lt;w:BreakWrappedTables/&gt;   &lt;w:SnapToGridInCell/&gt;   &lt;w:WrapTextWithPunct/&gt;   &lt;w:UseAsianBreakRules/&gt;   &lt;w:DontGrowAutofit/&gt;   &lt;w:SplitPgBreakAndParaMark/&gt;   &lt;w:EnableOpenTypeKerning/&gt;   &lt;w:DontFlipMirrorIndents/&gt;   &lt;w:OverrideTableStyleHps/&gt;   &lt;w:UseFELayout/&gt;  &lt;/w:Compatibility&gt;  &lt;m:mathPr&gt;   &lt;m:mathFont m:val="Cambria Math"/&gt;   &lt;m:brkBin m:val="before"/&gt;   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;   &lt;m:smallFrac m:val="off"/&gt;   &lt;m:dispDef/&gt;   &lt;m:lMargin m:val="0"/&gt;   &lt;m:rMargin m:val="0"/&gt;   &lt;m:defJc m:val="centerGroup"/&gt;   &lt;m:wrapIndent m:val="1440"/&gt;   &lt;m:intLim m:val="subSup"/&gt;   &lt;m:naryLim m:val="undOvr"/&gt;  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="276"&gt;  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt; &lt;/w:LatentStyles&gt;&lt;/xml&gt;&lt;![endif]--&gt; &lt;!--[if gte mso 10]&gt;&lt;style&gt; /* Style Definitions */ table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:Cambria;  mso-ascii-font-family:Cambria;  mso-ascii-theme-font:minor-latin;  mso-hansi-font-family:Cambria;  mso-hansi-theme-font:minor-latin;} &lt;/style&gt;&lt;![endif]--&gt;   &lt;!--StartFragment--&gt; &lt;br /&gt;&lt;div class="MsoNormal"&gt;MySQL Cluster is great at scaling large numbers of write transactions or shorter key-based read querise, but not so good at longer reporting or analytical queries. I generally recommend people to limit analytical/reporting queries on the MySQL Cluster, in order to avoid slowing down the realtime access to the cluster. A great way of doing that is to replicate the MySQL Cluster data to a standalone MySQL Server. &amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;To achieve that, we will need a replication server. All data written into NDBCLUSTER is sent as events to the replication server. A MySQL Server can be turned into a replication server by specifying --log-bin. The replication server then produces a binary log, which can be replicated to a standalone InnoDB.&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;(NOTE: For redundancy, it is possible to have 2 replication servers. We will cover that in a separate blog.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;!--EndFragment--&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Replication Layer Configuration&lt;/span&gt;&lt;br /&gt;In the my.cnf of the replication server you should have the following:&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;[mysqld]&lt;br /&gt;...&lt;br /&gt;#REPLICATION SPECIFIC - GENERAL&lt;br /&gt;#server-id must be unique across all mysql servers participating in replication.&lt;br /&gt;server-id=101&lt;br /&gt;#REPLICATION SPECIFIC - MASTER&lt;br /&gt;log-bin=binlog&lt;br /&gt;binlog-do-db=user_db_1&lt;br /&gt;binlog-do-db=user_db_2&lt;br /&gt;binlog-do-db=mysql&lt;br /&gt;expire-logs-days=5&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;You may want to skip &amp;nbsp;the &lt;b&gt;binlog-do-db=..&lt;/b&gt;, if you want to replicate all databases, but, if you want to replicate a particular database, make sure you also replicate the &lt;b&gt;mysql&lt;/b&gt; database in order to get some very important data on the slave.&lt;br /&gt;&lt;br /&gt;Restart the replication server for the settings to have effect.&lt;br /&gt;Grant access to the Slave:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;GRANT REPLICATION SLAVE ON *.* TO 'repl'@'ip/hostname of mysqld m' &lt;br /&gt;  IDENTIFIED BY 'repl';&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;InnoDB Slave Configuration&lt;/span&gt;&lt;br /&gt;The first requirement on the InnoDb slave is that it &lt;b&gt;must&lt;/b&gt;&amp;nbsp;use the mysqld binary that comes from the MySQL Cluster package. If you already have a MySQL 5.5 installed that is not clustered, you need to upgrade it to the Cluster version of it. E.g, by doing:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;sudo rpm -Uvh MySQL-Cluster-server-gpl-7.2.7-1.el6.x86_64.rpm&lt;br /&gt;sudo rpm -Uvh MySQL-Cluster-client-gpl-7.2.7-1.el6.x86_64.rpm&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The InnoDB slave&amp;nbsp;should have the following:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;[mysqld]&lt;br /&gt;...&lt;br /&gt;binlog-format=mixed&lt;br /&gt;log-bin=binlog&lt;br /&gt;log-slave-updates=1&lt;br /&gt;slave-exec-mode=IDEMPOTENT&lt;br /&gt;expire-logs-days=5&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If you want the InnoDb to further replicate to a set of slaves, then you should set&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;log-slave-updates=1&lt;/span&gt;&amp;nbsp;otherwise you can set it to 0 (&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;log-slave-updates=0&lt;/span&gt;). Thatt is all, restart the slave.&lt;br /&gt;&lt;br /&gt;You &lt;b&gt;must&lt;/b&gt; also create the following table on the&amp;nbsp;Innodb Slave:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;use mysql;&lt;/pre&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;CREATE TABLE `ndb_apply_status` (&lt;br /&gt;`server_id` int(10) unsigned NOT NULL,&lt;br /&gt;`epoch` bigint(20) unsigned NOT NULL,&lt;br /&gt;`log_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,&lt;br /&gt;`start_pos` bigint(20) unsigned NOT NULL,&lt;br /&gt;`end_pos` bigint(20) unsigned NOT NULL,&lt;br /&gt;PRIMARY KEY (`server_id`) USING HASH)&lt;br /&gt;ENGINE=INNODB DEFAULT CHARSET=latin1;&lt;/pre&gt;&lt;br /&gt;Then do CHANGE MASTER:&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;CHANGE MASTER TO MASTER_HOST='ip/hostname of the replication server', MASTER_USER='repl', MASTER_PASSWORD='repl';&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;Staging the InnoDB Slave with Data&lt;/span&gt;&lt;br /&gt;Now you need to stage the InnoDB slave with data. What you need to do is to disable traffic to NDBCLUSTER in order to get a consistent snapshot of the data. As there are no clusterwide table locks in NDBCLUSTER you have two options:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Block the Loadbalancer from sending any transactions to MySQL Cluster&lt;/li&gt;&lt;li&gt;Make all SQL nodes READ ONLY, by locking all tables on ALL MySQL servers (if you use NDBAPI applications, then option 1) or shutting down the applications is the the only option): &amp;nbsp;FLUSH TABLES WITH READ LOCK;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;So on all MySQL Servers in the Access Layer do:&lt;/div&gt;&lt;div&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;FLUSH TABLES WITH READ LOCK;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ensure, by looking at the replication server, &amp;nbsp;that no writes are made to the NDBCLUSTER by looking at the SHOW MASTER STATUS:&lt;/div&gt;&lt;div&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;mysql&amp;gt; show master status;&lt;br /&gt;+---------------+-----------+--------------+------------------+&lt;br /&gt;| File          | Position  | Binlog_Do_DB | Binlog_Ignore_DB |&lt;br /&gt;+---------------+-----------+--------------+------------------+&lt;br /&gt;| binlog.000008 | 859092065 |              |                  |&lt;br /&gt;+---------------+-----------+--------------+------------------+&lt;br /&gt;1 row in set (0.00 sec) &lt;/pre&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;Run the SHOW MASTER STATUS; a couple of times until you see the Position not changing any more&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then RESET the replication server, so you have a good clean slate to start from:&lt;/div&gt;&lt;div&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;mysql&amp;gt; RESET MASTER;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now use mysqldump two times to get &amp;nbsp;:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;one dump with the schema&lt;/li&gt;&lt;li&gt;another dump with the data&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;mysqldump --no-data --routines --trigggers &amp;gt; schema.sql&lt;/pre&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;mysqldump --no-create-info --master-data=1 &amp;gt; data.sql&lt;/pre&gt;&lt;br /&gt;Of course you can dump out only the databases you are interested in. &lt;br /&gt;&lt;br /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;o:DocumentProperties&gt;  &lt;o:Revision&gt;0&lt;/o:Revision&gt;  &lt;o:TotalTime&gt;0&lt;/o:TotalTime&gt;  &lt;o:Pages&gt;1&lt;/o:Pages&gt;  &lt;o:Words&gt;15&lt;/o:Words&gt;  &lt;o:Characters&gt;90&lt;/o:Characters&gt;  &lt;o:Company&gt;Severalnines AB&lt;/o:Company&gt;  &lt;o:Lines&gt;1&lt;/o:Lines&gt;  &lt;o:Paragraphs&gt;1&lt;/o:Paragraphs&gt;  &lt;o:CharactersWithSpaces&gt;104&lt;/o:CharactersWithSpaces&gt;  &lt;o:Version&gt;14.0&lt;/o:Version&gt; &lt;/o:DocumentProperties&gt; &lt;o:OfficeDocumentSettings&gt;  &lt;o:AllowPNG/&gt; &lt;/o:OfficeDocumentSettings&gt;&lt;/xml&gt;&lt;![endif]--&gt; &lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;  &lt;w:View&gt;Normal&lt;/w:View&gt;  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;  &lt;w:TrackMoves/&gt;  &lt;w:TrackFormatting/&gt;  &lt;w:PunctuationKerning/&gt;  &lt;w:ValidateAgainstSchemas/&gt;  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;  &lt;w:DoNotPromoteQF/&gt;  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;  &lt;w:LidThemeAsian&gt;JA&lt;/w:LidThemeAsian&gt;  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;  &lt;w:Compatibility&gt;   &lt;w:BreakWrappedTables/&gt;   &lt;w:SnapToGridInCell/&gt;   &lt;w:WrapTextWithPunct/&gt;   &lt;w:UseAsianBreakRules/&gt;   &lt;w:DontGrowAutofit/&gt;   &lt;w:SplitPgBreakAndParaMark/&gt;   &lt;w:EnableOpenTypeKerning/&gt;   &lt;w:DontFlipMirrorIndents/&gt;   &lt;w:OverrideTableStyleHps/&gt;   &lt;w:UseFELayout/&gt;  &lt;/w:Compatibility&gt;  &lt;m:mathPr&gt;   &lt;m:mathFont m:val="Cambria Math"/&gt;   &lt;m:brkBin m:val="before"/&gt;   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;   &lt;m:smallFrac m:val="off"/&gt;   &lt;m:dispDef/&gt;   &lt;m:lMargin m:val="0"/&gt;   &lt;m:rMargin m:val="0"/&gt;   &lt;m:defJc m:val="centerGroup"/&gt;   &lt;m:wrapIndent m:val="1440"/&gt;   &lt;m:intLim m:val="subSup"/&gt;   &lt;m:naryLim m:val="undOvr"/&gt;  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="276"&gt;  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt; &lt;/w:LatentStyles&gt;&lt;/xml&gt;&lt;![endif]--&gt; &lt;!--[if gte mso 10]&gt;&lt;style&gt; /* Style Definitions */ table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:Cambria;  mso-ascii-font-family:Cambria;  mso-ascii-theme-font:minor-latin;  mso-hansi-font-family:Cambria;  mso-hansi-theme-font:minor-latin;} &lt;/style&gt;&lt;![endif]--&gt;   &lt;!--StartFragment--&gt; &lt;br /&gt;&lt;div class="MsoNormal"&gt;When the dumps have finished, you can enable traffic to NDBCLUSTER again. You can do on ALL SQL nodes: &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;!--EndFragment--&gt;&lt;br /&gt;&lt;pre class="programlisting" style="background-color: #eeeeee; border: 0px; font-family: 'Courier New', Courier, fixed, monospace; font-size: 13px; line-height: 20px; max-width: 720px; outline: 0px; padding: 2px; vertical-align: baseline;"&gt;UNLOCK TABLES&lt;/pre&gt;&lt;br /&gt;Point is that you can enable traffic to NDBCLUSTER again.&lt;br /&gt;&lt;br /&gt;Now, change the&lt;i&gt; ENGINE=ndbcluster&lt;/i&gt; to &lt;i&gt;ENGINE=innodb&lt;/i&gt; in schema.sql:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;&lt;span style="background-color: transparent;"&gt;sed -i.bak 's#ndbcluster#innodb#g' schema.sql&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Copy the schema.sql and data.sql to the slave, and load in the dump file to the InnoDb slave.&lt;br /&gt;&lt;br /&gt;Finally you can start replication, on the InnoDB slave you can now do:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;&lt;span style="background-color: transparent;"&gt;START SLAVE;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); font-family: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; text-align: left; width: 600px;"&gt;&lt;span style="background-color: transparent;"&gt;SHOW SLAVE STATUS \G&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;And hopefully all will be fine :)</description><link>http://johanandersson.blogspot.com/2012/09/mysql-cluster-to-innodb-replication.html</link><author>noreply@blogger.com (Johan Andersson)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-GH7pDg2CBkU/UE7-EEWQBfI/AAAAAAAAANw/8a3_4WBscQY/s72-c/NDB-to-InnoDB-Repl.png' height='72' width='72'/><thr:total>10</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-5864549985155609501</guid><pubDate>Thu, 30 Aug 2012 10:35:00 +0000</pubDate><atom:updated>2012-08-30T11:36:16.723+01:00</atom:updated><title>MySQL Cluster: Too many active scans</title><description>&lt;br /&gt;Continuing with another blog about troubleshooting MySQL Cluster we will look at a common error message: "Too many active scans".&lt;br /&gt;&lt;br /&gt;Now, you have already set MaxNoOfConcurrentScans=500 in your config.ini, and you can't increase it more (the max is 500), but you still get this error. Frustrating!&lt;br /&gt;&lt;br /&gt;But looking into the code, it is not MaxNoOfConcurrentScans that sets the limitation, it is actually MaxNoOfLocalScans and the "Too many active scans" comes from the Local Query Handler of the NDB node, and that is where&amp;nbsp;MaxNoOfLocalScans is used!&lt;br /&gt;&lt;br /&gt;So what you can try to do is to actually set/increase MaxNoOfLocalScans, and if it is not set already in your config.ini, the default value is calculated as:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;In 7.2.0 and later:&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;MaxNoOfLocalScans=&amp;nbsp;tcInstances *&amp;nbsp;lqhInstances&amp;nbsp;*&amp;nbsp;noOfDBNodes&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MaxNoOfConcurrentScans&amp;nbsp;+ 2&lt;/span&gt;&lt;br /&gt;So if we have&amp;nbsp;tcInstances=1,&amp;nbsp;lqhInstances=4, noOfDBNodes=4, and&amp;nbsp;MaxNoOfConcurrentScans=500 we get&lt;br /&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;MaxNoOfLocalScans=1*4*4*500 + 2 = 8002&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Earlier versions:&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;MaxNoOfLocalScans&amp;nbsp;= (noOfDBNodes * noOfScanRecords) + 2 ,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So if we have&amp;nbsp;noOfDBNodes=4, and&amp;nbsp;MaxNoOfConcurrentScans=500 we get&lt;br /&gt;&lt;div&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;MaxNoOfLocalScans=4*500 +2 = 2002&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you use our &lt;a href="http://www.severalnines.com/cluster-configurator" target="_blank"&gt;configuration packages&lt;/a&gt;, then you can simply just increase/set the MaxNoOfLocalScans and do:&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;./rolling-restart.sh&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Good luck!&lt;/div&gt;</description><link>http://johanandersson.blogspot.com/2012/08/mysql-cluster-too-many-active-scans.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-4241689056343628014</guid><pubDate>Wed, 29 Aug 2012 07:07:00 +0000</pubDate><atom:updated>2012-08-29T08:07:34.639+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>troubleshooting</category><category domain='http://www.blogger.com/atom/ns#'>high availability</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Cluster</category><category domain='http://www.blogger.com/atom/ns#'>monitoring</category><category domain='http://www.blogger.com/atom/ns#'>administration</category><category domain='http://www.blogger.com/atom/ns#'>severalnines</category><category domain='http://www.blogger.com/atom/ns#'>clustercontrol</category><title>MySQL Cluster:  Troubleshooting Error 157 / 4009 Cluster Failure  </title><description>&lt;!--[if !mso]&gt;&lt;style&gt;v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} &lt;/style&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;o:DocumentProperties&gt;  &lt;o:Revision&gt;0&lt;/o:Revision&gt;  &lt;o:TotalTime&gt;0&lt;/o:TotalTime&gt;  &lt;o:Pages&gt;1&lt;/o:Pages&gt;  &lt;o:Words&gt;519&lt;/o:Words&gt;  &lt;o:Characters&gt;2962&lt;/o:Characters&gt;  &lt;o:Company&gt;Severalnines AB&lt;/o:Company&gt;  &lt;o:Lines&gt;24&lt;/o:Lines&gt;  &lt;o:Paragraphs&gt;6&lt;/o:Paragraphs&gt;  &lt;o:CharactersWithSpaces&gt;3475&lt;/o:CharactersWithSpaces&gt;  &lt;o:Version&gt;14.0&lt;/o:Version&gt; &lt;/o:DocumentProperties&gt; &lt;o:OfficeDocumentSettings&gt;  &lt;o:AllowPNG/&gt; &lt;/o:OfficeDocumentSettings&gt;&lt;/xml&gt;&lt;![endif]--&gt; &lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;  &lt;w:View&gt;Normal&lt;/w:View&gt;  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;  &lt;w:TrackMoves&gt;false&lt;/w:TrackMoves&gt;  &lt;w:TrackFormatting/&gt;  &lt;w:PunctuationKerning/&gt;  &lt;w:ValidateAgainstSchemas/&gt;  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;  &lt;w:DoNotPromoteQF/&gt;  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;  &lt;w:LidThemeAsian&gt;JA&lt;/w:LidThemeAsian&gt;  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;  &lt;w:Compatibility&gt;   &lt;w:BreakWrappedTables/&gt;   &lt;w:SnapToGridInCell/&gt;   &lt;w:WrapTextWithPunct/&gt;   &lt;w:UseAsianBreakRules/&gt;   &lt;w:DontGrowAutofit/&gt;   &lt;w:SplitPgBreakAndParaMark/&gt;   &lt;w:EnableOpenTypeKerning/&gt;   &lt;w:DontFlipMirrorIndents/&gt;   &lt;w:OverrideTableStyleHps/&gt;   &lt;w:UseFELayout/&gt;  &lt;/w:Compatibility&gt;  &lt;m:mathPr&gt;   &lt;m:mathFont m:val="Cambria Math"/&gt;   &lt;m:brkBin m:val="before"/&gt;   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;   &lt;m:smallFrac m:val="off"/&gt;   &lt;m:dispDef/&gt;   &lt;m:lMargin m:val="0"/&gt;   &lt;m:rMargin m:val="0"/&gt;   &lt;m:defJc m:val="centerGroup"/&gt;   &lt;m:wrapIndent m:val="1440"/&gt;   &lt;m:intLim m:val="subSup"/&gt;   &lt;m:naryLim m:val="undOvr"/&gt;  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="276"&gt;  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt; &lt;/w:LatentStyles&gt;&lt;/xml&gt;&lt;![endif]--&gt; &lt;!--[if gte mso 10]&gt;&lt;style&gt; /* Style Definitions */ table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:Cambria;  mso-ascii-font-family:Cambria;  mso-ascii-theme-font:minor-latin;  mso-hansi-font-family:Cambria;  mso-hansi-theme-font:minor-latin;} &lt;/style&gt;&lt;![endif]--&gt;   &lt;!--StartFragment--&gt; &lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;Suddenly your application starts throwing "error 157" and performance degrades or is non-existing. It is easy to panic then and try all sorts of actions to get past the problem. We have seen several users doing:&lt;/span&gt;&lt;/div&gt;&lt;ul type="disc"&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;rolling restart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;stop cluster / start cluster&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="MsoNormal" style="margin-bottom: 13.5pt;"&gt;&lt;span style="font-size: 13.5pt;"&gt;because they also see this in the error logs:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;120828 13:15:11 [Warning] NDB: Could not acquire global schema lock (4009)Cluster Failure&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;That is not a really a nice error message. To begin with, it is a WARNING when something is obviously wrong. IMHO, it should be CRITICAL. Secondly, the message ‘Cluster Failure’ is misleading. &amp;nbsp;The cluster may not really have failed, so there is no point trying to restart it before we know more.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;So what does error 157 mean and what can we do about it?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;By using&amp;nbsp;&lt;i&gt;perror&lt;/i&gt;&amp;nbsp;we can get a hint what it means:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;$ perror 157&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;MySQL error code 157: Could not connect to storage engine&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;What this means is simply as it says, one SQL node is not connected to the NDB storage engine. &amp;nbsp;It can be that you have messed up the&amp;nbsp;&lt;i&gt;ndb-connectstring&lt;/i&gt;&amp;nbsp;in the my.cnf of that SQL node.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;It is often the case that someone has been doing ALTER TABLEs, and for some reason, the schema files have been corrupted or is of the wrong version on one or more SQL nodes. It would make sense to check the SQL nodes for potential problems there. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;If you have multiple SQL nodes, you probably have the SQL nodes behind a load balancer. Which MySQL is really causing this problem? One of them, or all of them?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;Let’s take a look from one of the SQL nodes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;mysql&amp;gt; show global status like 'ndb_number_of%';&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;+--------------------------------+-------+&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Variable_name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Value |&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;+--------------------------------+-------+&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Ndb_number_of_data_nodes &amp;nbsp; &amp;nbsp; &amp;nbsp; | 2 &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Ndb_number_of_ready_data_nodes | 2 &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;+--------------------------------+-------+&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;2 rows in set (0.00 sec)&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;This is perfect, we have two Data nodes , and two of them are ready. This means that this particular SQL node is connected to the NDB storage engine. Now, let's look at another one:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;mysql&amp;gt; show global status like 'ndb_number_of%';&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;+--------------------------------+-------+&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Variable_name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Value |&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;+--------------------------------+-------+&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Ndb_number_of_data_nodes &amp;nbsp; &amp;nbsp; &amp;nbsp; | 0 &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Ndb_number_of_ready_data_nodes | 0 &amp;nbsp; &amp;nbsp; |&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;+--------------------------------+-------+&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;2 rows in set (0.00 sec)&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;This does not look good, this SQL node is not connected to the Data nodes. Now iterate over the remaining 62 MySQL servers or how many you have to find the bad apples. However, I prefer myself to spot the faulty ones like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Szg4AqBsHn0/UDzFwDI3nRI/AAAAAAAAAM8/BTfsjrpQl8A/s1600/Screen+Shot+2012-08-28+at+3.19.41+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="128" src="http://3.bp.blogspot.com/-Szg4AqBsHn0/UDzFwDI3nRI/AAAAAAAAAM8/BTfsjrpQl8A/s640/Screen+Shot+2012-08-28+at+3.19.41+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Screenshot from Severalnines ClusterControl&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div align="center"&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable"&gt; &lt;tbody&gt;&lt;tr&gt;  &lt;td style="padding: 4.5pt 4.5pt 4.5pt 4.5pt;"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: blue; font-size: 10pt; text-decoration: none;"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype    id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"    path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;   &lt;v:stroke joinstyle="miter"/&gt;   &lt;v:formulas&gt;    &lt;v:f eqn="if lineDrawn pixelLineWidth 0"/&gt;    &lt;v:f eqn="sum @0 1 0"/&gt;    &lt;v:f eqn="sum 0 0 @1"/&gt;    &lt;v:f eqn="prod @2 1 2"/&gt;    &lt;v:f eqn="prod @3 21600 pixelWidth"/&gt;    &lt;v:f eqn="prod @3 21600 pixelHeight"/&gt;    &lt;v:f eqn="sum @0 0 1"/&gt;    &lt;v:f eqn="prod @6 1 2"/&gt;    &lt;v:f eqn="prod @7 21600 pixelWidth"/&gt;    &lt;v:f eqn="sum @8 21600 0"/&gt;    &lt;v:f eqn="prod @7 21600 pixelHeight"/&gt;    &lt;v:f eqn="sum @10 21600 0"/&gt;   &lt;/v:formulas&gt;   &lt;v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/&gt;   &lt;o:lock v:ext="edit" aspectratio="t"/&gt;  &lt;/v:shapetype&gt;&lt;v:shape id="Picture_x0020_1" o:spid="_x0000_i1025" type="#_x0000_t75"    alt="Description: http://3.bp.blogspot.com/-Szg4AqBsHn0/UDzFwDI3nRI/AAAAAAAAAM8/BTfsjrpQl8A/s640/Screen+Shot+2012-08-28+at+3.19.41+PM.png"    href="http://3.bp.blogspot.com/-Szg4AqBsHn0/UDzFwDI3nRI/AAAAAAAAAM8/BTfsjrpQl8A/s1600/Screen+Shot+2012-08-28+at+3.19.41+PM.png"    style='width:640pt;height:129pt;visibility:visible;mso-wrap-style:square'    o:button="t"&gt;   &lt;v:fill o:detectmouseclick="t"/&gt;   &lt;v:imagedata src="file://localhost/Users/johan/Library/Caches/TemporaryItems/msoclip/0clip_image001.png"     o:title="//3.bp.blogspot.com/-Szg4AqBsHn0/UDzFwDI3nRI/AAAAAAAAAM8/BTfsjrpQl8A/s640/Screen+Shot+2012-08-28+at+3.19.41+PM.png"/&gt;  &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td style="padding: 3.0pt 4.5pt 4.5pt 4.5pt;"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;Now, we can stop the SQL nodes that are marked as "red":&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13.5pt;"&gt;1.&lt;span style="font-family: 'Times New Roman'; font-size: 7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13.5pt;"&gt;Stop the MySQL server:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;service mysql stop&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13.5pt;"&gt;2.&lt;span style="font-family: 'Times New Roman'; font-size: 7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13.5pt;"&gt;Go into the database(s) you have in the datadir of the MySQL server:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;cd /var/lib/mysql/mydatabase/&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13.5pt;"&gt;3.&lt;span style="font-family: 'Times New Roman'; font-size: 7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13.5pt;"&gt;Remove .frm files and .ndb files:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;for x in `ls *.ndb`; do rm `basename $x .ndb`.frm; rm `basename $x`; &amp;nbsp;done&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size: 13.5pt;"&gt;4.&lt;span style="font-family: 'Times New Roman'; font-size: 7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size: 13.5pt;"&gt;Start the MySQL server&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;service mysql start&lt;/span&gt;&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;Is step 2) safe to do?&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;Yes, the .frm files of the NDB tables are stored in the data dictionary inside the data nodes. By removing these files, and restarting the MySQL server, the MySQL server will fetch the missing .frm files from the data nodes, and you will end up with fresh ones.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;Hope this helps someone,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 13.5pt;"&gt;Johan&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;!--EndFragment--&gt;</description><link>http://johanandersson.blogspot.com/2012/08/mysql-cluster-troubleshooting-error-157.html</link><author>noreply@blogger.com (Johan Andersson)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Szg4AqBsHn0/UDzFwDI3nRI/AAAAAAAAAM8/BTfsjrpQl8A/s72-c/Screen+Shot+2012-08-28+at+3.19.41+PM.png' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-6723360930498270072</guid><pubDate>Fri, 11 May 2012 12:55:00 +0000</pubDate><atom:updated>2012-05-11T13:55:24.463+01:00</atom:updated><title>MySQL Cluster: mysqld Sort aborted and error 4006</title><description>&lt;br /&gt;Just a note on a problem that some people may find useful and may work for you if you have the same issue.&lt;br /&gt;&lt;br /&gt;A client had a problem this morning with queries being aborted with the error message:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;Got temporary error 4006 'Connect failure - out of connection objects (increase MaxNoOfConcurrentTransactions)' from NDBCLUSTER&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here you would think that increasing the number of&amp;nbsp;MaxNoOfConcurrentTransactions would help, but the root cause is something else (the client is not even close of hitting the default&amp;nbsp;MaxNoOfConcurrentTransactions)&lt;br /&gt;&lt;br /&gt;It turned out that during the night a couple of updates to the schema had been made (ALTER TABLEs to convert a couple of TEXT to &amp;nbsp;VARCHAR, so that a particular index could be created).&lt;br /&gt;&lt;br /&gt;Looking in the mysql error logs we had:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;120511 10:47:05 [ERROR] /usr/local/mysql/bin/mysqld: Sort aborted: Got temporary error 4006 'Connect failure - out of connection objects (increase MaxNoOfConcurrentTransactions)' from NDBCLUSTER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;120511 10:47:27 [ERROR] Got error 4006 when reading table './database_name/table_name&lt;/span&gt;'&lt;br /&gt;&lt;br /&gt;I suspected there was something wrong (corrupted?) with the .frm files that the mysql server is caching in the datadir, and simply did, for all mysql servers:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;stop mysqld&lt;/li&gt;&lt;li&gt;remove all .frm for all ndb tables in the database&lt;/li&gt;&lt;li&gt;start mysqld&lt;/li&gt;&lt;li&gt;and finally a "SHOW TABLES" to get all the .frm files back up from the data nodes into the local datadir of the mysqld&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Now, the problem is gone, but I can't explain how reading a table can cause error 4006...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hope this helps someone.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;</description><link>http://johanandersson.blogspot.com/2012/05/mysql-cluster-mysqld-sort-aborted-and.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>3</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-4250526278007814393</guid><pubDate>Fri, 27 Apr 2012 12:11:00 +0000</pubDate><atom:updated>2012-04-27T14:25:52.554+01:00</atom:updated><title>MySQL Cluster: Disk Data Config</title><description>&lt;br /&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;If you are using the Disk Data feature of MySQL Cluster you may find this useful. As you may know the default way of storing data in MySQL Cluster is in-memory. However, if you have tables that don't require realtime access and/or are growing larger than your available memory then you can use disk data tables. I have written a bunch of posts about disk data tables before:&lt;/div&gt;&lt;div class="p2"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://johanandersson.blogspot.se/2008/06/disk-data-tables.html"&gt;http://johanandersson.blogspot.se/2008/06/disk-data-tables.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://johanandersson.blogspot.se/2008/11/disk-data-extent-deallocation-caveats.html"&gt;http://johanandersson.blogspot.se/2008/11/disk-data-extent-deallocation-caveats.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://johanandersson.blogspot.se/2008/12/disk-data-summary.html"&gt;http://johanandersson.blogspot.se/2008/12/disk-data-summary.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://johanandersson.blogspot.se/2010/11/diskpagebuffermemory-tuning-and-disk.html"&gt;http://johanandersson.blogspot.se/2010/11/diskpagebuffermemory-tuning-and-disk.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="p2"&gt;However, it is quite hard to configure Disk Data tables correctly. There are some parameters to keep an eye on:&lt;/div&gt;&lt;div class="p2"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;UNDO LOG&lt;/b&gt; - MySQL Cluster undo logs every write access to the disk data tables. You can grow this resource online (ALTER .. ADD ..)&lt;/li&gt;&lt;li&gt;&lt;b&gt;REDO LOG &lt;/b&gt;- as for in-memory tables &amp;nbsp;every write is REDO logged. You can grow the REDO log with a &amp;nbsp;Rolling restart (NoOfFragmentLogFiles). The REDO LOG is shared between the disk data tables and the in-memory tables.&lt;/li&gt;&lt;li&gt;&lt;b&gt;REDO BUFFER &lt;/b&gt;- specified as RedoBuffer=32M or higher in config.ini.&amp;nbsp;&amp;nbsp;The REDO BUFFER is shared between the disk data tables and the in-memory tables.&lt;/li&gt;&lt;li&gt;&lt;b&gt;UNDO BUFFER&lt;/b&gt; - &amp;nbsp;created from SharedGlobalMemory resource and is set at LOGFILE GROUP creation. &lt;b&gt;WARNING!!&lt;/b&gt;&amp;nbsp;&lt;b&gt;Can not be changed at runtime&lt;/b&gt;! The LOGFILE GROUP must be recreated, and it requires that the table space (and all its data files) is dropped before.&lt;/li&gt;&lt;li&gt;&lt;b&gt;TABLESPACE &lt;/b&gt;- can be extended at runtime. &amp;nbsp;ALTER .. ADD..&lt;/li&gt;&lt;li&gt;&lt;b&gt;DiskPageBufferMemory&lt;/b&gt; - like the innodb_buffer_pool. The bigger the better. Can be tuned with a Rolling Restart.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="p2"&gt;For stability the most common mistakes are to set UNDO LOG and UNDO BUFFER too small.&lt;/div&gt;&lt;div class="p2"&gt;What can happen then?&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"&gt;&lt;b&gt;Stability and Recovery&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;If UNDO BUFFER is too small symptoms are:&lt;/div&gt;&lt;div class="p2"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Failed writes to the Disk Data tables.&amp;nbsp;&lt;/li&gt;&lt;li&gt;In worst case you can hit crashing bugs.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="p2"&gt;If UNDO LOG is too small symptoms are:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Failed writes to the Disk Data tables. In worst case you can hit crashing bugs.&lt;/li&gt;&lt;li&gt;&amp;nbsp;Node recovery may not be possible - the recovering node will crash. &lt;br /&gt;Severalnines has assisted a number of client to perform &amp;nbsp;a number of recovery when this has been the case.&lt;/li&gt;&lt;li&gt;If there is a Cluster crash due to a too small UNDO LOG you will most likely have to restore from backup.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="p1"&gt;How can it be possible for MySQL Cluster to fail to recover the node, when it was possible to load it with data?&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;The problem is that your &lt;i&gt;write pattern when writing data at runtime into MySQL Cluster is different from the write pattern at recovery&lt;/i&gt;.&lt;/div&gt;&lt;div class="p2"&gt;At recovery the recovering data node will copy data (over the network) from the other node in the node group. It will do this as fast as it can, table by table.&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;Thus, it will be a lot of data coming into the recovering data node (like a bulk write) and in this case then the UNDO LOG may be too small to handle the write log (you can argue why UNDO and REDO log while doing recovery but but..). If the UNDO LOG is over run, then the node will crash.&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"&gt;&lt;b&gt;Configuration&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;As usual this depends a lot &amp;nbsp;on the access patterns you have so it is hard to give exact numbers but if you rely on disk data tables you should have:&lt;/div&gt;&lt;div class="p2"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;[NDBD DEFAULT] SharedGlobalMemory=1024M&lt;/span&gt;&lt;br /&gt;Disk operation records and other meta data is allocated from this buffer. The more records you have in the disk data tables the bigger this buffer must be. 1024M is a good start.&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;[NDBD DEFAULT]&amp;nbsp;DiskPageBufferMemory=4096M&lt;br /&gt;A&lt;/span&gt;s large as you can (remember that in-memory tables, and for disk data tables, indexed attributes resides in DataMemory so you need to have enough DataMemory.&lt;br /&gt;The important when tuning the&amp;nbsp;DiskPageBufferMemory is to get a good hit ratio.&amp;nbsp;If you use &lt;a href="http://www.severalnines.com/cluster-configurator" target="_blank"&gt;ClusterControl&lt;/a&gt; you will see the hit ratio (picture coming soon).&lt;br /&gt;4096M is a good start.&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;UNDO_BUFFER_SIZE=32M &amp;nbsp;or 64M &lt;/span&gt;(same size as you have for the RedoBuffer)&lt;br /&gt;This is specified in the&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt; CREATE LOGFILE GROUP ...&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;UNDO LOG space should be&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt; 0.5 x NoOfFragmentLogFileSize x 4 x FragmentLogFileSize &lt;/span&gt;(this may take it to the extreme but better safe than sorry).&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;[NDBD DEFAULT]&amp;nbsp;&amp;nbsp;DiskIoThreadPool=8&lt;/span&gt; &amp;nbsp; &amp;nbsp;(2 is default) &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;UndoIndexBuffer/UndoDataBuffer &amp;nbsp;- those parameters are deprecated but still in the manual (I have grepped the 7.2.4 source and find no trace of it. It was a long time those were used. When LCP was done different in Cluster. So no need to set these.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="p2"&gt;Please not that you can always add more UNDO LOG files online by issuing&lt;/div&gt;&lt;div class="p2"&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;ALTER LOGFILE GROUP &lt;logfilegroup&gt; &amp;nbsp;ADD UNDOFILE 'undo_X.dat&amp;nbsp;INITIAL_SIZE=1024M&amp;nbsp;ENGINE=NDBCLUSTER;&lt;/logfilegroup&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;span style="font-family: inherit;"&gt;However, if the Cluster crashes, then it is too late.&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"&gt;&lt;b&gt;Disk Layout&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Put the Redo log + LCP &amp;nbsp;on separate disk spindles ( A)&lt;/li&gt;&lt;li&gt;Put the Undo log on separate disk spindles&amp;nbsp;&amp;nbsp;(FileSystemPathUndoFiles) (B)&lt;/li&gt;&lt;li&gt;Put the Data files (table space) on separate disk spindles (FileSystemPathDataFiles) (C)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="p2"&gt;In many cases you can combine B and C on the same disks, and if you have a good disk array, you can of course combine A,B and C.&amp;nbsp;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;Bottom line is, watch your disks and utilized they are. That will determine if you have to make disk reconfigurations. Also, beware of trial and error before getting the DiskPageBufferMemory and SharedGlobalMemory right.&lt;/div&gt;</description><link>http://johanandersson.blogspot.com/2012/04/mysql-cluster-disk-data-config.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>6</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-7147396778595236619</guid><pubDate>Wed, 25 Apr 2012 09:29:00 +0000</pubDate><atom:updated>2012-04-25T20:23:03.661+01:00</atom:updated><title>MySQL Cluster: How to load it with data</title><description>&lt;br /&gt;&lt;div class="p1"&gt;After you have &lt;a href="http://www.severalnines.com/cluster-configurator/" target="_blank"&gt;setup and properly configured&lt;/a&gt;&amp;nbsp;MySQL Cluster you typically want to load data into it. There are a couple of ways to load data into MySQL Cluster, e.g, from dumpfiles or from csv files.&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;If you expect loading data into MySQL Cluster will be as fast as on MyISAM then you have the wrong expectations unless you parallelize your data loading.&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Also, MYISAM/INNODB stores the data in local buffers/disk and in one copy only (asynchronous replication does not count as it is asynchronous) whereas MySQL Cluster (NDBCLUSTER engine) stores two copies of the data. Synchronous replication between the two copies adds ~ 2x overhead and you have network between mysql servers and data nodes.&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;So, to load a dump file into MySQL Cluster is bound to be slower than MYISAM/INNODB. Also loading data files can be error prone.&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Here is what we at &lt;a href="http://www.severalnines.com/" target="_blank"&gt;Severalnines&lt;/a&gt; usually do to avoid trial and terror of configuration options and to make sure we don't have to make X tries to load my Y GB dump file. We want to do it once, and get it right then, just because it takes time to make multiple iterations:&lt;/div&gt;&lt;div class="p1"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Load in the schema in MYISAM/INNODB on one of the MySQL Servers connected to the data nodes.Please Note that your data is NOT yet stored in the NDBCLUSTER storage engine and is at this point only accessible from the mysql server where you imported the MYISAM/INNODB tables.&lt;/li&gt;&lt;li&gt;Check for redundant indexes and remove them to reduce storage footprint. Some ORMs have a tendency for adding redundant indexes. Personally I think it is faster to make the transformations when the tables are in MYISAM/INNODB than in NDBCLUSTER, especially if there are data in the tables.&lt;br /&gt;You can use &lt;a href="http://www.percona.com/" target="_blank"&gt;Percona's&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.percona.com/doc/percona-toolkit" target="_blank"&gt;pt-duplicate-key-checker&lt;/a&gt;&amp;nbsp; (&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;wget percona.com/get/pt-duplicate-key-checker&lt;/span&gt;). See an example below at the end. It makes it dead easy to find and drop the redundant indexes. Redundant indexes are good to remove also because writes will be faster (less indexes to update) and to reduce the risk that the optimizer will pick the wrong index.&lt;/li&gt;&lt;li&gt;Check data types - do you have BLOB/TEXT where you really can use VARBINARY/VARCHAR ? BLOBs/TEXTs can slow down performance with a factor 2-3x (at least). Sometimes BLOBs/TEXTs are overused in many applications.&lt;/li&gt;&lt;/ul&gt;&lt;div class="p1"&gt;When you have washed your schema then you can simply do:&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;ALTER TABLE tablename ENGINE=ndbcluster;&lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;If you get an error message such as:&lt;/div&gt;&lt;div class="p2"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;mysql&amp;gt; alter table events &amp;nbsp;engine=ndbcluster;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;ERROR 1297 (HY000): Got temporary error 1217 'Out of operation records in local data manager (increase MaxNoOfLocalOperations)' from NDBCLUSTER&lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Then you can change the &lt;b&gt;ndb_batch_size&lt;/b&gt; (a lower batch size will make it longer time to ALTER the table from MYISAM/INNODB to NDBCLUSTER because more roundtrips are needed between the &amp;nbsp;MySQL Server and the data nodes):&lt;/div&gt;&lt;div class="p2"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;mysql&amp;gt; set &amp;nbsp;ndb_batch_size=8*1024*1024;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Query OK, 0 rows affected (0.00 sec)&lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;mysql&amp;gt; alter table events &amp;nbsp;engine=ndbcluster;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Query OK, 67748 rows affected (4.00 sec)&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;Records: 67748 &amp;nbsp;Duplicates: 0 &amp;nbsp;Warnings: 0&lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;32MB is the max value for ndb_batch_size.&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Now, to furthermore increase the speed of the ALTER you can perform two or more ALTERs in parallel from two or more connections:&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;mysql conn 1 &amp;gt;&amp;nbsp;alter table events &amp;nbsp; &amp;nbsp; engine=ndbcluster;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;mysql conn 2 &amp;gt;&amp;nbsp;alter table employees &amp;nbsp;engine=ndbcluster;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;mysql conn 3 &amp;gt;&amp;nbsp;alter table randomdata engine=ndbcluster;&lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Finally do:&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;ANALYZE TABLE &lt;tablename&gt;;&lt;/tablename&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;on all tables to build index statistics (MySQL Cluster 7.2 will love you for this and you will hate MySQL Cluster 7.2 if you don't).&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;However, if you do too many in parallel you will most likely run into problems like:&lt;/div&gt;&lt;div class="p1"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Redolog files are overloaded &amp;nbsp;(you have too small redo log and too slow disks to handle the write load generated by the ALTER)&lt;/li&gt;&lt;li&gt;Out of Redo buffer&amp;nbsp;(you have too slow disks to handle the write load generated by the ALTER) - &amp;nbsp;it will probably not matter if you increase the RedoBuffer as your disk subsystem it too slow and cannot "consume" what you "produce".&lt;/li&gt;&lt;li&gt;Out of operation records &amp;nbsp; ( increase&amp;nbsp;MaxNoOfConcurrentOperations or&amp;nbsp;MaxNoOfLocalOperations), at &lt;a href="http://www.severalnines.com/cluster-configurator/" target="_blank"&gt;Severalnines&lt;/a&gt; we set this to 100000 by default, you can of course increase this but it costs memory. If you increase it you should change:&lt;br /&gt;MaxNoOfConcurrentOperations, then&amp;nbsp;MaxNoOfLocalOperations will automatically be set to 1.1 x the value of&amp;nbsp;MaxNoOfConcurrentOperations. With&amp;nbsp;MaxNoOfConcurrentOperations=100000 it will take 100MB of RAM on each data node.&amp;nbsp;MaxNoOfConcurrentOperations=200000 will take 200MB of RAM on each data node.&lt;/li&gt;&lt;/ul&gt;&lt;div class="p2"&gt;If you have a CSV file you can do the same: Load the data first into MYISAM/INNODB tables and then ALTER.&amp;nbsp;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Why first load it into MYISAM/INNODB?&lt;/div&gt;&lt;div class="p1"&gt;Well, i think it makes it easier and gives better control. If you have a 30GB dump file and many tables you want to load, then it is easier to track errors and to make use of the&amp;nbsp;ndb_batch_size parameter to make it actually load without errors, i.e, you will save time, even though you will use some extra time to first load in the data into MYISAM/INNODB:&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Example run of&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;./pt-duplicate-key-checker:&lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;./pt-duplicate-key-checker &amp;nbsp;--host=ubuntu02 --user=cmon --password=xxxxxxx --databases=test2 --tables=t1&lt;br /&gt;# ##################################################################&lt;br /&gt;# test2.t1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;#&amp;nbsp;##################################################################&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# a is a duplicate of PRIMARY&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# Key definitions:&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# &amp;nbsp; KEY `a` (`a`)&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# &amp;nbsp; PRIMARY KEY (`a`),&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# Column types:&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;#&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&amp;nbsp;`a` int(11) not null&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# To remove this duplicate index, execute:&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;b&gt;ALTER TABLE `test2`.`t1` DROP INDEX `a`;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# ##################################################################&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# Summary of indexes &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# ##################################################################&lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# Size Duplicate Indexes &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# Total Duplicate Indexes &amp;nbsp;1&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# Total Indexes &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://johanandersson.blogspot.com/2012/04/mysql-cluster-how-to-load-it-with-data.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-6839405884883339620</guid><pubDate>Thu, 23 Feb 2012 16:19:00 +0000</pubDate><atom:updated>2012-02-23T16:31:00.552Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>MySQL</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Cluster</category><category domain='http://www.blogger.com/atom/ns#'>nosql</category><category domain='http://www.blogger.com/atom/ns#'>Oracle</category><category domain='http://www.blogger.com/atom/ns#'>Amazon EC2</category><category domain='http://www.blogger.com/atom/ns#'>InnoDB</category><title>Deploy MySQL Cluster 7.2 GA in 288 seconds</title><description>&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;" id="internal-source-marker_0.17810751446460316"&gt;It seems that our friends at Oracle have been pretty busy with the GA release of MySQL Cluster 7.2.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;This is not just old wine in new bottles.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;While it may be a dot release, it does appear to be a more significant step forward than a dot release would imply.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;First off, we are very excited to announce that the &lt;a href="http://www.severalnines.com/cluster-configurator/"&gt;Severalnines Cluster Configurator&lt;/a&gt; &lt;/span&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;now includes support for 7.2 GA. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;As  the title of this blog suggests, it is possible, as we have  experienced, to deploy 7.2 GA in 288 seconds, i.e. just a few minutes.  This was done on m1.large instances on Amazon. We have published a quick  how-to deployment guide for Amazon here: &lt;/span&gt;&lt;a href="http://support.severalnines.com/entries/20916823-installing-on-amazon-ec2"&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#1155cc;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;"&gt;http://support.severalnines.com/entries/20916823-installing-on-amazon-ec2&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;.  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;This being said, let’s have a look at some of the new features in 7.2 and why they matter.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;MySQL  Cluster has always suffered from poor JOIN performance, mainly because  the nested loop algorithm did not work very well in a parallel  environment. That meant the join was executed entirely in the MySQL  Server. This resulted in a lot of network round-trips between the MySQL  Server and the data nodes.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;br /&gt;Now  with 7.2, this has changed. With Adaptive Query Localization, a JOIN  query is now shipped down to the data nodes and executed in parallel on  local copies of data.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;Results look very promising, with up to 70x factor improvement on some queries as described in this &lt;a href="http://www.clusterdb.com/mysql-cluster/70x-faster-joins-with-aql-in-mysql-cluster-7-2/"&gt;excellent post&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;By  getting better index statistics, the SQL optimizer can also build a  better execution plan for each query. This in turn reduces the need for  manual query tuning. Prior to 7.2,  a lot of index hinting was needed.  However, 70x speed improvement does not mean that a single query on  MySQL Cluster will perform as fast as on InnoDB, since there will always  be the network latency between SQL and Data nodes. But it does mean  that many queries that were running very slowly in 7.1 might now run &lt;/span&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;fast enough&lt;/span&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;The  Memcached API is a new addition to an already extensive list of API  connectors, aimed at existing Memcached users and the NoSQL community.  For a product trying to be attractive to the NoSQL community, perhaps  the addition of distributed parallel JOIN algorithms may be a bit  confusing. NoSQL programmers typically avoid JOIN operations, for  reasons including scalability and schema flexibility. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;Is someone trying to have their cake and eat it too? :-)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;Among the other features &lt;a href="http://www.mysql.com/why-mysql/white-papers/mysql-cluster-7.2-ga.html"&gt;described here&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;,  the separation of Data Nodes across data centers (and specially Figure  3) is misleading. With a 2-phase commit protocol to guarantee  synchronous replication within a Node Group, NDB would have to defy the  laws of physics to support the below diagram. Unless the data centers  are physically close to each other with a low-latency redundant link  in-between them, splitting of data nodes across data centers is not a  good idea.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;It  is also worth noting that 7.2 GA is based on MySQL 5.5, whereas 7.1 was  based on MySQL 5.1 – probably more relevant for users with mixed NDB  and InnoDB tables.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;So: is MySQL Cluster 7.2 for you?  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;If yes, then try it out using the Severalnines Cluster Configurator: &lt;/span&gt;&lt;a href="http://www.severalnines.com/cluster-configurator/"&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#1155cc;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;"&gt;http://www.severalnines.com/cluster-configurator/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;). &lt;/span&gt;&lt;div&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:15px;font-family:Calibri;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"&gt;It will take just a few minutes to generate a deployment package, which  automates the installation of the cluster. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Calibri; font-size: 15px; "&gt;Or it might take 288  seconds ... let us know ;-)&lt;/span&gt;&lt;/div&gt;</description><link>http://johanandersson.blogspot.com/2012/02/deploy-mysql-cluster-72-ga-in-288.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>9</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-2953728638213424867</guid><pubDate>Thu, 15 Dec 2011 14:55:00 +0000</pubDate><atom:updated>2011-12-15T15:18:22.531Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>MySQL</category><category domain='http://www.blogger.com/atom/ns#'>cloud database</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Replication</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Cluster</category><category domain='http://www.blogger.com/atom/ns#'>cloud computing</category><title>Walking on Cloud 9</title><description>&lt;style&gt; &lt;!--  /* Font Definitions */ @font-face  {font-family:Arial;  panose-1:2 11 6 4 2 2 2 2 2 4;  mso-font-charset:0;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 0 0 0 1 0;} @font-face  {font-family:SimSun;  mso-font-alt:宋体;  mso-font-charset:128;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:0 0 0 0 0 0;} @font-face  {font-family:"Lucida Sans";  panose-1:2 11 6 2 3 5 4 2 2 4;  mso-font-charset:0;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 0 0 0 1 0;}  /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0cm;  margin-bottom:.0001pt;  mso-pagination:none;  mso-hyphenate:none;  font-size:12.0pt;  font-family:"Lucida Sans";  mso-ascii-font-family:"Times New Roman";  mso-fareast-font-family:SimSun;  mso-hansi-font-family:"Times New Roman";  mso-bidi-font-family:"Lucida Sans";  mso-font-kerning:.5pt;  mso-ansi-language:EN-GB;  mso-fareast-language:HI;} p.MsoBodyText, li.MsoBodyText, div.MsoBodyText  {mso-style-noshow:yes;  mso-style-link:"Body Text Char";  margin-top:0cm;  margin-right:0cm;  margin-bottom:6.0pt;  margin-left:0cm;  mso-pagination:none;  mso-hyphenate:none;  font-size:12.0pt;  font-family:"Lucida Sans";  mso-ascii-font-family:"Times New Roman";  mso-fareast-font-family:SimSun;  mso-hansi-font-family:"Times New Roman";  mso-bidi-font-family:"Lucida Sans";  mso-font-kerning:.5pt;  mso-ansi-language:EN-GB;  mso-fareast-language:HI;} a:link, span.MsoHyperlink  {mso-style-noshow:yes;  color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {mso-style-noshow:yes;  color:purple;  text-decoration:underline;  text-underline:single;} span.BodyTextChar  {mso-style-name:"Body Text Char";  mso-style-noshow:yes;  mso-style-locked:yes;  mso-style-link:"Body Text";  mso-ansi-font-size:12.0pt;  mso-bidi-font-size:12.0pt;  font-family:SimSun;  mso-fareast-font-family:SimSun;  mso-bidi-font-family:"Lucida Sans";  mso-font-kerning:.5pt;  mso-ansi-language:EN-GB;  mso-fareast-language:HI;} @page Section1  {size:612.0pt 792.0pt;  margin:72.0pt 90.0pt 72.0pt 90.0pt;  mso-header-margin:36.0pt;  mso-footer-margin:36.0pt;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;     &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;As the saying goes, we at &lt;a href="http://severalnines.com/"&gt;&lt;u&gt;Severalnines&lt;/u&gt;&lt;/a&gt; have been walking on several clouds this year, 9 to be precise! &lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Today, we are proud to say that we are on walking on Cloud 9!&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;And in the spirit of celebration, we would like to announce our:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Top 9 Clouds of the Year 2011 for &lt;a href="http://severalnines.com/"&gt;&lt;u&gt;Severalnines&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Cloud 1 – releasing &lt;a href="http://severalnines.com/products-services"&gt;&lt;u&gt;ClusterControl™&lt;/u&gt;&lt;/a&gt; - our first commercial product in April! &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://severalnines.com/products-services"&gt;&lt;u&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;ClusterControl™&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; is our flagship product. It enables developers and database administrators to Deploy, Manage, Monitor and Scale their clustered database platforms, free from the complexity and learning curves associated with database clusters. &lt;a href="http://severalnines.com/products-services"&gt;&lt;u&gt;Read more ...&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Cloud 2 – releasing ClusterControl™ for MySQL Replication&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Designed to address issues and needs of MySQL users relying on MySQL Replication, &lt;/span&gt;&lt;a href="http://www.severalnines.com/cluster-control-mysql-replication"&gt;&lt;u&gt;&lt;span style="font-family:Arial;"&gt;ClusterControl™ for MySQL Replication&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; offers a complete set of tools to assist developers and administrators of all skill levels to deploy, manage, monitor and scale their replicated MySQL databases. &lt;a href="http://www.severalnines.com/cluster-control-mysql-replication"&gt;&lt;u&gt;Read more ...&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Cloud 3 - releasing ClusterControl™ for MySQL Galera together with Codership&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;&lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera"&gt;&lt;u&gt;&lt;span style="font-family:Arial;"&gt;ClusterControl™ for MySQL Galera&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; enables customers to Deploy, Manage, Monitor and Scale a clustered MySQL database platform based on Galera Replication. &lt;/span&gt;&lt;span style="font-family:Arial;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;mso-bidi-mso-font-kerning: 0pt;mso-ansi-language:EN-US;mso-fareast-language:EN-USfont-family:Arial;color:#262626;"  &gt;MySQL Galera is a synchronous multi-master cluster for MySQL/InnoDB, and allows applications to read and write from any MySQL Server.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Developers and DBAs now have access to all of the features of Severalnines' flagship product ClusterControl™ specifically adapted to MySQL Galera. &lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera"&gt;&lt;u&gt;Read more ...&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Cloud 4 – reaching over 7,000 installations via the Severalnines &lt;a href="http://www.severalnines.com/resources/configurator"&gt;&lt;u&gt;Configurator&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;The &lt;u&gt;&lt;a href="http://www.severalnines.com/resources/configurator"&gt;Severalnines Configurator&lt;/a&gt; &lt;/u&gt;allows you to generate a production class configuration for a clustered MySQL configuration. It also generates a deployment package that automates the deployment of the complete database setup. Topologies can be based on MySQL Replication, MySQL Cluster or MySQL Galera.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;We have a great user base and in order to facilitate communication within our user community, we set up our &lt;a href="http://support.severalnines.com/home"&gt;&lt;u&gt;Severalnines Customer Services&lt;/u&gt;&lt;/a&gt; platform with forums, online support, etc. both for paying customers as well as users. &lt;a href="http://support.severalnines.com/home"&gt;&lt;u&gt;Check it out&lt;/u&gt;&lt;/a&gt; and join the conversation!&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Cloud 5&lt;/span&gt;&lt;/b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; – our Customers&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;At Severalnines, our goal is to reduce database costs, ease deployment, simplify management and increase DBA and developer productivity. &lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;But rather than us telling you why we think we are great, we wanted to provide documented case studies on how our innovative products are helping customers meet and exceed business goals for their database operations. &lt;a href="http://www.severalnines.com/references"&gt;&lt;u&gt;See what our customers have to say about us.&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Cloud 6&lt;/span&gt;&lt;/b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; – introducing Severalnines DataCloud™&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.severalnines.com/DataCloud"&gt;&lt;u&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.severalnines.com/DataCloud"&gt;&lt;u&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Severalnines DataCloud™&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;a href="http://www.severalnines.com/DataCloud"&gt; &lt;/a&gt;enables DBaaS for public, private and hybrid clouds. It extends the advantages of cloud computing to the database infrastructure layer by enabling on-demand access, automated management, managed availability and elasticity of MySQL databases. This reduces cost and the complexities of deploying and managing databases. &lt;a href="http://www.severalnines.com/DataCloud"&gt;&lt;u&gt;Read more ...&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Cloud 7&lt;/span&gt;&lt;/b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; – launching the first ever 100% European DbaaS with City Network&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;On November 23&lt;sup&gt;rd&lt;/sup&gt;, Severalnines and our partner City Network &lt;a href="http://www.severalnines.com/news"&gt;announced the first fully European Database as a Service (DBaaS) solution&lt;/a&gt; - in beta form. The City Cloud Database Service is based and operated in the European Union - offering European customers full compliance with EU Directive on Data Protection 95/46/EC and a safe haven from the reaches of the US Patriot Act and making it the first ever offering of its kind. &lt;a href="http://www.severalnines.com/news"&gt;&lt;u&gt;Read more ...&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Cloud 8&lt;/span&gt;&lt;/b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; – being talked about at the European Commission – Severalnines in the News&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Following our &lt;a href="http://www.severalnines.com/news"&gt;&lt;u&gt;announcement of the City Cloud Database Service&lt;/u&gt;&lt;/a&gt;, the press took over and &lt;a href="http://www.severalnines.com/news"&gt;&lt;u&gt;20+ original articles&lt;/u&gt;&lt;/a&gt; later, we discovered that we were even being talked about at European Commission conferences. Which shows to prove that politicians do read the papers (or are well briefed by colleagues who do) and that we had hit the right spot with our announcement. &lt;a href="http://www.severalnines.com/news"&gt;&lt;u&gt;Find out more&lt;/u&gt;&lt;/a&gt; and see all the press coverage in our &lt;a href="http://www.severalnines.com/news"&gt;&lt;u&gt;News Center.&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Cloud 9&lt;/span&gt;&lt;/b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; – winning the EuroCloud Sweden &amp;amp; Europe Awards 2011 for Best Startup!!!&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;We did it! After winning the EuroCloud Award for Sweden, we won the EuroCloud Europe Award for Best Startup last week in Paris at a prestigious ceremony on the Seine. We attended the ceremony together with our friends from City Network and needless to say that we had a great night! The Awards have been widely covered by the European press in multiple languages – &lt;a href="http://www.severalnines.com/news"&gt;&lt;u&gt;visit our News Center for all the details.&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;All in all, it's been a great year for us and we have all of you to thank for that!&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;So here is a BIG 'thank you' from everyone at Severalnines to all our customers, partners, friends and supporters out there. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Have a great year-end and and an even better start to the year 2012 - see you there!&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin-bottom: 0.0001pt;"&gt;&lt;span style="  ;font-family:Arial;font-size:11pt;color:black;"   lang="EN-GB" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0cm;margin-bottom:.0001pt"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;color:black;"   lang="EN-GB" &gt;Please do reach out to us with your feedback on &lt;/span&gt;&lt;a href="http://www.facebook.com/pages/Severalnines/104774439598301"&gt;&lt;u&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;Facebook&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;/span&gt;&lt;span style="font-size: 11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="color:black;"&gt;, &lt;/span&gt;&lt;a href="http://www.linkedin.com/company/severalnines"&gt;&lt;u&gt;LinkedIn&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;, &lt;a href="https://www.xing.com/companies/severalnines"&gt;&lt;u&gt;XING&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;/span&gt;&lt;span style="font-size: 11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;color:black;"   lang="EN-GB" &gt;or directly via these &lt;/span&gt;&lt;span style="font-size:11.0pt;mso-bidi- font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;a href="http://www.severalnines.com/contact-us"&gt;contact details&lt;/a&gt; &lt;/span&gt;&lt;span   lang="EN-GB" style="font-family:Arial;color:black;"&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;color:black;"   lang="EN-GB" &gt;for fruitful and interactive discussions on this latest release. For 'instant' communication, feel free to follow us on &lt;/span&gt;&lt;a href="http://twitter.com/#%21/severalnines"&gt;&lt;u&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;Twitter&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt; &lt;/span&gt;&lt;span style="font-size: 11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;/span&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="color:black;"&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom:0cm;margin-bottom:.0001pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-size:11.0pt;mso-bidi- font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;About Severalnines&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;a href="http://www.severalnines.com/"&gt;&lt;u&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;Severalnines&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span lang="EN-GB"&gt; &lt;/span&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;provides automation and management software for easily usable, highly available and auto-scalable cloud database platforms. &lt;a href="http://www.severalnines.com/products-services"&gt;&lt;u&gt;ClusterControl™&lt;/u&gt;&lt;/a&gt;, the company’s flagship product, used by developers and administrators of all skill levels, addresses the full deploy-manage-monitor-scale cycle. Severalnines has enabled over 7,000 deployments to date via its popular online &lt;a href="http://www.severalnines.com/resources/configurator"&gt;&lt;u&gt;configurator&lt;/u&gt;&lt;/a&gt; for clustered MySQL databases.&lt;/span&gt;  &lt;p style="margin-bottom:0cm;margin-bottom:.0001pt"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Arial;font-size:12.0pt;"  lang="EN-GB" &gt;To see who is using Severalnines today, please visit our &lt;a href="http://www.severalnines.com/references"&gt;&lt;u&gt;references page&lt;/u&gt;&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;</description><link>http://johanandersson.blogspot.com/2011/12/walking-on-cloud-9.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-2154922934484584014</guid><pubDate>Wed, 23 Nov 2011 09:48:00 +0000</pubDate><atom:updated>2011-11-23T09:53:20.021Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Patriot Act</category><category domain='http://www.blogger.com/atom/ns#'>MySQL</category><category domain='http://www.blogger.com/atom/ns#'>cloud services</category><category domain='http://www.blogger.com/atom/ns#'>clustered databases</category><category domain='http://www.blogger.com/atom/ns#'>cloud computing</category><title>New Euro Partnership offers safe-haven from US Patriot Act</title><description>&lt;style&gt; &lt;!--  /* Font Definitions */ @font-face  {font-family:Arial;  panose-1:2 11 6 4 2 2 2 2 2 4;  mso-font-charset:0;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 0 0 0 1 0;} @font-face  {font-family:Calibri;  panose-1:0 0 0 0 0 0 0 0 0 0;  mso-font-alt:Arial;  mso-font-charset:77;  mso-generic-font-family:roman;  mso-font-format:other;  mso-font-pitch:auto;  mso-font-signature:3 0 0 0 1 0;}  /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin-top:0cm;  margin-right:0cm;  margin-bottom:0cm;  margin-left:41.75pt;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:Arial;  mso-fareast-font-family:Arial;  mso-bidi-font-family:Arial;  color:black;  mso-ansi-language:EN-GB;  mso-fareast-language:EN-GB;} a:link, span.MsoHyperlink  {mso-style-parent:"";  color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {mso-style-noshow:yes;  color:purple;  text-decoration:underline;  text-underline:single;} @page Section1  {size:612.0pt 792.0pt;  margin:72.0pt 90.0pt 72.0pt 90.0pt;  mso-header-margin:36.0pt;  mso-footer-margin:36.0pt;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;     &lt;p class="MsoNormal" style="margin-top:0cm;margin-right:24.0pt; margin-bottom:14.0pt;margin-left:0cm;text-align:center;line-height:141%; tab-stops:210.0pt 354.75pt" align="center"&gt;&lt;b&gt;&lt;span style="font-size:18.0pt; line-height:141%;font-family:Calibri;mso-fareast-font-family:Calibri; mso-bidi-font-family:Calibri" lang="EN-GB"&gt;New Euro Partnership offers safe-haven from US Patriot Act&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;i&gt;&lt;span style="font-size:14.0pt;line-height:141%; font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;Severalnines and City Network launch first fully European ‘Database as a Service’&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:356.25pt"&gt;&lt;b&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family: Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;STOCKHOLM and LONDON, 23&lt;sup&gt;rd&lt;/sup&gt; November&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size:11.0pt" lang="EN-GB"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family: Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;&lt;a href="http://www.severalnines.com/"&gt;-Severalnines&lt;/a&gt;, provider of automation and management software for cloud database platforms, and &lt;a href="http://www.citynetwork.se/"&gt;City Network&lt;/a&gt;, the ‘data center in a browser’ company have announced the first fully European Database as a Service (DBaaS) solution - in beta form. The City Cloud Database Service is based and operated by companies in the European Union - offering European customers full compliance with EU Directive on Data Protection 95/46/EC and a safe haven from the reaches of the US Patriot Act.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;EU customers can now benefit from the savings and flexibility enabled by cloud-based database services safe in the knowledge that they will not fall under the jurisdiction of the Patriot Act.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Under the Patriot Act, data from EU users of US-owned cloud-based services can currently be shared with US law enforcement agencies without the need to tell the user. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;“Small start-ups and large corporations are turning to the cloud in a bid to deploy and manage databases with as little overhead as possible - but they need to know their data is secure and that they retain the right and ability to control who accesses it,” says Vinay Joosery, chief executive officer at Severalnines.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;“A fully managed database service will enable our customers to further reap the benefits of the cloud,” says Johan Christenson, Chairman at City Network. “We believe that a service owned and operated locally in the EU, and fully compliant with EU data protection laws, will be very particularly attractive for European companies. US companies with European operations will also benefit from the lower latency of a locally hosted solution.”&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;The MySQL based City Cloud Database Service enables companies to outsource the configuration and management of their databases and only pay for what they use.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Specific benefits include:&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;line-height: 115%"&gt;&lt;span style="font-size:11.0pt;line-height:115%;font-family: Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;•&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;span style="mso-tab-count:1"&gt;            &lt;/span&gt;Web interface for easy provisioning&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;line-height: 115%"&gt;&lt;span style="font-size:11.0pt;line-height:115%;font-family: Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;•&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;span style="mso-tab-count:1"&gt;            &lt;/span&gt;Zero maintenance or administration – backups, patch management and replication handling are fully automated&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;line-height: 115%"&gt;&lt;span style="font-size:11.0pt;line-height:115%;font-family: Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;•&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;span style="mso-tab-count:1"&gt;            &lt;/span&gt;Performance Management – users have visibility of top queries and can drill-down into performance&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;line-height: 115%"&gt;&lt;span style="font-size:11.0pt;line-height:115%;font-family: Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;•&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;span style="mso-tab-count:1"&gt;            &lt;/span&gt;High Availability – failures are handled automatically to minimise downtime&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;line-height: 115%"&gt;&lt;span style="font-size:11.0pt;line-height:115%;font-family: Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;•&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;span style="mso-tab-count:1"&gt;            &lt;/span&gt;Scalability – users can add more instances at the click of a mouse&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;line-height: 115%"&gt;&lt;span style="font-size:11.0pt;line-height:115%;font-family: Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;•&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;span style="mso-tab-count:1"&gt;            &lt;/span&gt;Comprehensive user interface for administering databases; and&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;line-height: 115%"&gt;&lt;span style="font-size:11.0pt;line-height:115%;font-family: Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;•&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;span style="mso-tab-count:1"&gt;            &lt;/span&gt;Data import and export functionality to help move MySQL databases within the cloud.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;line-height:115%"&gt;&lt;span style="font-size:11.0pt;line-height:115%;font-family:Calibri;mso-fareast-font-family: Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;The service relies on the Severalnines DataCloud platform, a database automation and management platform that helps companies run flexible databases anywhere, whether on their premises or in the cloud. It is based on City Network’s City Cloud computing platform which allows unlimited growth with a focus on stability, security and redundancy.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;City Cloud Database Service is available in beta. Companies can apply for the trial by emailing dbaas@citycloud.eu. The service is available free of charge for the duration of the beta period, which will run until early 2012. More information is available on &lt;a href="http://www.citycloud.eu/"&gt;http://www.citycloud.eu/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm"&gt;&lt;span style="font-size: 11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri;mso-bidi-font-family: Calibri" lang="EN-GB"&gt;[ENDS]&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;b&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family: Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;b&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family: Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;About Severalnines&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri; mso-bidi-font-family:Calibri" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri; mso-bidi-font-family:Calibri" lang="EN-GB"&gt;Severalnines provides automation and management software for easily usable, highly available and auto-scalable cloud database platforms. ClusterControl™, the company’s flagship product, used by developers and administrators of all skill levels, addresses the full deploy-manage-monitor-scale cycle. Severalnines has enabled over 7,000 deployments to date via its popular online configurator for clustered MySQL® databases.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri; mso-bidi-font-family:Calibri" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri; mso-bidi-font-family:Calibri" lang="EN-GB"&gt;With everyone at Severalnines coming from an Open Source background and with a view to supporting other start-up organisation, the company is introducing a start-up program, whereby organisations with less than 10 employees and less than one million Euro in funding will be given free access to its enterprise software for 12 months. For information, just email startup@severalnines.com.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri; mso-bidi-font-family:Calibri" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri; mso-bidi-font-family:Calibri" lang="EN-GB"&gt;To see who is using Severalnines today, please visit our references page: http://severalnines.com/references&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri; mso-bidi-font-family:Calibri" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;b&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family: Calibri;mso-bidi-font-family:Calibri" lang="EN-GB"&gt;About City Network&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri; mso-bidi-font-family:Calibri" lang="EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:0cm;tab-stops:51.75pt"&gt;&lt;span style="font-size:11.0pt;font-family:Calibri;mso-fareast-font-family:Calibri; mso-bidi-font-family:Calibri" lang="EN-GB"&gt;With more than 10,000 customers across Europe City Network is one of the leading European hosting companies. Core services include cloud hosting, dedicated environments as well as shared hosting and domain services. City Network also provides high end backup services via www.onlinebackup.io. City Cloud is the cloud computing brand which you can read more about at www.citycloud.eu. You can find more information about City Network at: www.citynetworkhosting.com &lt;/span&gt;&lt;/p&gt;</description><link>http://johanandersson.blogspot.com/2011/11/new-euro-partnership-offers-safe-haven.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>3</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-1297493062104620642</guid><pubDate>Tue, 25 Oct 2011 09:42:00 +0000</pubDate><atom:updated>2011-10-25T11:08:05.457+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>MySQL</category><category domain='http://www.blogger.com/atom/ns#'>galera</category><category domain='http://www.blogger.com/atom/ns#'>high-availability</category><category domain='http://www.blogger.com/atom/ns#'>synchronous replication</category><title>Severalnines releases ClusterControl™ for MySQL Galera in cooperation with Codership</title><description>&lt;style&gt; &lt;!--  /* Font Definitions */ @font-face  {font-family:"Courier New";  panose-1:2 7 3 9 2 2 5 2 4 4;  mso-font-charset:0;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 0 0 0 1 0;} @font-face  {font-family:Times;  panose-1:2 0 5 0 0 0 0 0 0 0;  mso-font-charset:0;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 0 0 0 1 0;} @font-face  {font-family:Wingdings;  panose-1:5 2 1 2 1 8 4 8 7 8;  mso-font-charset:2;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:0 0 65536 0 -2147483648 0;} @font-face  {font-family:Calibri;  panose-1:0 0 0 0 0 0 0 0 0 0;  mso-font-charset:77;  mso-generic-font-family:roman;  mso-font-format:other;  mso-font-pitch:auto;  mso-font-signature:3 0 0 0 1 0;} @font-face  {font-family:Cambria;  panose-1:0 0 0 0 0 0 0 0 0 0;  mso-font-charset:77;  mso-generic-font-family:roman;  mso-font-format:other;  mso-font-pitch:auto;  mso-font-signature:3 0 0 0 1 0;} @font-face  {font-family:Tahoma;  panose-1:2 11 6 4 3 5 4 4 2 4;  mso-font-charset:0;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 0 0 0 1 0;} @font-face  {font-family:TrebuchetMS;  mso-font-alt:"Trebuchet MS";  mso-font-charset:128;  mso-generic-font-family:swiss;  mso-font-pitch:auto;  mso-font-signature:0 0 0 0 0 0;} @font-face  {font-family:SimSun;  mso-font-alt:宋体;  mso-font-charset:128;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:0 0 0 0 0 0;} @font-face  {font-family:"Lucida Sans";  panose-1:2 11 6 2 3 5 4 2 2 4;  mso-font-charset:0;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 0 0 0 1 0;}  /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0cm;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  mso-hyphenate:none;  font-size:12.0pt;  font-family:"Lucida Sans";  mso-ascii-font-family:"Times New Roman";  mso-fareast-font-family:SimSun;  mso-hansi-font-family:"Times New Roman";  mso-bidi-font-family:"Lucida Sans";  mso-font-kerning:.5pt;  mso-ansi-language:EN-GB;  mso-fareast-language:HI;} h1  {mso-style-link:"Heading 1 Char";  mso-style-next:Normal;  margin-top:12.0pt;  margin-right:0cm;  margin-bottom:3.0pt;  margin-left:0cm;  mso-pagination:none;  page-break-after:avoid;  mso-outline-level:1;  mso-hyphenate:none;  font-size:16.0pt;  font-family:"Times New Roman";  mso-ascii-font-family:Calibri;  mso-fareast-font-family:"Times New Roman";  mso-hansi-font-family:Calibri;  mso-font-kerning:16.0pt;  mso-ansi-language:EN-GB;  mso-fareast-language:HI;  font-weight:bold;} h4  {mso-style-noshow:yes;  mso-style-link:"Heading 4 Char";  mso-style-next:Normal;  margin-top:12.0pt;  margin-right:0cm;  margin-bottom:3.0pt;  margin-left:0cm;  mso-pagination:widow-orphan;  page-break-after:avoid;  mso-outline-level:4;  mso-hyphenate:none;  font-size:14.0pt;  font-family:"Times New Roman";  mso-ascii-font-family:Cambria;  mso-fareast-font-family:"Times New Roman";  mso-hansi-font-family:Cambria;  mso-font-kerning:.5pt;  mso-ansi-language:EN-GB;  mso-fareast-language:HI;  font-weight:bold;} p.MsoBodyText, li.MsoBodyText, div.MsoBodyText  {mso-style-noshow:yes;  mso-style-link:"Body Text Char";  margin-top:0cm;  margin-right:0cm;  margin-bottom:6.0pt;  margin-left:0cm;  mso-pagination:widow-orphan;  mso-hyphenate:none;  font-size:12.0pt;  font-family:"Lucida Sans";  mso-ascii-font-family:"Times New Roman";  mso-fareast-font-family:SimSun;  mso-hansi-font-family:"Times New Roman";  mso-bidi-font-family:"Lucida Sans";  mso-font-kerning:.5pt;  mso-ansi-language:EN-GB;  mso-fareast-language:HI;} a:link, span.MsoHyperlink  {mso-style-noshow:yes;  color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {mso-style-noshow:yes;  color:purple;  text-decoration:underline;  text-underline:single;} strong  {mso-bidi-font-weight:bold;} p  {margin:0cm;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  mso-hyphenate:none;  font-size:10.0pt;  font-family:"Times New Roman";  mso-ascii-font-family:Times;  mso-fareast-font-family:SimSun;  mso-hansi-font-family:Times;  mso-bidi-font-family:"Times New Roman";  mso-font-kerning:.5pt;  mso-ansi-language:EN-GB;  mso-fareast-language:HI;} span.Heading1Char  {mso-style-name:"Heading 1 Char";  mso-style-locked:yes;  mso-style-link:"Heading 1";  mso-ansi-font-size:16.0pt;  mso-bidi-font-size:16.0pt;  font-family:Calibri;  mso-ascii-font-family:Calibri;  mso-hansi-font-family:Calibri;  mso-font-kerning:16.0pt;  mso-ansi-language:EN-GB;  mso-fareast-language:HI;  font-weight:bold;} span.Heading4Char  {mso-style-name:"Heading 4 Char";  mso-style-noshow:yes;  mso-style-locked:yes;  mso-style-link:"Heading 4";  mso-ansi-font-size:14.0pt;  mso-bidi-font-size:14.0pt;  font-family:Cambria;  mso-ascii-font-family:Cambria;  mso-hansi-font-family:Cambria;  mso-font-kerning:.5pt;  mso-ansi-language:EN-GB;  mso-fareast-language:HI;  font-weight:bold;} span.BodyTextChar  {mso-style-name:"Body Text Char";  mso-style-noshow:yes;  mso-style-locked:yes;  mso-style-link:"Body Text";  mso-ansi-font-size:12.0pt;  mso-bidi-font-size:12.0pt;  font-family:SimSun;  mso-fareast-font-family:SimSun;  mso-bidi-font-family:"Lucida Sans";  mso-font-kerning:.5pt;  mso-ansi-language:EN-GB;  mso-fareast-language:HI;} @page Section1  {size:612.0pt 792.0pt;  margin:72.0pt 90.0pt 72.0pt 90.0pt;  mso-header-margin:36.0pt;  mso-footer-margin:36.0pt;  mso-paper-source:0;} div.Section1  {page:Section1;}  /* List Definitions */ @list l0  {mso-list-id:402682693;  mso-list-type:hybrid;  mso-list-template-ids:1257259072 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:none;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:Symbol;} @list l1  {mso-list-id:874005134;  mso-list-type:hybrid;  mso-list-template-ids:-1660662300 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l1:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:none;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:Symbol;} @list l1:level2  {mso-level-number-format:bullet;  mso-level-text:o;  mso-level-tab-stop:none;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:"Courier New";} @list l2  {mso-list-id:1599678830;  mso-list-type:hybrid;  mso-list-template-ids:1568694894 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l2:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:none;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:Symbol;} @list l3  {mso-list-id:1651206021;  mso-list-type:hybrid;  mso-list-template-ids:1257796698 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l3:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:none;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:Symbol;} @list l3:level2  {mso-level-number-format:bullet;  mso-level-text:o;  mso-level-tab-stop:none;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:"Courier New";} ol  {margin-bottom:0cm;} ul  {margin-bottom:0cm;} --&gt; &lt;/style&gt;     &lt;p style="margin-top: 0.1pt;"&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;Stockholm – October 25&lt;sup&gt;th&lt;/sup&gt; 2011&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;&lt;a href="http://www.severalnines.com/"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;u&gt;Severalnines&lt;/u&gt;&lt;/b&gt;&lt;/a&gt;, provider of automation and management software for easily usable, highly available and auto-scalable cloud database platforms, today announces the release of &lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;u&gt;ClusterControl™ for MySQL Galera&lt;/u&gt;&lt;/b&gt;&lt;/a&gt; &lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera"&gt;&lt;span style="text-decoration:none;text-underline:nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;in cooperation with &lt;b style="mso-bidi-font-weight:normal"&gt;Codership&lt;/b&gt;, the replication experts organisation that leverages &lt;/span&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;the latest developments in computer science to produce &lt;em&gt;&lt;span style="font-family:Times;"&gt;fast and scalable synchronous replication solutions that "just work"&lt;/span&gt;&lt;/em&gt; for databases and similar applications.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top:.1pt"&gt;&lt;br /&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;&lt;/span&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt"&gt;&lt;b&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;Introducing ClusterControl™ for MySQL Galera&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-top:.1pt"&gt;&lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera"&gt;&lt;u&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;ClusterControl™ for MySQL Galera&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt; &lt;/span&gt;&lt;span style="font-size:11.0pt;mso-bidi-mso-font-kerning:0pt; mso-ansi-language:EN-US;mso-fareast-language:EN-USfont-size:10.0pt;" &gt;enables customers to Deploy, Manage, Monitor and Scale a clustered MySQL database platform based on Galera Replication.&lt;/span&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-top:.1pt"&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;Developers and DBAs now have access to all of the features of Severalnines' flagship product ClusterControl™ specifically adapted to MySQL Galera.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;Designed to address issues and needs of MySQL users relying on MySQL Replication, &lt;u&gt;&lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera"&gt;ClusterControl™ for MySQL Galera&lt;/a&gt; &lt;/u&gt;offers a complete set of tools to assist developers and administrators of all skill levels to deploy, manage, monitor and scale their replicated MySQL databases.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;br /&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top:.1pt"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;What is MySQL Galera?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;MySQL Galera is a synchronous multi-master cluster for MySQL/InnoDB or, in similar words, a synchronous multi-master replication plug-in for InnoDB. It is very different from the regular MySQL Replication and addresses a number of issues including write conflicts when writing on multiple masters, replication lag and slaves being out of sync with the master. Users do not have to know which server they can write to (the master) and which servers they can read from (the slaves). With MySQL Galera you can simply write and read from any MySQL Server.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;br /&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top:.1pt"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;; mso-bidi-Times New Roman&amp;quot;;mso-font-kerning:0pt;mso-ansi-language: EN-US;mso-fareast-language:EN-USfont-family:&amp;quot;;font-size:10.0pt;"  &gt; &lt;/span&gt;  &lt;h4 style="margin: 0.1pt 0cm; color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:11.0pt;mso-bidi- font-family:Times;font-size:14.0pt;"  lang="EN-GB" &gt;Galera Cluster Use Cases&lt;/span&gt;&lt;/h4&gt;&lt;br /&gt;&lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:0cm"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Galera replication works for a wide variety of use cases for high availability and scalability where you tolerate no lost of transactions or no slave lag or you look for write/read scalability Here are some common use cases where Galera can be used.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:36.0pt; text-indent:-18.0pt;mso-list:l3 level1 lfo4"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Read Master&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:72.0pt; text-indent:-18.0pt;mso-list:l3 level2 lfo4"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-font-family:&amp;quot;Courier New&amp;quot;;mso-bidi-Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Traditional MySQL master-slave topology, but with Galera all "slave" nodes are capable masters at all times, it is just the application who treats them as slaves. Galera replication can guarantee 0 slave lag for such installations and due to parallel slave applying, much better throughput for the cluster.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:36.0pt; text-indent:-18.0pt;mso-list:l3 level1 lfo4"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Write Scalability&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:72.0pt; text-indent:-18.0pt;mso-list:l3 level2 lfo4"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-font-family:&amp;quot;Courier New&amp;quot;;mso-bidi-Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Distributing writes across the cluster will harness the CPU power in slave nodes for better use to process client write transactions. Due to the row based replication method, only changes made during a client transaction will be replicated and applying such a transaction in slave applier is much faster than the processing of the original transaction. Therefore the cluster can distribute the heavy client transaction processing across many master nodes and this yields in better write transaction throughput overall.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:36.0pt; text-indent:-18.0pt;mso-list:l3 level1 lfo4"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;WAN Clustering&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:72.0pt; text-indent:-18.0pt;mso-list:l3 level2 lfo4"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-font-family:&amp;quot;Courier New&amp;quot;;mso-bidi-Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Synchronous replication works fine over the WAN network. There will be a delay, which is proportional to the network round trip time (RTT), but it only affects the commit operation.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:36.0pt; text-indent:-18.0pt;mso-list:l3 level1 lfo4"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Disaster Recovery&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:72.0pt; text-indent:-18.0pt;mso-list:l3 level2 lfo4"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-font-family:&amp;quot;Courier New&amp;quot;;mso-bidi-Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Disaster recovery is a sub-class of WAN replication. Here one data center is passive and only receives replication events, but does not process any client transactions. Such a remote data center will be up to date at all times and no data loss can happen. During recovery, the spare site is just nominated as primary and application can continue as normal with a minimal fail over delay.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:36.0pt; text-indent:-18.0pt;mso-list:l3 level1 lfo4"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Latency Eraser&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p style="margin: 0.1pt 0cm 0.1pt 72pt; text-indent: -18pt;"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-font-family:&amp;quot;Courier New&amp;quot;;mso-bidi-Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;With WAN replication topology, cluster nodes can be located close to clients. Therefore all read &amp;amp; write operations will be super fast with the local node connection. The RTT related delay will be experienced only at commit time, and even then it can be generally accepted by end user, usually the kill-joy for end user experiences is the slow browsing response time, and read operations are as fast as they possibly can be.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt; margin-left:0cm;mso-para-margin-top:.01gd;mso-para-margin-right:0cm;mso-para-margin-bottom: .01gd;mso-para-margin-left:0cm;mso-hyphenate:auto"&gt;&lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;u&gt;&lt;span style="font-size:11.0pt;mso-bidi- font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;Features and benefits of MySQL Galera&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/a&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=" ;font-family:Times;font-size:11pt;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;Galera features&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo1"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;Active-active multimaster cluster&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo1"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;Synchronous replication for InnoDB&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo1"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;Read and write to any MySQL Server&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo1"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;Automatic failover and node joining&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo1"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;True Parallel replication&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo1"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;Direct client connections&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;Galera benefits&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo1"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;No slave lag or lost of data or out-of-sync situations. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:72.0pt;text-indent:-18.0pt;mso-list:l1 level2 lfo1"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-font-family:&amp;quot;Courier New&amp;quot;;mso-bidi-Courier New&amp;quot;font-family:&amp;quot;;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;All nodes are consistent.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo1"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;Scales writes and reads&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo1"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;Works synchronously over LAN/WAN/CLOUD&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:Times;font-size:11pt;"  lang="EN-GB" &gt;No changes to applications&lt;/span&gt;&lt;/p&gt;&lt;span style=" ;font-family:Times;font-size:11pt;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="margin-top:.1pt"&gt;&lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;u&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;View all of the features here &lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/a&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt"&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;b&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-top:.1pt"&gt;&lt;b&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;Deploying a Galera cluster with ClusterControl™&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;A Galera cluster can be configured using the &lt;u&gt;&lt;a href="http://www.severalnines.com/galera-configurator/"&gt;Severalnines Configurator&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top:.1pt"&gt;&lt;br /&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:13.0pt;" lang="EN-GB" &gt;&lt;/span&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Our &lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera-tutorial"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;u&gt;Online Tutorial&lt;/u&gt;&lt;/b&gt;&lt;/a&gt; &lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera-tutorial"&gt;&lt;span style="text-decoration:none;text-underline:nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;provides an in-depth view and understanding of Galera cluster, covering the following topics:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt; margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l2 level1 lfo3"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Introduction to Galera cluster&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt; margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l2 level1 lfo3"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Differences between MySQL Replication and Galera replication&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt; margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l2 level1 lfo3"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;The pros and cons of Galera cluster&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt; margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l2 level1 lfo3"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Using Galera cluster to replicate between data centers&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt; margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l2 level1 lfo3"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Certification-based Replication&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt; margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l2 level1 lfo3"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Deploying a Galera cluster&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt; margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l2 level1 lfo3"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Failure handling with ClusterControl™ and Galera&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt; margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l2 level1 lfo3"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Adding a node to a Galera cluster&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt; margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l2 level1 lfo3"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:10.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Schema changes in Galera cluster&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="margin-top:.1pt"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;Try the ClusterControl™ Configurator for MySQL Galera today or book a demo to see it live in action!&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-pagination: none;mso-list:l0 level1 lfo2;text-autospace:ideograph-numeric"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family: Symbol;mso-bidi-mso-ansi-language:DEfont-family:Symbol;font-size:11.0pt;color:black;"   lang="DE" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.severalnines.com/galera-configurator/"&gt;&lt;u&gt;&lt;span style=" font-family:Times;mso-fareast-font-family:TrebuchetMS;mso-bidi-mso-ansi-language:DEfont-family:TrebuchetMS;font-size:11.0pt;color:black;"   lang="DE" &gt;ClusterControl™ &lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span style="font-family:Times;mso-fareast-font-family:TrebuchetMS; mso-bidi-mso-ansi-language:DEfont-family:TrebuchetMS;font-size:11.0pt;color:black;"   lang="DE" &gt;Configurator for MySQL Galera&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;– try it today!&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span style="font-family:Times;mso-fareast-font-family:TrebuchetMS; mso-bidi-mso-ansi-language:DEfont-family:TrebuchetMS;font-size:11.0pt;color:black;"   lang="DE" &gt; &lt;/span&gt;&lt;span style="font-family:Times;mso-fareast-font-family:TrebuchetMS; mso-bidi-mso-ansi-language:DEfont-family:TrebuchetMS;font-size:11.0pt;color:black;"   lang="DE" &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-pagination: none;mso-list:l0 level1 lfo2;text-autospace:ideograph-numeric"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family: Symbol;mso-bidi-mso-ansi-language:DEfont-family:Symbol;font-size:11.0pt;color:black;"   lang="DE" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.severalnines.com/clustercontrol-mysql-galera-tutorial"&gt;&lt;u&gt;&lt;span style=" font-family:Times;mso-fareast-font-family:TrebuchetMS;mso-bidi-mso-ansi-language:DEfont-family:TrebuchetMS;font-size:11.0pt;color:black;"   lang="DE" &gt;Online Tutorial – ClusterControl™ for MySQL Galera&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span style="font-family: Times;mso-fareast-font-family:TrebuchetMS;mso-bidi- mso-ansi-language:DEfont-family:TrebuchetMS;font-size:11.0pt;color:black;"   lang="DE" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-pagination: none;mso-list:l0 level1 lfo2;text-autospace:ideograph-numeric"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family: Symbol;mso-bidi-mso-ansi-language:DEfont-family:Symbol;font-size:11.0pt;color:black;"   lang="DE" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://support.severalnines.com/home#overview"&gt;&lt;u&gt;&lt;span style=" font-family:Times;mso-fareast-font-family:TrebuchetMS;mso-bidi-mso-ansi-language:DEfont-family:TrebuchetMS;font-size:11.0pt;color:black;"   lang="DE" &gt;Severalnines Knowledge Base&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span style="font-family:Times;mso-fareast-font-family:TrebuchetMS; mso-bidi-mso-ansi-language:DEfont-family:TrebuchetMS;font-size:11.0pt;color:black;"   lang="DE" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Symbol; mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="  ;font-family:Times;font-size:11pt;color:black;"   lang="DE" &gt;&lt;a href="http://www.severalnines.com/book-demo-now"&gt;&lt;span style=" text-decoration:none;text-underline:nonecolor:windowtext;" &gt;Book a demo&lt;/span&gt;&lt;/a&gt;!&lt;a href="http://www.severalnines.com/book-demo-now"&gt;&lt;span style=" text-decoration:none;text-underline:nonecolor:windowtext;" &gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:0cm;margin-left:0cm; margin-bottom:.0001pt"&gt;&lt;span   lang="EN-GB"  style="font-family:Times;font-size:11.0pt;color:black;"&gt;Please do reach out to us with your feedback on &lt;/span&gt;&lt;a href="http://www.facebook.com/pages/Severalnines/104774439598301"&gt;&lt;u&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;Facebook&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;/span&gt;&lt;span   lang="EN-GB"  style="font-family:Times;font-size:11.0pt;color:black;"&gt;, &lt;/span&gt;&lt;a href="http://www.linkedin.com/company/severalnines"&gt;&lt;u&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;LinkedIn&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;/span&gt;&lt;span  lang="EN-GB"  style="font-family:Times;font-size:11.0pt;"&gt;, &lt;/span&gt;&lt;a href="https://www.xing.com/companies/severalnines"&gt;&lt;u&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;XING&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;/span&gt;&lt;span  lang="EN-GB"  style="font-family:Times;font-size:11.0pt;"&gt; &lt;span style="color:black;"&gt;or directly via these &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-family:Times;font-size:12.0pt;"  lang="EN-GB" &gt;&lt;a href="http://www.severalnines.com/contact-us"&gt;contact details&lt;/a&gt; &lt;/span&gt;&lt;span   lang="EN-GB"  style="font-family:Times;font-size:11.0pt;color:black;"&gt;for fruitful and interactive discussions on this latest release. For 'instant' communication, feel free to follow us on &lt;/span&gt;&lt;a href="http://twitter.com/#%21/severalnines"&gt;&lt;u&gt;&lt;span style=" ;font-family:Times;font-size:11.0pt;"  lang="EN-GB" &gt;Twitter&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span style=" ;font-family:Times;font-size:11.0pt;"  lang="EN-GB" &gt;&lt;span style="color:black;"&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p style="margin-top: 0.1pt;"&gt;&lt;b&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;About Severalnines&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top:.1pt"&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt"&gt;&lt;a href="http://www.severalnines.com/"&gt;&lt;u&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt;Severalnines&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span lang="EN-GB"  style="font-size:11.0pt;"&gt; provides automation and management software for easily usable, highly available and auto-scalable cloud database platforms. &lt;a href="http://www.severalnines.com/products-services"&gt;&lt;u&gt;ClusterControl™&lt;/u&gt;&lt;/a&gt;, the company’s flagship product, used by developers and administrators of all skill levels, addresses the full deploy-manage-monitor-scale cycle. Severalnines has enabled over 7,000 deployments to date via its popular &lt;a href="http://www.severalnines.com/resources/configurator"&gt;online &lt;u&gt;configurator&lt;/u&gt;&lt;/a&gt; for clustered MySQL databases.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;To see who is using Severalnines today, please visit our &lt;a href="http://www.severalnines.com/references"&gt;&lt;u&gt;references page&lt;/u&gt;&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0.1pt;"&gt;&lt;br /&gt;&lt;span lang="EN-GB"  style="font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:0cm; mso-prop-change:&amp;quot;Sakari Keskitalo&amp;quot; 20111023T1219"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;&lt;span style="font-weight: bold;"&gt;About Codership&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-top:.1pt;margin-right:0cm;margin-bottom:.1pt;margin-left:0cm; mso-prop-change:&amp;quot;Sakari Keskitalo&amp;quot; 20111023T1219"&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-size:10.0pt;" lang="EN-GB" &gt;Codership Oy was founded in 2007 by database clustering experts to exploit the latest developments in computer science and produce &lt;em&gt;&lt;span style="font-family:Times;"&gt;fast &amp;amp; scalable synchronous replication solutions &lt;/span&gt;&lt;/em&gt;for databases and similar applications. Currently, Codership offers multi-master cluster for MySQL database as open source. For more information about our open source MySQL Galera software and support offering, visit&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:11.0pt;mso-bidi-mso-bidi- font-family:Tahoma;font-size:8.0pt;color:black;"   lang="EN-GB" &gt; &lt;/span&gt;&lt;/b&gt;&lt;a href="http://www.codership.com/"&gt;&lt;b&gt;&lt;span style="font-size:11.0pt; mso-bidi-font-size:8.0pt;color:black;"  lang="EN-GB" &gt;&lt;span style="font-weight:normal;text-decoration:none;text-underline: nonecolor:windowtext;" &gt;www.codership.com&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-size:11.0pt;mso-bidi-mso-bidi- font-family:Tahoma;font-size:8.0pt;color:black;"   lang="EN-GB" &gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;    &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style="text-autospace:ideograph-numeric"&gt;&lt;b&gt;&lt;span style="font-size:11.0pt;mso-bidi- font-family:Times;font-size:8.0pt;color:black;"   lang="EN-GB" &gt;© 2011 Severalnines AB. Severalnines and the Severalnines logo(s) are trademarks of Severalnines AB. &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:11.0pt;mso-bidi-font-family:Times;font-size:8.0pt;"  lang="EN-GB" &gt;MySQL is a registered trademark of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.&lt;/span&gt;&lt;/p&gt;</description><link>http://johanandersson.blogspot.com/2011/10/severalnines-releases-clustercontrol_25.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-6688813402684298585</guid><pubDate>Thu, 13 Oct 2011 07:00:00 +0000</pubDate><atom:updated>2011-10-13T09:33:00.019+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>mysql 5.5</category><category domain='http://www.blogger.com/atom/ns#'>percona</category><category domain='http://www.blogger.com/atom/ns#'>semi-sync replication</category><category domain='http://www.blogger.com/atom/ns#'>severalnines</category><category domain='http://www.blogger.com/atom/ns#'>mysql ha</category><title>Multi-master and read slaves using Severalnines</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-OmNyf7FBULs/TaMQUiQ6zKI/AAAAAAAAAMI/JG7bjJBQXhU/s1600/Slide1.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-OmNyf7FBULs/TaMQUiQ6zKI/AAAAAAAAAMI/JG7bjJBQXhU/s320/Slide1.jpg" alt="" id="BLOGGER_PHOTO_ID_5594333107105483938" border="0" /&gt;&lt;/a&gt;This blog post shows how you can use the &lt;a href="http://www.severalnines.com/replication-configurator/"&gt;Severalnines Configurator for MySQL Replication  &lt;/a&gt;to deploy a Multi-master replication setup, and install &lt;a href="http://www.severalnines.com/cluster-control"&gt;ClusterControl&lt;/a&gt;.&lt;br /&gt;You can also &lt;a href="http://www.severalnines.com/resources/videos"&gt;watch videos &lt;/a&gt;showing what is described below or read an &lt;a href="http://www.severalnines.com/resources/tutorials"&gt;even more detailed tutorial&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;When the deployment is finished you have a set of tools to manage and monitor replication, as well as to add new slaves, and to perform failover.&lt;br /&gt;You can choose:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The number of slaves you wish to connect to the master-&amp;gt;relay master.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;whether you want to use MySQL 5.5.x or Percona 5.5.x&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Semi-sync replication or not (semi sync really recommended)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;cloud provider (on premise/EC2/Rackspace&lt;/li&gt;&lt;/ul&gt;Please note that your hosts must resolve to a valid ip. If 'hostname -i' resolves to nothing or to 127.0.0.1 it will not work.&lt;br /&gt;&lt;br /&gt;We recommend also that you don't use bi-directional replication. It may sound like a good idea, but in practice it is challenging to get it working well.&lt;br /&gt;&lt;br /&gt;When deployed you can easily perform tasks as:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add new slaves&lt;/li&gt;&lt;li&gt;Failover&lt;/li&gt;&lt;li&gt;View replication health information&lt;/li&gt;&lt;li&gt;Stop/start replication links&lt;/li&gt;&lt;li&gt;Stage slaves&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The Configurator for MySQL Replication is a wizard-like application and you have to enter details about the setup you want to have. When this is done you will get a tar.gz that contains the deployment and management scripts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;ClusterControl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The deployment process will also install  ClusterControl which is a set of monitoring agents and functionality to  manage the database installation.  The agents are deployed on each server and collects host information and information from the local MySQL server a particular agent is monitoring (such as replication statistics and status information).&lt;br /&gt;&lt;br /&gt;One server (dedicated) is denoted the ClusterControl server. It is holding a database, CMON DB, that contains data about the monitored hosts, and the reporting data from the  local agents is stored in this database. On this server a Controller is running and faciliates failover etc.&lt;br /&gt;&lt;br /&gt;Moreover, the ClusterControl server exposes a web  interface that can be used to graphically see the health of the  replication cluster (after the deployment is done, take a web browser and point it to http://clustercontrolserver/cmon  :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-GrrXKz9FGUw/TaMO7TRxQCI/AAAAAAAAAL4/Q372Vv3SnMo/s1600/cmon-repl-monitor.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 165px;" src="http://4.bp.blogspot.com/-GrrXKz9FGUw/TaMO7TRxQCI/AAAAAAAAAL4/Q372Vv3SnMo/s320/cmon-repl-monitor.png" alt="" id="BLOGGER_PHOTO_ID_5594331574074163234" border="0" /&gt;&lt;/a&gt;From ClusterControl you can then upload a schema, and start loading in  data into a database. As well as doing GRANTs etc. In the Enterprise  version you an also define &lt;span style="font-weight: bold;"&gt;performance&lt;/span&gt; probes (to make sure you system  is not degrading over time), tune queries, try out new queries before  putting them in production. You also have a &lt;span style="font-weight: bold;"&gt;Query Monitor&lt;/span&gt; and explains  at your hands.&lt;br /&gt;&lt;br /&gt;Failover is automatic (if the master fails, the relay will become the  new master). When the master comes up again, it will connect to the new  master and sync up, become the relay, and the slaves will failover to  the relay.  We also make use of the replication features of MySQL 5.5 (such as relay recovery) and a bunch of other techniques.&lt;br /&gt;&lt;br /&gt;You can also &lt;span style="font-weight: bold;"&gt;add slaves or remove slaves &lt;/span&gt;with the &lt;span style="font-weight: bold;"&gt;click of a button&lt;/span&gt;, as well as scheduling backups.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Installation&lt;/span&gt;&lt;br /&gt;When you have finished the wizard you get a package that you should deploy on the ClusterControl server:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;tar xvfz s9s-mysql-55.tar.gz&lt;br /&gt;cd s9s-mysql-55/mysql/scripts/install&lt;br /&gt;./deploy.sh&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The 'deploy.sh' script will create data directories, install initd scripts, create mysql users, apply database GRANTs (those you defined in the Configurator), and install ClusterControl.&lt;br /&gt;&lt;br /&gt;A while in 'deploy.sh' replication will be started, and it can look like this:&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;*******************************************************************************&lt;br /&gt;*                   Starting replication                                      *&lt;br /&gt;*******************************************************************************&lt;br /&gt;Master hosts&lt;br /&gt;------------&lt;br /&gt;10.30.30.31: up&lt;br /&gt;10.30.30.32: up&lt;br /&gt;Slave hosts&lt;br /&gt;------------&lt;br /&gt;10.30.30.33: up&lt;br /&gt;10.30.30.34: up&lt;br /&gt;starting replication between 10.30.30.31 --&amp;gt; 10.30.30.32 (change master=1, reset master=1)&lt;br /&gt;replication [started] 10.30.30.31 --&amp;gt; 10.30.30.32&lt;br /&gt;starting replication between 10.30.30.32 --&amp;gt; 10.30.30.33 (change master=1, reset master=0)&lt;br /&gt;replication [started] 10.30.30.32 --&amp;gt; 10.30.30.33&lt;br /&gt;starting replication between 10.30.30.32 --&amp;gt; 10.30.30.34 (change master=1, reset master=0)&lt;br /&gt;replication [started] 10.30.30.32 --&amp;gt; 10.30.30.34&lt;br /&gt;master_host --&amp;gt;slave_host status  master_status  slave_status [binlog|m_pos|exec_pos|lag]&lt;br /&gt;10.30.30.31 10.30.30.32 ok         binlog.000003:250 binlog.000003| 250| 250| 0&lt;br /&gt;--- slaves follows ---&lt;br /&gt;10.30.30.32 10.30.30.33 ok         binlog.000001:107 binlog.000001| 107| 107| 0&lt;br /&gt;10.30.30.32 10.30.30.34 ok         binlog.000001:107 binlog.000001| 107| 107| 0&lt;br /&gt;&lt;/pre&gt;After this, ClusterControl will be installed. If you are using RPM based installation there can be rpm dependency problems (we install libmysqlclient.so.16), but it can conflict with what comes with your distribution. Please let us know if this happens, contact us on community@severalnines.com.&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;Starting/stopping Replication and basic examples&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After having executed deploy.sh, you can view the status of the mysql servers:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;cd s9s-mysql-55/mysql/scripts/&lt;br /&gt;./status.sh  -a&lt;br /&gt;Master hosts&lt;br /&gt;------------&lt;br /&gt;10.30.30.31: up&lt;br /&gt;10.30.30.32: up&lt;br /&gt;Slave hosts&lt;br /&gt;------------&lt;br /&gt;10.30.30.33: up&lt;br /&gt;10.30.30.34: up&lt;br /&gt;&lt;/pre&gt;To view the replication status:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;cd s9s-mysql-55/mysql/scripts/&lt;br /&gt;./repl-status.sh -a&lt;br /&gt;master_host --&amp;gt;slave_host status  master_status  slave_status [binlog|m_pos|exec_pos|lag]&lt;br /&gt;10.30.30.31 10.30.30.32 ok         binlog.000003:250 binlog.000003| 250| 250| 0&lt;br /&gt;--- slaves follows ---&lt;br /&gt;10.30.30.32 10.30.30.33 ok         binlog.000001:107 binlog.000001| 107| 107| 0&lt;br /&gt;10.30.30.32 10.30.30.34 ok         binlog.000001:107 binlog.000001| 107| 107| 0&lt;br /&gt;&lt;/pre&gt;To stop replication between 10.30.30.32 (relay master) to 10.0.30.33 you can do:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;cd s9s-mysql-55/mysql/scripts/&lt;br /&gt;./stop-repl.sh -m 10.30.30.32 -s 10.30.30.33&lt;br /&gt;stopping replication between 10.30.30.32 --&amp;gt; 10.30.30.33&lt;br /&gt;replication [stopped] 10.30.30.32 --&amp;gt; 10.30.30.33&lt;br /&gt;&lt;/pre&gt;To start replication again you can do:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;cd s9s-mysql-55/mysql/scripts/&lt;br /&gt;./start-repl.sh -m 10.30.30.32 -s 10.30.30.33&lt;br /&gt;starting replication between 10.30.30.32 --&amp;gt; 10.30.30.33 (change master=0, reset master=0)&lt;br /&gt;replication [started] 10.30.30.32 --&amp;gt; 10.30.30.33&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;Other options for 'start-repl.sh' is -r (for reset master, dangerous), -c (change master). Normally these options are not needed but you can use them in conjuction with  -l (logpos) and -f (binlog file) if you want to start replication from a particular position.&lt;br /&gt;&lt;br /&gt;And we can check the replication status:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;ubuntu@ip-10-49-122-115:~/s9s-mysql-55/mysql/scripts$ ./repl-status.sh -a&lt;br /&gt;serverid master_host --&amp;gt;slave_host status  master_status  slave_status [binlog|m_pos|exec_pos|lag]&lt;br /&gt;1      10.48.207.130 10.48.139.24 ok         binlog.000005:494 binlog.000005| 494| 494| 0&lt;br /&gt;2     replication not activated - you must start replication on this link.&lt;br /&gt;--- slaves follows ---&lt;br /&gt;3      10.48.139.24 10.49.122.56 ok         binlog.000005:485 binlog.000005| 485| 485| 0&lt;br /&gt;4      10.48.139.24 10.49.110.183 ok         binlog.000005:485 binlog.000005| 485| 485| 0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Good luck and don't hesitate to contact us at feedback@severalnines.com  or community@severalnines.com if you have any problems or whatever it may be. You can also &lt;a href="http://www.severalnines.com/book-demo-now"&gt;book a demo&lt;/a&gt; this if you want to know more.</description><link>http://johanandersson.blogspot.com/2011/10/multi-master-and-read-slaves-using.html</link><author>noreply@blogger.com (Johan Andersson)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-OmNyf7FBULs/TaMQUiQ6zKI/AAAAAAAAAMI/JG7bjJBQXhU/s72-c/Slide1.jpg' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-8316136363476647853</guid><pubDate>Tue, 04 Oct 2011 07:58:00 +0000</pubDate><atom:updated>2011-10-04T09:26:06.705+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>MySQL</category><category domain='http://www.blogger.com/atom/ns#'>clustered databases</category><category domain='http://www.blogger.com/atom/ns#'>high availability</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Replication</category><category domain='http://www.blogger.com/atom/ns#'>automation</category><title>Severalnines releases ClusterControl™ for MySQL Replication v. 1.1.9</title><description>Stockholm - October 4th 2011&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.severalnines.com/"&gt;Severalnines&lt;/a&gt;, provider of automation and management software for easily usable, highly available and auto-scalable cloud database platforms, today announces the latest release of its flagship product &lt;a target="_blank" href="http://www.severalnines.com/cluster-control-mysql-replication"&gt;ClusterControl™ for MySQL Replication&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Introducing ClusterControl™ for MySQL Replication v.1.1.9&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.severalnines.com/cluster-control-mysql-replication"&gt;ClusterControl™ for MySQL Replication&lt;/a&gt; enables customers to Deploy, Manage, Monitor and Scale a clustered database platform based on the standard MySQL Replication.&lt;br /&gt;&lt;br /&gt;Developers and DBAs now have access to all of the features of Severalnines' flagship product ClusterControl™ specifically adapted to MySQL Replication.&lt;br /&gt;&lt;br /&gt;Designed to address issues and needs of MySQL users relying on MySQL Replication, &lt;a target="_blank" href="http://www.severalnines.com/cluster-control-mysql-replication"&gt;ClusterControl™ for MySQL Replication&lt;/a&gt; offers a complete set of tools to assist developers and administrators of all skill levels to deploy, manage, monitor and scale their replicated MySQL databases.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;a target="_blank" href="http://www.severalnines.com/cluster-control-mysql-replication"&gt;Features and benefits&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Config wizard&lt;/span&gt;&lt;br /&gt;- Generates individual configurations based on application needs&lt;br /&gt;- Creates deployment packages&lt;br /&gt;- Deploys a Replication cluster in minutes&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Config manager&lt;/span&gt;&lt;br /&gt;- Sanity checks changes to configuration parameters&lt;br /&gt;- Rolls out configuration changes to all servers and automates rolling restarts&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Upgrade advisor&lt;/span&gt;&lt;br /&gt;- Keeps users up-to-date by performing upgrades&lt;br /&gt;- Applies minor patches or major upgrades&lt;br /&gt;- Allows roll-back to previous versions&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Availability manager&lt;/span&gt;&lt;br /&gt;- Clusterware that detects process failures&lt;br /&gt;- Automates MySQL master fail-over&lt;br /&gt;- Performs recovery of failed database processes&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Backup manager&lt;/span&gt;&lt;br /&gt;- Schedule backups or allow users to start an immediate backup&lt;br /&gt;- Monitor and browse existing backups&lt;br /&gt;- Define retention policies&lt;br /&gt;- No proprietary data formats&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Monitor&lt;/span&gt;&lt;br /&gt;- Granular end-to-end transaction and database operation monitoring&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Query analyzer&lt;/span&gt;&lt;br /&gt;- Analysis on cluster-wide running queries&lt;br /&gt;- Global MySQL processlist&lt;br /&gt;- Deep real-time and historical visibility into individual nodes&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Alarms and notifications&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scale&lt;/span&gt;&lt;br /&gt;- Add new Slaves (or remove) to the cluster without any downtime&lt;br /&gt;- Easily specify hostnames of Slaves to be added&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.severalnines.com/features-clustercontrol%E2%84%A2-mysql-replication"&gt;View all of the features here&lt;/a&gt;.&lt;br /&gt;&lt;h2&gt;Automated fail-over with ClusterControl™&lt;/h2&gt;Standard MySQL Replication is easy to set up, and is probably the most widely used mechanism to provide high availability for MySQL. Unfortunately, it is somewhat fragile. There is no support for fail-over. Slaves can easily end up with different data from the master. Diverging datasets can cause replication to stop. Crashing masters can corrupt binary logs, which means replication is not possible any more.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.severalnines.com/products-services"&gt;ClusterControl™&lt;/a&gt; addresses the problems associated with master fail-over and resynchronizations, and avoids data loss by taking advantage of semi-sync replication in MySQL 5.5.&lt;br /&gt;&lt;br /&gt;ClusterControl™ automates fail-over and reconfiguration of the replication setup to keep the Replication cluster stable and running. This &lt;a target="_blank" href="http://www.severalnines.com/resources/tutorials"&gt;online tutorial&lt;/a&gt; explains the MySQL Replication architecture, and how different types of failures are handled.&lt;br /&gt;&lt;br /&gt;Users can &lt;a target="_blank" href="http://www.severalnines.com/replication-configurator/"&gt;try it now&lt;/a&gt; by generating their &lt;a target="_blank" href="http://www.severalnines.com/replication-configurator/"&gt;deployment package&lt;/a&gt;.&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reources related to this release&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.severalnines.com/replication-configurator/"&gt;Configurator for MySQL Replication&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.severalnines.com/resources/tutorials"&gt;Tutorial: ClusterControl for MySQL Replication&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.severalnines.com/resources/videos"&gt;Videos: Online Demos on MySQL Replication&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.severalnines.com/book-demo-now"&gt;Book a demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please do reach out to us with your feedback on &lt;a target="_blank" href="http://www.facebook.com/pages/Severalnines/104774439598301"&gt;Facebook&lt;/a&gt;, &lt;a target="_blank" href="http://www.linkedin.com/company/severalnines"&gt;LinkedIn&lt;/a&gt;, &lt;a target="_blank" href="https://www.xing.com/companies/severalnines"&gt;XING&lt;/a&gt; or directly via these &lt;a target="_blank" href="http://www.severalnines.com/contact-us"&gt;contact details&lt;/a&gt; for fruitful and interactive discussions on this latest release. For 'instant' communication, feel free to follow us on &lt;a target="_blank" href="http://twitter.com/#%21/severalnines"&gt;Twitter&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;About Severalnines&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.severalnines.com/"&gt;Severalnines&lt;/a&gt; provides automation and management software for easily usable, highly available and auto-scalable cloud database platforms. &lt;a target="_blank" href="http://www.severalnines.com/products-services"&gt;ClusterControl™&lt;/a&gt;, the company’s flagship product, used by developers and administrators of all skill levels, addresses the full deploy-manage-monitor-scale cycle. Severalnines has enabled over 7,000 deployments to date via its popular &lt;a target="_blank" href="http://www.severalnines.com/resources/configurator"&gt;online configurator&lt;/a&gt; for clustered MySQL databases.&lt;br /&gt;&lt;br /&gt;To see who is using Severalnines today, please visit our &lt;a target="_blank" href="http://www.severalnines.com/references"&gt;references page&lt;/a&gt;.</description><link>http://johanandersson.blogspot.com/2011/10/severalnines-releases-clustercontrol.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-1832528948490755305</guid><pubDate>Tue, 23 Aug 2011 13:30:00 +0000</pubDate><atom:updated>2011-08-23T15:37:18.678+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>cloud database</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Cluster</category><category domain='http://www.blogger.com/atom/ns#'>AMI</category><category domain='http://www.blogger.com/atom/ns#'>Amazon EC2</category><category domain='http://www.blogger.com/atom/ns#'>ubuntu</category><title>MySQL Clusters on Amazon EC2 - verified AMIs</title><description>We regularly receive questions from our user community with regards to which AMIs to use when deploying database clusters on Amazon EC2.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;As part of our ongoing development work on the &lt;a href="http://www.severalnines.com/cluster-configurator/" target="_blank"&gt;Severalnines Configurator&lt;/a&gt; and &lt;a href="http://www.severalnines.com/cluster-control" target="_blank"&gt;ClusterControl&lt;/a&gt;, we have recently done some testing on deploying MySQL Cluster on EC2 using Severalnines on three different AMIs. We thought we should share the results of these tests, hence the reason for this week's blog!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;If you would like to test such a deployment yourself, feel free to use the parameters and guidelines below to do so. You can also &lt;a href="http://www.severalnines.com/resources/videos" target="_blank"&gt;check out these new videos&lt;/a&gt; to see &lt;a href="http://www.severalnines.com/resources/videos" target="_blank"&gt;Severalnines technology in action&lt;/a&gt; prior to getting started with your testing.&lt;br /&gt;&lt;br /&gt;These are the three AMIs that we have tested the deployment on so as to have a good representative mix:&lt;br /&gt;&lt;br /&gt;* RightImage_CentOS_5.4_x64_v5.5.9&lt;br /&gt;* Amazon QuickStart AMI: amzn-ami-2011.02.1.x86_64-ebs&lt;br /&gt;* Canonical AMI: ubuntu-maverick-5g-64bit&lt;br /&gt;&lt;br /&gt;Of course, it would be great to hear from you on how your testing went and on what AMIs you are currently using yourself. Feel free to share your feedback with us on &lt;a href="http://www.facebook.com/pages/Severalnines/104774439598301" target="_blank"&gt;Facebook&lt;/a&gt;, &lt;a href="http://twitter.com/#%21/severalnines" target="_blank"&gt;Twitter&lt;/a&gt;, &lt;a href="http://www.linkedin.com/company/severalnines" target="_blank"&gt;LinkedIn&lt;/a&gt; or leave a comment on this blog.&lt;br /&gt;&lt;br /&gt;Here are the parameters that you can use to test your MySQL Cluster deployment using the &lt;a href="http://www.severalnines.com/cluster-configurator/" target="_blank"&gt;Severalnines Configurator&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;In all cases, the Internal IP was used as the Hostname in the Configurator&lt;/span&gt; and the following was used for all tests:&lt;br /&gt;&lt;br /&gt;* Instance type: m1.larg&lt;br /&gt;* Number of instances: 5 (1 for ClusterControl), 2 for data nodes, 2 for MySQL servers and management servers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RightImage_CentOS_5.4_x64_v5.5.9 (ami-0f42a966)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* Cloud Provider [Configurator]: Amazon EC2&lt;br /&gt;* OS user [Configurator]: root&lt;br /&gt;* Operating System [Configurator]: Redhat/Fedora/Centos/Oracle&lt;br /&gt;* Data directories [Configurator]: /mnt/data/mysqlcluster for data nodes and management servers and /mnt/data/mysql (for the mysql servers) both RPM and tar.gz installation was tested using 'deploy.sh'&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Canonical AMI: ubuntu-maverick-5g-64bit (ami-ac41b7c5)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* Cloud Provider [Configurator]: Amazon EC2&lt;br /&gt;* OS user [Configurator]: ubuntu&lt;br /&gt;* Operating System [Configurator]: Ubuntu/Debian&lt;br /&gt;* DataMemory [Configurator]: 512MB&lt;br /&gt; Set it down in the Configurator - yes, it is tiny, but the default disk in this AMI is tiny, so you should add a 20GB EBS Volume if you want to test with the default suggested DataMemory&lt;br /&gt;* Data directories [Configurator]: default suggested ones.&lt;br /&gt;* Installation was tested using 'deploy.sh'&lt;br /&gt;   &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Amazon QuickStart AMI: amzn-ami-2011.02.1.x86_64-ebs (ami-8e1fece7)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* Cloud Provider [Configurator]: Amazon EC2&lt;br /&gt;* OS user [Configurator]: ec2-user&lt;br /&gt;* Operating System [Configurator]: Redhat/Fedora/Centos/Oracle&lt;br /&gt;* DataMemory [Configurator]: 512MB&lt;br /&gt; Set it down in the Confgurator. Yes, it is tiny, but the default disk in this AMI is tiny, so you should add a 20GB EBS Volume if you want to test with the default suggested DataMemory.&lt;br /&gt;* Data directories [Configurator]: default suggested ones.&lt;br /&gt;* .tar.gz installation using 'deploy.sh' no problems.&lt;br /&gt;*  RPM installation - dependency problems with libmysqlclient.so.16 vs libmysqlclient.so.14.&lt;br /&gt;  This can be fixed by editing the mysqlcluster-71-rpm/cluster/scripts/install/install-rpm.sh before running 'deploy.sh':&lt;br /&gt;  Change this, in the function named install_rpm_cmonmysql()  :&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   MySQL-Cluster-gpl-shared-compat-${version}-1.${rhel}.${arch}.rpm&lt;/span&gt;&lt;br /&gt;  to&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   MySQL-Cluster-gpl-shared-${version}-1.${rhel}.${arch}.rpm&lt;/span&gt;&lt;br /&gt;  Now you can run ./deploy.sh&lt;br /&gt;&lt;br /&gt;Finally, do not forget to set the EC2 Keypair in the Configurator and upload it to the &lt;a href="http://www.severalnines.com/cluster-control" target="_blank"&gt;ClusterControl&lt;/a&gt; server before running deploy.sh.&lt;br /&gt;&lt;br /&gt;You should now be up and running with your MySQL Cluster on EC2; if you have any questions or comments, please do let us know. We welcome your feedback on &lt;a href="http://www.facebook.com/pages/Severalnines/104774439598301" target="_blank"&gt;Facebook&lt;/a&gt;, &lt;a href="http://twitter.com/#%21/severalnines" target="_blank"&gt;Twitter&lt;/a&gt;, &lt;a href="http://www.linkedin.com/company/severalnines" target="_blank"&gt;LinkedIn&lt;/a&gt; or directly on this blog.&lt;br /&gt;&lt;br /&gt;For more information on AMIs: &lt;a href="http://aws.amazon.com/amis/" target="_blank"&gt;http://aws.amazon.com/amis/&lt;/a&gt;&lt;br /&gt;For more information on EC2: &lt;a href="http://aws.amazon.com/ec2/" target="_blank"&gt;http://aws.amazon.com/ec2/&lt;/a&gt;&lt;br /&gt;</description><link>http://johanandersson.blogspot.com/2011/08/test-deployment-of-mysql-cluster-on.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-7820102534073422182</guid><pubDate>Tue, 16 Aug 2011 20:41:00 +0000</pubDate><atom:updated>2011-08-16T22:18:09.797+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>redhat</category><category domain='http://www.blogger.com/atom/ns#'>cloud services</category><category domain='http://www.blogger.com/atom/ns#'>high availability</category><category domain='http://www.blogger.com/atom/ns#'>PaaS</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Cluster</category><category domain='http://www.blogger.com/atom/ns#'>openshift</category><category domain='http://www.blogger.com/atom/ns#'>jboss</category><title>MySQL Clusters in the Cloud with Severalnines on OpenShift</title><description>&lt;span style="font-style: italic;"&gt;A blog post on how to deploy a sample JBoss application on OpenShift Flex - using a highly available, scalable backend that leverages MySQL Cluster&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.severalnines.com/" TARGET="_blank"&gt;Severalnines&lt;/a&gt; team has been busy during the summer months and as result, we have included OpenShift Flex support to our &lt;a href="http://www.severalnines.com/resources/configurator" TARGET="_blank"&gt;Severalnines Configurator&lt;/a&gt; (amongst other things). &lt;a href="https://openshift.redhat.com/app/" TARGET="_blank"&gt;OpenShift,&lt;/a&gt; a Platform-as-a-Service operated by Red Hat, allows developers to develop and manage applications in the cloud. It is now possible to configure a clustered MySQL database for cloud services running on OpenShift. This brings high-availability and scalability at both the application and database layers.&lt;br /&gt;&lt;br /&gt;As a guest contributor on &lt;a href="https://www.redhat.com/openshift/blogs/mysql-clusters-in-the-cloud-with-severalnines-on-openshift" TARGET="_blank"&gt;Red Hat's OpenShift Community Blog&lt;/a&gt;, we provide a comprehensive, &lt;a href="https://www.redhat.com/openshift/blogs/mysql-clusters-in-the-cloud-with-severalnines-on-openshift" TARGET="_blank"&gt;step-by-step walkthrough&lt;/a&gt; for this type of deployment. For those of you who would also like to view the process “in action”, feel free to &lt;a href="http://severalnines.com/resources/videos" TARGET="_blank"&gt;view the video&lt;/a&gt; that complements this blog entry.&lt;br /&gt;&lt;br /&gt;Read the full blog &lt;a href="https://www.redhat.com/openshift/blogs/mysql-clusters-in-the-cloud-with-severalnines-on-openshift" TARGET="_blank"&gt;here&lt;/a&gt;!&lt;br /&gt;</description><link>http://johanandersson.blogspot.com/2011/08/mysql-clusters-in-cloud-with.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-7127421494059432626</guid><pubDate>Thu, 26 May 2011 13:53:00 +0000</pubDate><atom:updated>2011-05-26T15:00:26.898+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>eurocloud</category><category domain='http://www.blogger.com/atom/ns#'>award</category><category domain='http://www.blogger.com/atom/ns#'>severalnines</category><title>Best Start-up: Severalnines - at EuroCloud Sweden Award</title><description>&lt;a href="http://www.severalnines.com/"&gt;Severalnines&lt;/a&gt; is proud to announce that it won the Best Startup prize at the &lt;a href="http://www.eurocloud.se/"&gt;EuroCloud Sweden&lt;/a&gt; Award in Stockholm this week. The company was chosen out of a number of promising startups targeting the emerging cloud computing market.&lt;br /&gt;&lt;br /&gt;The jury noted that “&lt;span style="font-style: italic;"&gt;Severalnines have a compelling idea to cloud-enable any customer-preferred database in mission-critical setups. Together with a simple-to-use &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.severalnines.com/config/"&gt;configurator&lt;/a&gt;&lt;span style="font-style: italic;"&gt; they put the user in control.&lt;/span&gt;”&lt;br /&gt;&lt;br /&gt;We are quite honored and proud to receive the Best Startup award. Through our flagship product &lt;a href="http://www.severalnines.com/cluster-control"&gt;ClusterControl™&lt;/a&gt;, it is our objective to make complex database tasks easy and even enjoyable for our users, and above all, to make sure our users can realise the performance, high–availability and cost efficiencies that cloud computing promises.&lt;br /&gt;&lt;br /&gt;Articles on the award can be found here:&lt;br /&gt;&lt;a href="http://www.eurocloud.se/2011/05/24/vinnare-av-eurocloud-sweden-award#more-486"&gt;EuroCloud Announcement&lt;/a&gt;   (&lt;a href="http://translate.google.com/translate?sl=sv&amp;amp;tl=en&amp;amp;u=http%3A%2F%2Fwww.eurocloud.se%2F2011%2F05%2F24%2Fvinnare-av-eurocloud-sweden-award"&gt;in english&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://www.idg.se/2.1085/1.387571/de-ar-sveriges-basta-molnforetag"&gt;IDG article&lt;/a&gt;  (&lt;a href="http://translate.google.com/translate?sl=sv&amp;amp;tl=en&amp;amp;u=http%3A%2F%2Fwww.idg.se%2F2.1085%2F1.387571%2Fde-ar-sveriges-basta-molnforetag"&gt;in english&lt;/a&gt;)</description><link>http://johanandersson.blogspot.com/2011/05/best-start-up-severalnines-at-eurocloud.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-4850408627390797861</guid><pubDate>Wed, 13 Apr 2011 22:23:00 +0000</pubDate><atom:updated>2011-04-14T01:40:57.690+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>clusterj</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Cluster 7.1</category><category domain='http://www.blogger.com/atom/ns#'>severalnines</category><title>Getting started with Cluster/J  - index search and  table scans</title><description>This post follows the &lt;a href="http://johanandersson.blogspot.com/2011/04/getting-started-with-clusterj-inserts.html"&gt;previous post&lt;/a&gt;, so set up the environment as described there.&lt;br /&gt;In this example we will perform a full table scan (select * from my_data2) and an index scan (select * from my_data2 where userid=1).&lt;br /&gt;&lt;br /&gt;The complete code is &lt;a href="http://www.severalnines.com/downloads/clusterj/whereclause"&gt;here&lt;/a&gt; from &lt;a href="http://www.severalnines.com"&gt;Severalnines&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Performing a full table scan (no search criteria)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Make sure you have records in the table my_data2.&lt;br /&gt;To perform reads by primary key, we can just use Session::find(..), but here we will do a full table scan.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;QueryBuilder qb = s.getQueryBuilder();&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* Run the query:&lt;br /&gt;*/&lt;br /&gt;List &lt;mydata2&gt;resultList = query.getResultList();&lt;br /&gt;int count=0;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* Loop over the results&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;List &lt;mydata2&gt;resultList = query.getResultList();&lt;br /&gt;int count=0;&lt;br /&gt;for (MyData2 result: resultList) {&lt;br /&gt;System.out.println(result.getFriendId());&lt;br /&gt;count++;&lt;br /&gt;}&lt;/mydata2&gt;&lt;/mydata2&gt;&lt;/pre&gt;That is it, if you run the example code, you will see the output.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;Done reading X records in Y mssd&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Performing a Index scan (search on part of the Primary Key)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;The following snippet shows how to setup a EQUAL-filter:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;/*&lt;br /&gt;*  We want to compare userid=1 (select * from my_data2 where userid=2) &lt;br /&gt;*/&lt;br /&gt;QueryBuilder qb = s.getQueryBuilder();&lt;br /&gt;QueryDomainType dobj = qb.createQueryDefinition(MyData2.class);&lt;br /&gt;/*&lt;br /&gt;* Create a filter, we call this filter 'user_id_filter'&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;PredicateOperand param = dobj.param("user_id_filter");&lt;br /&gt;/*&lt;br /&gt;* Set the column database column you want to filter on.&lt;br /&gt;* Note: The setting dobj.get("userId") is really strange.&lt;br /&gt;* In the table the column in the database is called userid, and in MyData2.&lt;br /&gt;* The documentation of Cluster/J is very bad here, but&lt;br /&gt;* the getter/setter are getUserId/setUserId, and you have to&lt;br /&gt;* take the word after the get/set (in this case UserId) and change the first&lt;br /&gt;* letter to lower case :(&lt;br /&gt;*/&lt;br /&gt;PredicateOperand column = dobj.get("userId");&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Perform an equal compare&lt;br /&gt;* we want to compare userid=1&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;Predicate compare=column.equal(param);&lt;br /&gt;dobj.where(compare);&lt;br /&gt;&lt;br /&gt;Query query = s.createQuery(dobj);&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* Bind the search value to the filter&lt;br /&gt;*/&lt;br /&gt;query.setParameter("user_id_filter", new Long(1));&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* Run the query:&lt;br /&gt;*/&lt;br /&gt;List &lt;mydata2&gt;resultList = query.getResultList();&lt;br /&gt;int count=0;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* Loop over the results&lt;br /&gt;*/&lt;br /&gt;for (MyData2 result: resultList) {&lt;br /&gt;System.out.println(result.getFriendId());&lt;br /&gt;count++;&lt;br /&gt;}&lt;br /&gt;&lt;/mydata2&gt;&lt;/pre&gt;That is it for this time. I hope the clusterj documention will become better.</description><link>http://johanandersson.blogspot.com/2011/04/getting-started-with-clusterj-index.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-3136760384046746534</guid><pubDate>Wed, 13 Apr 2011 21:54:00 +0000</pubDate><atom:updated>2011-04-13T23:02:52.835+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>clusterj</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Cluster 7.1</category><category domain='http://www.blogger.com/atom/ns#'>severalnines</category><title>Getting started with Cluster/J  - inserts (combined PK)</title><description>This post follows the &lt;a href="http://johanandersson.blogspot.com/2011/04/getting-started-with-clusterj-inserts.html"&gt;previous post&lt;/a&gt;, so set up the environment as described there.&lt;br /&gt;In this example we will have a slightly different table with a combined PK.&lt;br /&gt;The complete code is &lt;a href="http://www.severalnines.com/downloads/clusterj/insert-multipk"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Create the table&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first thing we should do is to create the table we need for this example:&lt;br /&gt;&lt;pre face="Andale Mono,Lucida Console,Monaco,fixed,monospace" size="12px" style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%;  "&gt;CREATE TABLE `my_data2` (&lt;br /&gt;`userid` bigint(20) NOT NULL DEFAULT '0',&lt;br /&gt;`friendid` bigint(20) NOT NULL DEFAULT '0',&lt;br /&gt;`data` varbinary(255) DEFAULT NULL,&lt;br /&gt;`last_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,&lt;br /&gt;PRIMARY KEY (`userid`,`friendid`)&lt;br /&gt;) ENGINE=ndbcluster DEFAULT CHARSET=latin1&lt;br /&gt;/*!50100 PARTITION BY KEY (userid) */&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Mapping table to Java Interface&lt;/span&gt;&lt;br /&gt;An interfae describing each table is needed. You annotate the code with @PrimaryKey and @Column do denote if the names of columns and the column names.&lt;br /&gt;The only difference here is that you need to annotate all primary key columns with @PrimaryKey.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;import com.mysql.clusterj.annotation.Column;&lt;br /&gt;import com.mysql.clusterj.annotation.Index;&lt;br /&gt;import com.mysql.clusterj.annotation.PersistenceCapable;&lt;br /&gt;import com.mysql.clusterj.annotation.PrimaryKey;&lt;br /&gt;&lt;br /&gt;@PersistenceCapable(table="my_data2")&lt;br /&gt;@Index(name="id")&lt;br /&gt;public interface MyData2 {&lt;br /&gt;   &lt;br /&gt;      &lt;span style="font-weight: bold;"&gt;@PrimaryKey&lt;/span&gt;&lt;br /&gt;      long getUserId();&lt;br /&gt;      void setUserId(long i);&lt;br /&gt;    &lt;br /&gt;      &lt;span style="font-weight: bold;"&gt;@PrimaryKey&lt;/span&gt;&lt;br /&gt;      long getFriendId();&lt;br /&gt;      void setFriendId(long i);&lt;br /&gt;   &lt;br /&gt;      @Column(name = "data")&lt;br /&gt;      byte[] getData();&lt;br /&gt;      void setData(byte[] b);&lt;br /&gt;&lt;br /&gt;      @Column(name = "last_updated")&lt;br /&gt;      long getLastUpdated();&lt;br /&gt;      void setLastUpdated(long ts);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Performing an insert&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Populate the fields in the object, and make it persistent. Don't forget to set all primary key columns or you will get a ClusterJException.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;MyData my_data=s.newInstance(MyData.class);&lt;br /&gt;/**&lt;br /&gt;* Set the data on the object&lt;br /&gt;*/&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;my_data.setUserId(i);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;my_data.setFriendId(i);&lt;/span&gt;&lt;br /&gt;my_data.setData(data);&lt;br /&gt;my_data.setLastUpdated(System.currentTimeMillis());&lt;br /&gt;/**&lt;br /&gt;* Persist the object */&lt;br /&gt;s.makePersistent(my_data);&lt;/pre&gt;That is it, if you run the example code, you will see the output.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;Done inserting 100 records in X ms&lt;br /&gt;&lt;/pre&gt;</description><link>http://johanandersson.blogspot.com/2011/04/getting-started-with-clusterj-inserts_13.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-8846076212096929333</guid><pubDate>Wed, 13 Apr 2011 17:53:00 +0000</pubDate><atom:updated>2011-04-13T22:54:26.578+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>clusterj</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Cluster 7.1</category><category domain='http://www.blogger.com/atom/ns#'>severalnines</category><title>Getting started with Cluster/J  - inserts</title><description>Cluster/J is a the Java direct API to MySQL Cluster which means it bypasses the MySQL Server and executes requests directly on the data nodes of MySQL Cluster.   This gives very good performance (typically &amp;gt;2x faster than SQL) and low latency.&lt;br /&gt;&lt;br /&gt;In this blog I will present how to get started and how to do simple lookups.&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt;The complete source code (actually a bit extended to show  batching) for this example can be found at &lt;a href="http://www.severalnines.com/"&gt;Severalnines&lt;/a&gt; (&lt;a href="http://www.severalnines.com/downloads/clusterj/"&gt;here&lt;/a&gt;). The code you  will see below is just snippets.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Environment&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;To start with you need MySQL Cluster up and running.&lt;br /&gt;For development on localhost then you can get a &lt;a href="http://www.severalnines.com/sandbox/"&gt;sandbox from Severalnines&lt;/a&gt;.&lt;br /&gt;If you want to have a test/production environment you should you the &lt;a href="http://www.severalnines.com/cluster-configurator/"&gt;Configurator for MySQL Cluster&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;First of all you have to import the following Cluster/J jars into your project.&lt;br /&gt;In Eclipse, on the project, do "Properties -&amp;gt; Java Build Path --&amp;gt; Add External JARs"&lt;br /&gt;The  JARs you need to import are typically located in  /usr/local/mysql/share/java/  (if you have installed MySQL Cluster in  this location - this is the default location used by &lt;a href="http://www.severalnines.com/"&gt;Severalnines&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;You also need to set the JVM configuration in order to point out the libndbclient  library :&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;-Djava.library.path=/usr/local/mysql/lib/ -Xms128m -Xmx512m&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;Create the table&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first thing we should do is to create the table we need for this example:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;CREATE TABLE `my_data` (&lt;br /&gt;`id` bigint(20) NOT NULL AUTO_INCREMENT,&lt;br /&gt;`data` varbinary(255) DEFAULT NULL,&lt;br /&gt;`last_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,&lt;br /&gt;PRIMARY KEY (`id`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Mapping table to Java Interface&lt;/span&gt;&lt;br /&gt;An interfae describing each table is needed. You annotate the code with @PrimaryKey and @Column do denote if the names of columns and the column names.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;public interface MyData {     &lt;br /&gt;&lt;br /&gt;@PrimaryKey     &lt;br /&gt;long getId();&lt;br /&gt;void setId(long i); &lt;br /&gt;&lt;br /&gt;@Column(name = "data")&lt;br /&gt;byte[] getData();     &lt;br /&gt;void setData(byte[] b);&lt;br /&gt;&lt;br /&gt;@Column(name = "last_updated")&lt;br /&gt;long getLastUpdated();&lt;br /&gt;void setLastUpdated(long ts);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;Setting up the connection to MySQL Cluster&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;Properties p = new Properties();&lt;br /&gt;p.setProperty("com.mysql.clusterj.connectstring", "localhost:1186");&lt;br /&gt;p.setProperty("com.mysql.clusterj.database", "test");&lt;br /&gt;SessionFactory sf=ClusterJHelper.getSessionFactory(p);&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Creating a Session&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The SessionFactory provides Sessions. On a session instance you can  do a couple of things, e.g, makePersistent, updatePersistent, and find.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;/**&lt;br /&gt;* Sessions are not thread safe!&lt;br /&gt;*/&lt;br /&gt;Session s = sf.getSession();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Performing an insert&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Populate the fields in the object, and make it persistent.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;MyData my_data=s.newInstance(MyData.class);&lt;br /&gt;/**&lt;br /&gt;* Set the data on the object&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;my_data.setId(i);&lt;br /&gt;my_data.setData(data);&lt;br /&gt;my_data.setLastUpdated(System.currentTimeMillis());&lt;br /&gt;/**&lt;br /&gt;* Persist the object */&lt;br /&gt;s.makePersistent(my_data);&lt;/pre&gt;That is it, if you run the example code, you will see the output.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;Done inserting 1000 records in 230 ms&lt;br /&gt;&lt;/pre&gt;</description><link>http://johanandersson.blogspot.com/2011/04/getting-started-with-clusterj-inserts.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>5</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-2017834105148792095</guid><pubDate>Tue, 12 Apr 2011 18:41:00 +0000</pubDate><atom:updated>2011-04-12T20:25:01.558+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>uc2011</category><category domain='http://www.blogger.com/atom/ns#'>MySQL Cluster</category><title>(UC2011) BOF - Setting up MySQL Cluster on EC2</title><description>Severalnines will host a&lt;a href="http://en.oreilly.com/mysql2011/public/schedule/detail/19307"&gt; BOF at 7pm&lt;/a&gt; in Ballroom A, Tuesday 04/12.&lt;br /&gt;&lt;br /&gt;After a succesful cluster tutorial we will demo how to use Severalnines Configurator to deploy MySQL Cluster on EC2 on X computers  using one command (deploy.sh), complete with monitoring and management.&lt;br /&gt;&lt;span class="en_session_room"&gt;&lt;span class="location"&gt;&lt;br /&gt;See you there!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</description><link>http://johanandersson.blogspot.com/2011/04/uc2011-bof-setting-up-mysql-cluster-on.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-6705422731436213276</guid><pubDate>Mon, 11 Apr 2011 13:30:00 +0000</pubDate><atom:updated>2011-10-13T09:31:02.586+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>mysql 5.5</category><category domain='http://www.blogger.com/atom/ns#'>percona</category><category domain='http://www.blogger.com/atom/ns#'>semi-sync replication</category><category domain='http://www.blogger.com/atom/ns#'>severalnines</category><category domain='http://www.blogger.com/atom/ns#'>mysql ha</category><title>Setting up Multi-master and read slaves using Severalnines</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-OmNyf7FBULs/TaMQUiQ6zKI/AAAAAAAAAMI/JG7bjJBQXhU/s1600/Slide1.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-OmNyf7FBULs/TaMQUiQ6zKI/AAAAAAAAAMI/JG7bjJBQXhU/s320/Slide1.jpg" alt="" id="BLOGGER_PHOTO_ID_5594333107105483938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://www.severalnines.com/resources/clustercontrol%E2%84%A2-mysql-replication-tutorial"&gt;Read the detailed replication tutorial instead&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This tutorial shows how you can use the &lt;a href="http://www.severalnines.com/replication-configurator/"&gt;Severalnines Configurator for MySQL Replication  &lt;/a&gt;to deploy a Multi-master replication setup, and install &lt;a href="http://www.severalnines.com/cluster-control"&gt;ClusterControl&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;When the deployment is finished you have a set of tools to manage and monitor replication, as well as to add new slaves, and to perform failover.&lt;br /&gt;You can choose:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; if you wish also setup bi-directional replication between the masters&lt;/li&gt;&lt;li&gt;the number of slaves you wish to connect to the master&lt;br /&gt;&lt;/li&gt;&lt;li&gt;whether you want to use MySQL 5.5.10 or Percona latest stable&lt;/li&gt;&lt;li&gt;Handlersocket (percona) or Semi-sync replication (MySQL 5.5)&lt;/li&gt;&lt;li&gt;cloud provider (on premise/EC2/Rackspace)&lt;/li&gt;&lt;/ul&gt;When deployed you can easily perform tasks as:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add new slaves&lt;/li&gt;&lt;li&gt;Failover&lt;/li&gt;&lt;li&gt;View replication health information&lt;/li&gt;&lt;li&gt;Stop/start replication links&lt;/li&gt;&lt;li&gt;Stage slaves&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The Configurator for MySQL Replication is a wizard-like application and you have to enter details about the setup you want to have. When this is done you will get a tar.gz that contains the deployment and management scripts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;ClusterControl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The deployment process will also install  ClusterControl which is a set of monitoring agents and functionality to  manage the database installation.  The agents are deployed on each server and collects host information and information from the local MySQL server a particular agent is monitoring (such as replication statistics and status information).&lt;br /&gt;&lt;br /&gt;One server (either a standalone or one that will be part of the Replication cluster) is denoted the ClusterControl server. It is holding a database, CMON DB, that contains data about the monitored hosts, and the reporting data from the  local agents is stored in this database.&lt;br /&gt;&lt;br /&gt;Moreover, the ClusterControl server exposes a web  interface that can be used to graphically see the health of the  replication cluster (after the deployment is done, take a web browser and point it to http://clustercontrolserver/cmon  :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-GrrXKz9FGUw/TaMO7TRxQCI/AAAAAAAAAL4/Q372Vv3SnMo/s1600/cmon-repl-monitor.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 165px;" src="http://4.bp.blogspot.com/-GrrXKz9FGUw/TaMO7TRxQCI/AAAAAAAAAL4/Q372Vv3SnMo/s320/cmon-repl-monitor.png" alt="" id="BLOGGER_PHOTO_ID_5594331574074163234" border="0" /&gt;&lt;/a&gt;We are in the process of adding a Query Analyzer and shaping up the web interface.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Installation&lt;/span&gt;&lt;br /&gt;When you have finished the wizard you get a package that you should deploy on the ClusterControl server:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;tar xvfz s9s-mysql-55.tar.gz&lt;br /&gt;cd s9s-mysql-55/mysql/scripts/install&lt;br /&gt;./deploy.sh&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The 'deploy.sh' script will create data directories, install initd scripts, create mysql users, apply database GRANTs (those you defined in the Configurator), and install ClusterControl.&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;Starting Replication and basic examples&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After having executed deploy.sh should do:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;cd s9s-mysql-55/mysql/scripts/&lt;br /&gt;./list-servers.sh  -a&lt;br /&gt;master     : 10.48.207.130 [  up]&lt;br /&gt;master     : 10.48.139.24 [  up]&lt;br /&gt;slave     : 10.49.122.56 [  up]&lt;br /&gt;slave     : 10.49.110.183 [  up]&lt;br /&gt;&lt;/pre&gt;To verify the mysql servers are running and then:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;cd s9s-mysql-55/mysql/scripts/&lt;br /&gt;./start-repl.sh --master -i 1 -c  &lt;/pre&gt;&lt;br /&gt;The command above will do a CHANGE MASTER (-c) and  start replication from MySQL Server 1 to MySQL Server 2.&lt;br /&gt;&lt;br /&gt;This step is not automated since you may want to start bi-directional replication between the masters. In that case you do:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;./start-repl.sh --master -a -c&lt;/pre&gt;&lt;br /&gt;The slaves are then started with:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;./start-repl.sh --slave -a -c&lt;br /&gt;&lt;/pre&gt;Which means,  start all slaves (-a) and change master on those slaves.&lt;br /&gt;&lt;br /&gt;Then you can run&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;./repl-status.sh  -a&lt;br /&gt;serverid master_host --&amp;gt;slave_host status  master_status  slave_status [binlog|m_pos|exec_pos|lag]&lt;br /&gt;1      10.48.207.130 10.48.139.24 ok         binlog.000005:107 binlog.000005| 107| 107| 0&lt;br /&gt;2     replication not activated - you must start replication on this link.&lt;br /&gt;--- slaves follows ---&lt;br /&gt;3      10.48.139.24 10.49.122.56 ok         binlog.000005:107 binlog.000005| 107| 107| 0&lt;br /&gt;4      10.48.139.24 10.49.110.183 ok         binlog.000005:107 binlog.000005| 107| 107| 0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;We got two masters, and the master with server-id=1 replicates to server-id=2, and the master on server-id=2 replicates to the slaves (3 and 4).&lt;br /&gt;&lt;br /&gt;Now we are ready to provision data&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;./mysql.sh -h 10.48.207.130 -ppassword&lt;br /&gt;&lt;br /&gt;mysql&amp;gt; create table t1 (id integer auto_increment primary key, data varchar(255))engine=innodb;&lt;br /&gt;Query OK, 0 rows affected (0.02 sec)&lt;br /&gt;mysql&amp;gt; insert into t1(data) values('hello');&lt;br /&gt;&lt;/pre&gt;And we can check the replication status:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 100%; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px;"&gt;ubuntu@ip-10-49-122-115:~/s9s-mysql-55/mysql/scripts$ ./repl-status.sh -a&lt;br /&gt;serverid master_host --&amp;gt;slave_host status  master_status  slave_status [binlog|m_pos|exec_pos|lag]&lt;br /&gt;1      10.48.207.130 10.48.139.24 ok         binlog.000005:494 binlog.000005| 494| 494| 0&lt;br /&gt;2     replication not activated - you must start replication on this link.&lt;br /&gt;--- slaves follows ---&lt;br /&gt;3      10.48.139.24 10.49.122.56 ok         binlog.000005:485 binlog.000005| 485| 485| 0&lt;br /&gt;4      10.48.139.24 10.49.110.183 ok         binlog.000005:485 binlog.000005| 485| 485| 0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Good luck and don't hesitate to contact us at feedback@severalnines.com if you have any problems or whatever it may be. You can also &lt;a href="http://www.severalnines.com/book-demo-now"&gt;book a demo&lt;/a&gt; this if you want to know more.</description><link>http://johanandersson.blogspot.com/2011/04/setting-up-multi-master-and-read-slaves.html</link><author>noreply@blogger.com (Johan Andersson)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-OmNyf7FBULs/TaMQUiQ6zKI/AAAAAAAAAMI/JG7bjJBQXhU/s72-c/Slide1.jpg' height='72' width='72'/><thr:total>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-19281624.post-1861751624227483171</guid><pubDate>Thu, 07 Apr 2011 23:36:00 +0000</pubDate><atom:updated>2011-04-08T00:38:18.771+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>severalnines</category><title>Severalnines launch customer focused website</title><description>I am glad to announce our brand new website today (&lt;a class="moz-txt-link-abbreviated" href="http://www.severalnines.com/"&gt;www.severalnines.com&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The goal of the company is to make it easy for database developers to build their clustered database platforms, either on-premise or in the cloud.&lt;br /&gt;&lt;br /&gt;We invite you to explore the new resources on the website (white papers, videos, new configurator for MySQL Replication, new cluster configurator with cloud options, etc.).</description><link>http://johanandersson.blogspot.com/2011/04/severalnines-launch-customer-focused.html</link><author>noreply@blogger.com (Johan Andersson)</author><thr:total>1</thr:total></item></channel></rss>