Author: jstephens
Date: 2009-08-25 17:44:46 +0200 (Tue, 25 Aug 2009)
New Revision: 16268
Log:
Cluster FAQ: Updates and general revisions
Rebuilt dependencies
Modified:
trunk/refman-4.1/Makefile.depends
trunk/refman-4.1/mysql-cluster-faq.xml
trunk/refman-5.0/Makefile.depends
trunk/refman-5.0/faqs.xml
trunk/refman-5.1/faqs.xml
Modified: trunk/refman-4.1/Makefile.depends
===================================================================
--- trunk/refman-4.1/Makefile.depends 2009-08-25 15:13:34 UTC (rev 16267)
+++ trunk/refman-4.1/Makefile.depends 2009-08-25 15:44:46 UTC (rev 16268)
Changed blocks: 3, Lines Added: 12, Lines Deleted: 0; 1777 bytes
@@ -1997,6 +1997,10 @@
../refman-5.0/metadata/introduction.idmap \
../refman-5.0/metadata/sql-syntax-data-manipulation.idmap \
../refman-5.1/metadata/introduction.idmap \
+ ../refman-5.1/metadata/mysql-cluster-disk-data.idmap \
+ ../refman-5.1/metadata/mysql-cluster-management.idmap \
+ ../refman-5.1/metadata/mysql-cluster-replication.idmap \
+ ../refman-5.1/metadata/mysql-cluster-roadmap.idmap \
../refman-5.1/metadata/mysql-cluster.idmap \
../refman-5.4/metadata/introduction.idmap \
../refman-6.0/metadata/introduction.idmap \
@@ -2128,6 +2132,10 @@
mysql_cluster_faq_IDMAPS = \
../ndbapi/metadata/ndb-internals.idmap \
../ndbapi/metadata/overview.idmap \
+ ../refman-5.1/metadata/mysql-cluster-disk-data.idmap \
+ ../refman-5.1/metadata/mysql-cluster-management.idmap \
+ ../refman-5.1/metadata/mysql-cluster-replication.idmap \
+ ../refman-5.1/metadata/mysql-cluster-roadmap.idmap \
metadata/data-types.idmap \
metadata/mysql-cluster-configuration-core.idmap \
metadata/mysql-cluster-interconnects.idmap \
@@ -2447,6 +2455,10 @@
../ndbapi/metadata/ndb-errors.idmap \
../ndbapi/metadata/ndb-internals.idmap \
../ndbapi/metadata/overview.idmap \
+ ../refman-5.1/metadata/mysql-cluster-disk-data.idmap \
+ ../refman-5.1/metadata/mysql-cluster-management.idmap \
+ ../refman-5.1/metadata/mysql-cluster-replication.idmap \
+ ../refman-5.1/metadata/mysql-cluster-roadmap.idmap \
../refman-5.1/metadata/mysql-cluster.idmap \
../refman-common/metadata/bug-reports.idmap \
../refman-common/metadata/news-cluster.idmap \
Modified: trunk/refman-4.1/mysql-cluster-faq.xml
===================================================================
--- trunk/refman-4.1/mysql-cluster-faq.xml 2009-08-25 15:13:34 UTC (rev 16267)
+++ trunk/refman-4.1/mysql-cluster-faq.xml 2009-08-25 15:44:46 UTC (rev 16268)
Changed blocks: 44, Lines Added: 218, Lines Deleted: 183; 34523 bytes
@@ -26,7 +26,7 @@
with the assistance of Tomas Ulin, Mikael Ronström, Harrison Fisk,
Stewart Smith, Pekka Nousiainen, Jeb Miller, Jonas Oreland, Roland
Bouman, Martin Sköld, Johan Andersson, Monty Taylor, Magnus
- Svensson, Hartmut Holzgraefe, Geert Vanderkelen, Sean Pringle, and
+ Blåudd, Hartmut Holzgraefe, Geert Vanderkelen, Sean Pringle, and
other too numerous to mention.
</remark>
@@ -62,10 +62,9 @@
¤t-series; release series for operating systems on which
MySQL Cluster is available. See <xref linkend="mysqld"/>. You
can determine whether your server has
- <literal role="se">NDB</literal> support using either either
- of the statements <literal>SHOW VARIABLES LIKE
- 'have_%'</literal> or <literal role="stmt">SHOW
- ENGINES</literal>.
+ <literal role="se">NDB</literal> support using either of the
+ statements <literal>SHOW VARIABLES LIKE 'have_%'</literal> or
+ <literal role="stmt">SHOW ENGINES</literal>.
</para>
<para>
@@ -78,17 +77,16 @@
</para>
<para>
- However, you should use MySQL NDB Cluster NDB 6.2 or 6.3 for
+ However, you should use MySQL NDB Cluster NDB 6.3 or 7.0 for
new deployments, and if you are already using MySQL
¤t-series; with clustering support, to upgrade to one of
- these MySQL Cluster NDB 6.x release series. For an overview of
- improvements made in MySQL Cluster NDB 6.2 and 6.3, see
- <citetitle><ulink url="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-changes-5-1-ndb-6-2.html">MySQL
- 5.1 Manual: Features Added in MySQL Cluster NDB
- 6.2</ulink></citetitle>, and
- <citetitle><ulink url="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-changes-5-1-ndb-6-3.html">MySQL
- 5.1 Manual: Features Added in MySQL Cluster NDB
- 6.3</ulink></citetitle>.
+ these MySQL Cluster release series. For an overview of
+ improvements made in MySQL Cluster NDB 6.2, 6.3, and 7.0, see
+ <xref linkend="refman-5.1:mysql-cluster-changes-5-1-ndb-6-2"/>,
+ <xref linkend="refman-5.1:mysql-cluster-changes-5-1-ndb-6-3"/>,
+ and
+ <xref linkend="refman-5.1:mysql-cluster-changes-5-1-ndb-7-0"/>,
+ respectively.
</para>
</answer>
@@ -112,12 +110,17 @@
<answer>
<para>
- This stands for
+ <quote>NDB</quote> stands for
<quote><emphasis role="bold">N</emphasis>etwork
<emphasis role="bold">D</emphasis>ata<emphasis role="bold">b</emphasis>ase</quote>.
- <literal role="se">NDB</literal> (also known as
- <literal role="se">NDBCLUSTER</literal>) is the storage engine
- that enables clustering in MySQL.
+ <literal role="se">NDB</literal> and
+ <literal role="se">NDBCLUSTER</literal> are both names for the
+ storage engine that enables clustering support in MySQL.
+ Either name is equally correct; both names appear in our
+ documentation, and either name can be used in the
+ <literal>ENGINE</literal> option of a
+ <literal role="stmt">CREATE TABLE</literal> statement for
+ creating a MySQL Cluster table.
</para>
</answer>
@@ -130,7 +133,7 @@
<indexterm>
<primary>MySQL Cluster</primary>
- <secondary><foreignphrase>vs</foreignphrase> replication</secondary>
+ <secondary>vs replication</secondary>
</indexterm>
<para>
@@ -149,14 +152,14 @@
lag behind the master. This means that if the master fails, it
is possible that the slave might not have recorded the last
few transactions. If a transaction-safe engine such as
- <literal>InnoDB</literal> is being used, a transaction will
- either be complete on the slave or not applied at all, but
- replication does not guarantee that all data on the master and
- the slave will be consistent at all times. In MySQL Cluster,
- all data nodes are kept in synchrony, and a transaction
- committed by any one data node is committed for all data
- nodes. In the event of a data node failure, all remaining data
- nodes remain in a consistent state.
+ <literal role="se">InnoDB</literal> is being used, a
+ transaction will either be complete on the slave or not
+ applied at all, but replication does not guarantee that all
+ data on the master and the slave will be consistent at all
+ times. In MySQL Cluster, all data nodes are kept in synchrony,
+ and a transaction committed by any one data node is committed
+ for all data nodes. In the event of a data node failure, all
+ remaining data nodes remain in a consistent state.
</para>
<para>
@@ -167,14 +170,14 @@
<para>
We have implemented (asynchronous) replication for Cluster in
- MySQL 5.1 and MySQL Cluster NDB 6.x. This includes the
- capability to replicate both between two clusters, and from a
- MySQL cluster to a non-Cluster MySQL server. However, we do
- not plan to backport this functionality to MySQL
- ¤t-series;. See
- <citetitle><ulink url="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-replication.html">MySQL
- 5.1 Manual: MySQL Cluster Replication</ulink></citetitle>, for
- more information.
+ MySQL 5.1 and later. <firstterm>MySQL Cluster
+ Replication</firstterm> (also sometimes known as
+ <quote>geo-replication</quote>) includes the capability to
+ replicate both between two MySQL Clusters, and from a MySQL
+ Cluster to a non-Cluster MySQL server. However, we do
+ <emphasis>not</emphasis> plan to backport this functionality
+ to MySQL ¤t-series;. See
+ <xref linkend="refman-5.1:mysql-cluster-replication"/>.
</para>
</answer>
@@ -239,11 +242,10 @@
<para>
A minimum of three computers is required to run a viable
- cluster. However, the minimum
- <emphasis role="bold">recommended</emphasis> number of
- computers in a MySQL Cluster is four: one each to run the
- management and SQL nodes, and two computers to serve as data
- nodes. The purpose of the two data nodes is to provide
+ cluster. However, the minimum <emphasis>recommended</emphasis>
+ number of computers in a MySQL Cluster is four: one each to
+ run the management and SQL nodes, and two computers to serve
+ as data nodes. The purpose of the two data nodes is to provide
redundancy; the management node must run on a separate machine
to guarantee continued arbitration services in the event that
one of the data nodes fails.
@@ -307,6 +309,9 @@
node server is implemented as the application
<command>ndb_mgmd</command>; the management client used
to control MySQL Cluster is <command>ndb_mgm</command>.
+ See <xref linkend="mysql-cluster-programs-ndb-mgmd"/>,
+ and <xref linkend="mysql-cluster-programs-ndb-mgm"/>,
+ for information about these programs.
</para>
</formalpara>
@@ -321,7 +326,8 @@
This type of node stores and replicates data. Data node
functionality is handled by instances of the
<literal role="se">NDB</literal> data node process
- <command>ndbd</command>.
+ <command>ndbd</command>. For more information, see
+ <xref linkend="mysql-cluster-programs-ndbd"/>.
</para>
</formalpara>
@@ -356,8 +362,9 @@
write such applications (that do not depend on a MySQL
Server) using the NDB API, which supplies a direct,
object-oriented transaction and scanning interface to
- Cluster data; see <xref linkend="overview-ndb-api"/>,
- for more information.
+ MySQL Cluster data; see
+ <xref linkend="overview-ndb-api"/>, for more
+ information.
</para>
</note>
</listitem>
@@ -384,7 +391,7 @@
</para>
<programlisting>
-id=2 @10.100.10.32 (Version: &mysql-cluster-current-6.3;, Nodegroup: 0, Master)
+id=2 @10.100.10.32 (Version: ¤t-version;, Nodegroup: 0, Master)
</programlisting>
<para>
@@ -478,15 +485,19 @@
<para>
MySQL Cluster is supported on most Unix-like operating
- systems, including Linux, Mac OS X, Solaris, and HP-UX. MySQL
- Cluster is <emphasis>not</emphasis> supported on Windows at
- this time. We are working to add MySQL Cluster support for
- other platforms, including Windows; eventually we intend to
- offer MySQL Cluster on all platforms for which MySQL itself is
- supported.
+ systems, including Linux, Mac OS X, and Solaris. Beginning
+ with MySQL Cluster NDB 6.4, it is also possible to run MySQL
+ Cluster on Windows platforms on an experimental basis; we hope
+ to release a GA version for Windows in MySQL Cluster NDB 7.1.
</para>
<para>
+ We are continuing to work on providing MySQL Cluster support
+ for additional platforms; eventually we intend to offer MySQL
+ Cluster on all platforms for which MySQL itself is supported.
+ </para>
+
+ <para>
For more detailed information concerning the level of support
which is offered for MySQL Cluster on various operating system
versions, OS distributions, and hardware platforms, please
@@ -518,15 +529,19 @@
<para>
MySQL Cluster should run on any platform for which
<literal role="se">NDB</literal>-enabled binaries are
- available. For data nodes, faster CPUs and more memory are
- likely to improve performance, and 64-bit CPUs are likely to
- be more effective than 32-bit processors. There must be
- sufficient memory on machines used for data nodes to hold each
- node's share of the database (see <emphasis>How much RAM do I
- Need?</emphasis> for more information). Nodes can communicate
- via a standard TCP/IP network and hardware. For SCI support,
- special networking hardware is required (see
- <xref linkend="mysql-cluster-interconnects"/>).
+ available. For data nodes and API nodes, faster CPUs and more
+ memory are likely to improve performance, and 64-bit CPUs are
+ likely to be more effective than 32-bit processors. There must
+ be sufficient memory on machines used for data nodes to hold
+ each node's share of the database (see <emphasis>How much RAM
+ do I Need?</emphasis> for more information). For a computer
+ which is used only for running the MySQL Cluster management
+ server, the requirements are minimal; a common desktop PC (or
+ the equivalent) is generally sufficient for this task. Nodes
+ can communicate via the standard TCP/IP network and hardware.
+ They can also use the high-speed SCI protocol; however,
+ special networking hardware and software are required to use
+ SCI (see <xref linkend="mysql-cluster-interconnects"/>).
</para>
</answer>
@@ -575,13 +590,11 @@
</para>
<para>
- (We have implemented disk data storage for MySQL Cluster in
- MySQL 5.1, including MySQL Cluster NDB 6.2 and 6.3, but we
- have no plans to add this capability in MySQL
- ¤t-series;. See
- <citetitle><ulink url="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-disk-data.html">MySQL
- 5.1 Manual: MySQL Cluster Disk Data
- Tables</ulink></citetitle>, for more information.)
+ We have implemented disk data storage for MySQL Cluster in
+ MySQL 5.1 and later but we have no plans to add this
+ capability in MySQL ¤t-series;. See
+ <xref linkend="refman-5.1:mysql-cluster-disk-data"/>, for more
+ information.
</para>
<para>
@@ -676,7 +689,7 @@
<para>
When calculating Cluster memory requirements, you may find
- useful the <filename>ndb_size.pl</filename> utility which is
+ useful the <command>ndb_size.pl</command> utility which is
available in recent MySQL ¤t-series; releases. This Perl
script connects to a current (non-Cluster) MySQL database and
creates a report on how much space that database would require
@@ -689,8 +702,8 @@
It is especially important to keep in mind that
<emphasis>every MySQL Cluster table must have a primary
key</emphasis>. The <literal role="se">NDB</literal> storage
- engine creates a primary key automatically if none is defined,
- and this primary key is created without <literal>USING
+ engine creates a primary key automatically if none is defined;
+ this primary key is created without <literal>USING
HASH</literal>.
</para>
@@ -759,7 +772,7 @@
<indexterm>
<primary>MySQL Cluster</primary>
- <secondary>using in a virtual machine</secondary>
+ <secondary>and virtual machines</secondary>
</indexterm>
<para>
@@ -799,13 +812,13 @@
<question>
<indexterm>
- <primary><errortext>Table is full</errortext> error</primary>
+ <primary>Table is full errors</primary>
<secondary>MySQL Cluster</secondary>
</indexterm>
<indexterm>
<primary>MySQL Cluster</primary>
- <secondary><errortext>Table is full</errortext> error</secondary>
+ <secondary>Table is full errors</secondary>
</indexterm>
<para>
@@ -921,9 +934,10 @@
<answer>
<para>
- No. Although some specialized commands are used to manage and
- configure the cluster itself, only standard (My)SQL queries
- and commands are required for the following operations:
+ <emphasis>No</emphasis>. Although some specialized commands
+ are used to manage and configure the cluster itself, only
+ standard (My)SQL statements are required for the following
+ operations:
</para>
<itemizedlist>
@@ -1006,8 +1020,7 @@
From within the <command>mysql</command> client, use
<command>SHOW ERRORS</command> or <command>SHOW
WARNINGS</command> immediately upon being notified of the
- error or warning condition. Errors and warnings also be
- displayed in MySQL Query Browser.
+ error or warning condition.
</para>
</listitem>
@@ -1048,7 +1061,7 @@
<answer>
<para>
- <emphasis>Yes</emphasis>: For tables created with the
+ <emphasis>Yes</emphasis>. For tables created with the
<literal role="se">NDB</literal> storage engine, transactions
are supported. Currently, MySQL Cluster supports only the
<literal role="isolevel">READ COMMITTED</literal> transaction
@@ -1082,12 +1095,13 @@
<para>
It is possible to create tables using other storage engines
- (such as <literal>MyISAM</literal> or
- <literal>InnoDB</literal>) on a MySQL server being used with a
- MySQL Cluster, but these non-<literal role="se">NDB</literal>
- tables do <emphasis>not</emphasis> participate in clustering;
- they are strictly local to the individual MySQL server
- instance on which they are created.
+ (such as <literal role="se">MyISAM</literal> or
+ <literal role="se">InnoDB</literal>) on a MySQL server being
+ used with a MySQL Cluster, but these
+ non-<literal role="se">NDB</literal> tables do
+ <emphasis>not</emphasis> participate in clustering; each such
+ table is strictly local to the individual MySQL server
+ instance on which it is created.
</para>
</answer>
@@ -1126,8 +1140,8 @@
<question>
<para>
- Is it possible to use <literal>FULLTEXT</literal> indexes with
- MySQL Cluster?
+ Is it possible to use <literal role="type">FULLTEXT</literal>
+ indexes with MySQL Cluster?
</para>
</question>
@@ -1135,10 +1149,10 @@
<answer>
<para>
- <literal>FULLTEXT</literal> indexing is not supported by any
- storage engine other than <literal>MyISAM</literal>. We are
- working to add this capability to MySQL Cluster tables in a
- future release.
+ <literal role="type">FULLTEXT</literal> indexing is not
+ supported by any storage engine other than
+ <literal role="se">MyISAM</literal>. We are working to add
+ this capability to MySQL Cluster tables in a future release.
</para>
</answer>
@@ -1168,10 +1182,11 @@
expense of an extra machine or two is well worth it to
safeguard mission-critical data. It also worth noting that the
requirements for a cluster host running a management node are
- minimal. This task can be accomplished with a 200 MHz Pentium
- CPU and sufficient RAM for the operating system plus a small
- amount of overhead for the <command>ndb_mgmd</command> and
- <command>ndb_mgm</command> processes.
+ minimal. This task can be accomplished with a 300 MHz Pentium
+ or equivalent CPU and sufficient RAM for the operating system,
+ plus a small amount of overhead for the
+ <command>ndb_mgmd</command> and <command>ndb_mgm</command>
+ processes.
</para>
<para>
@@ -1198,9 +1213,10 @@
<answer>
<para>
- Not at present. A rolling restart is all that is required for
- adding new management or SQL nodes to a MySQL Cluster (see
- <xref linkend="mysql-cluster-rolling-restart"/>). Adding data
+ Not in MySQL ¤t-series;. While a rolling restart is all
+ that is required for adding new management or API nodes to a
+ MySQL Cluster (see
+ <xref linkend="mysql-cluster-rolling-restart"/>), adding data
nodes is more complex, and requires the following steps:
</para>
@@ -1245,13 +1261,16 @@
</orderedlist>
- <para>
- In a future MySQL Cluster release series, we hope to implement
- a <quote>hot</quote> reconfiguration capability for MySQL
- Cluster to minimize (if not eliminate) the requirement for
- restarting the cluster when adding new nodes. However, this is
- not planned for MySQL ¤t-series;.
- </para>
+ <note>
+ <para>
+ Beginning with MySQL Cluster NDB 6.4, it is possible to add
+ new data nodes to a running MySQL Cluster without taking it
+ offline. For more information, see
+ <xref linkend="refman-5.1:mysql-cluster-online-add-node"/>.
+ However, we do not plan to add this capability in MySQL
+ ¤t-series;.
+ </para>
+ </note>
</answer>
@@ -1289,13 +1308,20 @@
<listitem>
<para>
- <literal>FULLTEXT</literal> indexes and index prefixes are
- not supported. Only complete columns may be indexed.
+ <literal role="se">FULLTEXT</literal> indexes are not
+ supported.
</para>
</listitem>
<listitem>
<para>
+ Index prefixes are not supported. Only complete columns
+ may be indexed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
In MySQL ¤t-series;, MySQL Cluster does not support
spatial data types or spatial indexes. See
<xref linkend="spatial-extensions"/>.
@@ -1337,10 +1363,10 @@
<para>
The <literal role="se">NDB</literal> engine does not
support foreign key constraints. As with
- <literal>MyISAM</literal> tables, if these are specified
- in a <literal role="stmt">CREATE TABLE</literal> or
- <literal role="stmt">ALTER TABLE</literal> statement, they
- are ignored.
+ <literal role="se">MyISAM</literal> tables, if these are
+ specified in a <literal role="stmt">CREATE TABLE</literal>
+ or <literal role="stmt">ALTER TABLE</literal> statement,
+ they are ignored.
</para>
</listitem>
@@ -1385,19 +1411,16 @@
</para>
<para>
- It is also possible to convert existing tables using other
+ It is also possible to convert existing tables that use other
storage engines to <literal role="se">NDBCLUSTER</literal>
using one or more <literal role="stmt">ALTER TABLE</literal>
statement. However, the definition of the table must be
compatible with the <literal role="se">NDBCLUSTER</literal>
storage engine prior to making the conversion. In MySQL
- ¤t-series;, an additional workaround is also required.
+ ¤t-series;, an additional workaround is also required;
+ see <xref linkend="mysql-cluster-limitations"/>, for details.
</para>
- <para>
- See <xref linkend="mysql-cluster-limitations"/>, for details.
- </para>
-
</answer>
</qandaentry>
@@ -1453,46 +1476,49 @@
<answer>
<para>
- If one or more nodes in a cluster fail, it is possible that
- not all cluster nodes will be able to <quote>see</quote> one
- another. In fact, it is possible that two sets of nodes might
- become isolated from one another in a network partitioning,
- also known as a <quote>split brain</quote> scenario. This type
- of situation is undesirable because each set of nodes tries to
- behave as though it is the entire cluster.
+ If one or more data nodes in a cluster fail, it is possible
+ that not all cluster data nodes will be able to
+ <quote>see</quote> one another. In fact, it is possible that
+ two sets of data nodes might become isolated from one another
+ in a network partitioning, also known as a
+ <quote>split-brain</quote> scenario. This type of situation is
+ undesirable because each set of data nodes tries to behave as
+ though it is the entire cluster.
</para>
<para>
- When cluster nodes go down, there are two possibilities. If
- more than 50% of the remaining nodes can communicate with each
- other, we have what is sometimes called a <quote>majority
- rules</quote> situation, and this set of nodes is considered
- to be the cluster. The arbitrator comes into play when there
- is an even number of nodes: in such cases, the set of nodes to
- which the arbitrator belongs is considered to be the cluster,
- and nodes not belonging to this set are shut down.
+ When cluster data nodes go down, there are two possibilities.
+ If more than 50% of the remaining data nodes can communicate
+ with each other, we have what is sometimes called a
+ <quote>majority rules</quote> situation, and this set of data
+ nodes is considered to be the cluster. The arbitrator comes
+ into play when there is an even number of data nodes: in such
+ cases, the set of nodes to which the arbitrator belongs is
+ considered to be the cluster, and any data or management nodes
+ not belonging to this set are shut down.
</para>
<para>
The preceding information is somewhat simplified. A more
- complete explanation taking into account node groups follows:
+ complete explanation taking node groups into account follows:
</para>
<para>
- When all nodes in at least one node group are alive, network
- partitioning is not an issue, because no one portion of the
- cluster can form a functional cluster. The real problem arises
- when no single node group has all its nodes alive, in which
- case network partitioning (the <quote>split-brain</quote>
- scenario) becomes possible. Then an arbitrator is required.
- All cluster nodes recognize the same node as the arbitrator,
- which is normally the management server; however, it is
- possible to configure any of the MySQL Servers in the cluster
- to act as the arbitrator instead. The arbitrator accepts the
- first set of cluster nodes to contact it, and tells the
- remaining set to shut down. Arbitrator selection is controlled
- by the <literal>ArbitrationRank</literal> configuration
- parameter for MySQL Server and management server nodes. (See
+ When all data nodes in at least one node group are alive,
+ network partitioning is not an issue, because no single subset
+ of the cluster can form a functional cluster on its own. The
+ real problem arises when no single node group has all its
+ nodes alive, in which case network partitioning (the
+ <quote>split-brain</quote> scenario) becomes possible. Then an
+ arbitrator is required. All cluster nodes recognize the same
+ node as the arbitrator, which is normally the management
+ server; however, it is possible to configure any of the MySQL
+ Servers in the cluster to act as the arbitrator instead. The
+ arbitrator accepts the first set of cluster nodes to contact
+ it, and tells the remaining set to shut down. Arbitrator
+ selection is controlled by the
+ <literal>ArbitrationRank</literal> configuration parameter for
+ MySQL Server and management server nodes. (See
<xref linkend="mysql-cluster-mgm-definition"/>, for details.)
</para>
@@ -1529,7 +1555,7 @@
usual MySQL data types, except for those associated with
MySQL's spatial extensions. (Spatial data types and
spatial indexes are supported only by
- <literal>MyISAM</literal>; see
+ <literal role="se">MyISAM</literal>; see
<xref linkend="spatial-extensions"/>, for more information.)
In addition, there are some differences with regard to indexes
when used with <literal role="se">NDB</literal> tables.
@@ -1537,14 +1563,17 @@
<note>
<para>
- MySQL Cluster tables (that is, tables created with
+ In MySQL ¤t-series;, MySQL Cluster tables (that is,
+ tables created with <literal>ENGINE=NDB</literal> or
<literal>ENGINE=NDBCLUSTER</literal>) have only fixed-width
rows. This means that (for example) each record containing a
- <literal>VARCHAR(255)</literal> column will require space
- for 255 characters (as required for the character set and
- collation being used for the table), regardless of the
- actual number of characters stored therein. This issue is
- expected to be fixed in a future MySQL release series.
+ <literal role="type" condition="varchar">VARCHAR(255)</literal>
+ column will require space for 255 characters (as required
+ for the character set and collation being used for the
+ table), regardless of the actual number of characters stored
+ therein. This issue is fixed in MySQL 5.1 and later;
+ however, we do not plan to backport this functionality to
+ MySQL ¤t-series;.
</para>
</note>
@@ -1589,8 +1618,9 @@
<para>
You must include the <option>-f</option> or
- <option>--config-file</option> option to tell the
- management node where its configuration file can be found.
+ <option role="ndb_mgmd">--config-file</option> option to
+ tell the management node where its configuration file can
+ be found.
</para>
</listitem>
@@ -1602,9 +1632,10 @@
<para>
Each data node must be started with the
- <option>-c</option> or <option>--connect-string</option>
- option so that the data node knows how to connect to the
- management server.
+ <option>-c</option> or
+ <option role="ndbd">--connect-string</option> option so
+ that the data node knows how to connect to the management
+ server.
</para>
</listitem>
@@ -1617,8 +1648,8 @@
<para>
Each MySQL Server must be started with the
<option role="mysqld">--ndbcluster</option> and
- <option>--ndb-connectstring</option> options. These
- options cause mysqld to enable
+ <option role="mysqld">--ndb-connectstring</option>
+ options. These options cause mysqld to enable
<literal role="se">NDBCLUSTER</literal> storage engine
support and how to connect to the management server.
</para>
@@ -1634,8 +1665,8 @@
is running by starting the <literal role="se">NDB</literal>
management client <command>ndb_mgm</command> on the machine
housing the management node and issuing the
- <literal role="ndb_mgm_cmd">SHOW</literal> or <literal>ALL
- STATUS</literal> command.
+ <literal>SHOW</literal> or <literal>ALL STATUS</literal>
+ command.
</para>
<para>
@@ -1650,16 +1681,19 @@
</programlisting>
<para>
- (The quotation marks are optional; in addition, the
- <literal>SHUTDOWN</literal> command is not case-sensitive.)
+ (The quotation marks in this example are optional, since there
+ are no spaces in the command string following the
+ <option>-e</option> option; in addition, the
+ <literal>SHUTDOWN</literal> command, like other management
+ client commands, is not case-sensitive.)
</para>
<para>
Either of these commands causes the
<command>ndb_mgm</command>, <command>ndb_mgm</command>, and
any <command>ndbd</command> processes to terminate gracefully.
- MySQL servers running as Cluster SQL nodes can be stopped
- using <command>mysqladmin shutdown</command>.
+ MySQL servers running as SQL nodes can be stopped using
+ <command>mysqladmin shutdown</command>.
</para>
<para>
@@ -1747,9 +1781,9 @@
</para>
<para>
- It is also possible to use software different MySQL Cluster
- releases on different nodes. However, we support this only as
- part of a rolling upgrade procedure (see
+ It is also possible to use software from different MySQL
+ Cluster releases on different nodes. However, we support this
+ only as part of a rolling upgrade procedure (see
<xref linkend="mysql-cluster-rolling-restart"/>).
</para>
@@ -1775,9 +1809,9 @@
a different data directory. If you want to run multiple SQL
nodes on one machine, each instance of
<command>mysqld</command> must use a different TCP/IP port.
- However, running more than one cluster node of a given type
- per machine is generally not encouraged or supported for
- production use.
+ However, in MySQL ¤t-series;, running more than one
+ cluster node of a given type per machine is generally not
+ encouraged or supported for production use.
</para>
<para>
@@ -1806,10 +1840,10 @@
<para>
Yes, it is possible to use DNS and DHCP for cluster hosts.
However, if your application requires <quote>five
- nines</quote> availability, use fixed (numeric) IP addresses.
- Making communication between Cluster hosts dependent on
- services such as DNS and DHCP introduces additional potential
- points of failure.
+ nines</quote> availability, you should use fixed (numeric) IP
+ addresses, since making communication between Cluster hosts
+ dependent on services such as DNS and DHCP introduces
+ additional potential points of failure.
</para>
</answer>
@@ -1830,11 +1864,12 @@
<answer>
<para>
- MySQL user accounts and privileges are not automatically
- propagated between different MySQL servers accessing the same
- MySQL Cluster. Therefore, you must make sure that these are
- copied between the SQL nodes yourself. You can do this
- manually, or automate the task with scripts.
+ MySQL user accounts and privileges are
+ <emphasis>not</emphasis> automatically propagated between
+ different MySQL servers accessing the same MySQL Cluster.
+ Therefore, you must make sure that these are copied between
+ the SQL nodes yourself. You can do this manually, or automate
+ the task with scripts.
</para>
<warning>
@@ -1842,8 +1877,8 @@
Do not attempt to work around this issue by converting the
MySQL system tables to use the
<literal role="se">NDBCLUSTER</literal> storage engine. Only
- the <literal>MyISAM</literal> storage engine is supported
- for these tables.
+ the <literal role="se">MyISAM</literal> storage engine is
+ supported for these tables.
</para>
</warning>
Modified: trunk/refman-5.0/Makefile.depends
===================================================================
--- trunk/refman-5.0/Makefile.depends 2009-08-25 15:13:34 UTC (rev 16267)
+++ trunk/refman-5.0/Makefile.depends 2009-08-25 15:44:46 UTC (rev 16268)
Changed blocks: 2, Lines Added: 2, Lines Deleted: 0; 1029 bytes
@@ -2315,6 +2315,7 @@
../ndbapi/metadata/ndb-internals.idmap \
../ndbapi/metadata/overview.idmap \
../refman-5.1/metadata/mysql-cluster-disk-data.idmap \
+ ../refman-5.1/metadata/mysql-cluster-management.idmap \
../refman-5.1/metadata/mysql-cluster-replication.idmap \
../refman-5.1/metadata/mysql-cluster-roadmap.idmap \
../refman-5.1/metadata/replication-configuration.idmap \
@@ -3629,6 +3630,7 @@
../refman-5.1/metadata/errors-problems-core.idmap \
../refman-5.1/metadata/introduction.idmap \
../refman-5.1/metadata/mysql-cluster-disk-data.idmap \
+ ../refman-5.1/metadata/mysql-cluster-management.idmap \
../refman-5.1/metadata/mysql-cluster-replication.idmap \
../refman-5.1/metadata/mysql-cluster-roadmap.idmap \
../refman-5.1/metadata/mysql-cluster.idmap \
Modified: trunk/refman-5.0/faqs.xml
===================================================================
--- trunk/refman-5.0/faqs.xml 2009-08-25 15:13:34 UTC (rev 16267)
+++ trunk/refman-5.0/faqs.xml 2009-08-25 15:44:46 UTC (rev 16268)
Changed blocks: 44, Lines Added: 221, Lines Deleted: 186; 34839 bytes
@@ -3145,7 +3145,7 @@
with the assistance of Tomas Ulin, Mikael Ronström, Harrison
Fisk, Stewart Smith, Pekka Nousiainen, Jeb Miller, Jonas Oreland,
Roland Bouman, Martin Sköld, Johan Andersson, Monty Taylor,
- Magnus Svensson, Hartmut Holzgraefe, Geert Vanderkelen, Sean
+ Magnus Blåudd, Hartmut Holzgraefe, Geert Vanderkelen, Sean
Pringle, and other too numerous to mention.
</remark>
@@ -3211,25 +3211,19 @@
</para>
<para>
- However, you should use MySQL NDB Cluster NDB 6.2 or 6.3 for
+ However, you should use MySQL NDB Cluster NDB 6.3 or 7.0 for
new deployments, and if you are already using MySQL
¤t-series; with clustering support, to upgrade to one
- of these MySQL Cluster NDB 6.x release series. For an
- overview of improvements made in MySQL Cluster NDB 6.2 and
- 6.3, see
+ of these MySQL Cluster release series. For an overview of
+ improvements made in MySQL Cluster NDB 6.2, 6.3, and 7.0,
+ see
<xref linkend="refman-5.1:mysql-cluster-changes-5-1-ndb-6-2"/>,
+ <xref linkend="refman-5.1:mysql-cluster-changes-5-1-ndb-6-3"/>,
and
- <xref linkend="refman-5.1:mysql-cluster-changes-5-1-ndb-6-3"/>.
+ <xref linkend="refman-5.1:mysql-cluster-changes-5-1-ndb-7-0"/>,
+ respectively.
</para>
- <para>
- MySQL Cluster NDB 7.0 is the next MySQL Cluster release
- series following MySQL Cluster NDB 6.3; currently, it is in
- Beta development phase, available as source code only. For
- information about MySQL Cluster NDB 7.0, see
- <xref linkend="refman-5.1:mysql-cluster-changes-5-1-ndb-7-0"/>.
- </para>
-
</answer>
</qandaentry>
@@ -3251,12 +3245,17 @@
<answer>
<para>
- This stands for
+ <quote>NDB</quote> stands for
<quote><emphasis role="bold">N</emphasis>etwork
<emphasis role="bold">D</emphasis>ata<emphasis role="bold">b</emphasis>ase</quote>.
- <literal role="se">NDB</literal> (also known as
- <literal role="se">NDBCLUSTER</literal>) is the storage
- engine that enables clustering in MySQL.
+ <literal role="se">NDB</literal> and
+ <literal role="se">NDBCLUSTER</literal> are both names for
+ the storage engine that enables clustering support in MySQL.
+ Either name is equally correct; both names appear in our
+ documentation, and either name can be used in the
+ <literal>ENGINE</literal> option of a
+ <literal role="stmt">CREATE TABLE</literal> statement for
+ creating a MySQL Cluster table.
</para>
</answer>
@@ -3269,7 +3268,7 @@
<indexterm>
<primary>MySQL Cluster</primary>
- <secondary><foreignphrase>vs</foreignphrase> replication</secondary>
+ <secondary>vs replication</secondary>
</indexterm>
<para>
@@ -3288,14 +3287,15 @@
lag behind the master. This means that if the master fails,
it is possible that the slave might not have recorded the
last few transactions. If a transaction-safe engine such as
- <literal>InnoDB</literal> is being used, a transaction will
- either be complete on the slave or not applied at all, but
- replication does not guarantee that all data on the master
- and the slave will be consistent at all times. In MySQL
- Cluster, all data nodes are kept in synchrony, and a
- transaction committed by any one data node is committed for
- all data nodes. In the event of a data node failure, all
- remaining data nodes remain in a consistent state.
+ <literal role="se">InnoDB</literal> is being used, a
+ transaction will either be complete on the slave or not
+ applied at all, but replication does not guarantee that all
+ data on the master and the slave will be consistent at all
+ times. In MySQL Cluster, all data nodes are kept in
+ synchrony, and a transaction committed by any one data node
+ is committed for all data nodes. In the event of a data node
+ failure, all remaining data nodes remain in a consistent
+ state.
</para>
<para>
@@ -3306,11 +3306,13 @@
<para>
We have implemented (asynchronous) replication for Cluster
- in MySQL 5.1 and MySQL Cluster NDB 6.x. This includes the
- capability to replicate both between two clusters, and from
- a MySQL cluster to a non-Cluster MySQL server. However, we
- do not plan to backport this functionality to MySQL
- ¤t-series;. See
+ in MySQL 5.1 and later. <firstterm>MySQL Cluster
+ Replication</firstterm> (also sometimes known as
+ <quote>geo-replication</quote>) includes the capability to
+ replicate both between two MySQL Clusters, and from a MySQL
+ Cluster to a non-Cluster MySQL server. However, we do
+ <emphasis>not</emphasis> plan to backport this functionality
+ to MySQL ¤t-series;. See
<xref linkend="refman-5.1:mysql-cluster-replication"/>.
</para>
@@ -3378,13 +3380,13 @@
<para>
A minimum of three computers is required to run a viable
cluster. However, the minimum
- <emphasis role="bold">recommended</emphasis> number of
- computers in a MySQL Cluster is four: one each to run the
- management and SQL nodes, and two computers to serve as data
- nodes. The purpose of the two data nodes is to provide
- redundancy; the management node must run on a separate
- machine to guarantee continued arbitration services in the
- event that one of the data nodes fails.
+ <emphasis>recommended</emphasis> number of computers in a
+ MySQL Cluster is four: one each to run the management and
+ SQL nodes, and two computers to serve as data nodes. The
+ purpose of the two data nodes is to provide redundancy; the
+ management node must run on a separate machine to guarantee
+ continued arbitration services in the event that one of the
+ data nodes fails.
</para>
<para>
@@ -3445,7 +3447,10 @@
node server is implemented as the application
<command>ndb_mgmd</command>; the management client
used to control MySQL Cluster is
- <command>ndb_mgm</command>.
+ <command>ndb_mgm</command>. See
+ <xref linkend="mysql-cluster-programs-ndb-mgmd"/>, and
+ <xref linkend="mysql-cluster-programs-ndb-mgm"/>, for
+ information about these programs.
</para>
</formalpara>
@@ -3460,7 +3465,8 @@
This type of node stores and replicates data. Data
node functionality is handled by instances of the
<literal role="se">NDB</literal> data node process
- <command>ndbd</command>.
+ <command>ndbd</command>. For more information, see
+ <xref linkend="mysql-cluster-programs-ndbd"/>.
</para>
</formalpara>
@@ -3495,8 +3501,9 @@
write such applications (that do not depend on a MySQL
Server) using the NDB API, which supplies a direct,
object-oriented transaction and scanning interface to
- Cluster data; see <xref linkend="overview-ndb-api"/>,
- for more information.
+ MySQL Cluster data; see
+ <xref linkend="overview-ndb-api"/>, for more
+ information.
</para>
</note>
</listitem>
@@ -3523,7 +3530,7 @@
</para>
<programlisting>
-id=2 @10.100.10.32 (Version: &mysql-cluster-current-6.3;, Nodegroup: 0, Master)
+id=2 @10.100.10.32 (Version: ¤t-version;, Nodegroup: 0, Master)
</programlisting>
<para>
@@ -3618,15 +3625,21 @@
<para>
MySQL Cluster is supported on most Unix-like operating
- systems, including Linux, Mac OS X, Solaris, and HP-UX.
- MySQL Cluster is <emphasis>not</emphasis> supported on
- Windows at this time. We are working to add MySQL Cluster
- support for other platforms, including Windows; eventually
- we intend to offer MySQL Cluster on all platforms for which
- MySQL itself is supported.
+ systems, including Linux, Mac OS X, and Solaris. Beginning
+ with MySQL Cluster NDB 6.4, it is also possible to run MySQL
+ Cluster on Windows platforms on an experimental basis; we
+ hope to release a GA version for Windows in MySQL Cluster
+ NDB 7.1.
</para>
<para>
+ We are continuing to work on providing MySQL Cluster support
+ for additional platforms; eventually we intend to offer
+ MySQL Cluster on all platforms for which MySQL itself is
+ supported.
+ </para>
+
+ <para>
For more detailed information concerning the level of
support which is offered for MySQL Cluster on various
operating system versions, OS distributions, and hardware
@@ -3659,14 +3672,19 @@
<para>
MySQL Cluster should run on any platform for which
<literal role="se">NDB</literal>-enabled binaries are
- available. For data nodes, faster CPUs and more memory are
- likely to improve performance, and 64-bit CPUs are likely to
- be more effective than 32-bit processors. There must be
- sufficient memory on machines used for data nodes to hold
- each node's share of the database (see <emphasis>How much
- RAM do I Need?</emphasis> for more information). Nodes can
- communicate via a standard TCP/IP network and hardware. For
- SCI support, special networking hardware is required (see
+ available. For data nodes and API nodes, faster CPUs and
+ more memory are likely to improve performance, and 64-bit
+ CPUs are likely to be more effective than 32-bit processors.
+ There must be sufficient memory on machines used for data
+ nodes to hold each node's share of the database (see
+ <emphasis>How much RAM do I Need?</emphasis> for more
+ information). For a computer which is used only for running
+ the MySQL Cluster management server, the requirements are
+ minimal; a common desktop PC (or the equivalent) is
+ generally sufficient for this task. Nodes can communicate
+ via the standard TCP/IP network and hardware. They can also
+ use the high-speed SCI protocol; however, special networking
+ hardware and software are required to use SCI (see
<xref linkend="mysql-cluster-interconnects"/>).
</para>
@@ -3716,12 +3734,11 @@
</para>
<para>
- (We have implemented disk data storage for MySQL Cluster in
- MySQL 5.1, including MySQL Cluster NDB 6.2 and 6.3, but we
- have no plans to add this capability in MySQL
- ¤t-series;. See
+ We have implemented disk data storage for MySQL Cluster in
+ MySQL 5.1 and later but we have no plans to add this
+ capability in MySQL ¤t-series;. See
<xref linkend="refman-5.1:mysql-cluster-disk-data"/>, for
- more information.)
+ more information.
</para>
<para>
@@ -3816,7 +3833,7 @@
<para>
When calculating Cluster memory requirements, you may find
- useful the <filename>ndb_size.pl</filename> utility which is
+ useful the <command>ndb_size.pl</command> utility which is
available in recent MySQL ¤t-series; releases. This
Perl script connects to a current (non-Cluster) MySQL
database and creates a report on how much space that
@@ -3831,8 +3848,8 @@
<emphasis>every MySQL Cluster table must have a primary
key</emphasis>. The <literal role="se">NDB</literal> storage
engine creates a primary key automatically if none is
- defined, and this primary key is created without
- <literal>USING HASH</literal>.
+ defined; this primary key is created without <literal>USING
+ HASH</literal>.
</para>
<para>
@@ -3900,7 +3917,7 @@
<indexterm>
<primary>MySQL Cluster</primary>
- <secondary>using in a virtual machine</secondary>
+ <secondary>and virtual machines</secondary>
</indexterm>
<para>
@@ -3940,13 +3957,13 @@
<question>
<indexterm>
- <primary><errortext>Table is full</errortext> error</primary>
+ <primary>Table is full errors</primary>
<secondary>MySQL Cluster</secondary>
</indexterm>
<indexterm>
<primary>MySQL Cluster</primary>
- <secondary><errortext>Table is full</errortext> error</secondary>
+ <secondary>Table is full errors</secondary>
</indexterm>
<para>
@@ -4063,9 +4080,9 @@
<answer>
<para>
- No. Although some specialized commands are used to manage
- and configure the cluster itself, only standard (My)SQL
- queries and commands are required for the following
+ <emphasis>No</emphasis>. Although some specialized commands
+ are used to manage and configure the cluster itself, only
+ standard (My)SQL statements are required for the following
operations:
</para>
@@ -4149,8 +4166,7 @@
From within the <command>mysql</command> client, use
<command>SHOW ERRORS</command> or <command>SHOW
WARNINGS</command> immediately upon being notified of
- the error or warning condition. Errors and warnings also
- be displayed in MySQL Query Browser.
+ the error or warning condition.
</para>
</listitem>
@@ -4191,7 +4207,7 @@
<answer>
<para>
- <emphasis>Yes</emphasis>: For tables created with the
+ <emphasis>Yes</emphasis>. For tables created with the
<literal role="se">NDB</literal> storage engine,
transactions are supported. Currently, MySQL Cluster
supports only the <literal role="isolevel">READ
@@ -4225,13 +4241,13 @@
<para>
It is possible to create tables using other storage engines
- (such as <literal>MyISAM</literal> or
- <literal>InnoDB</literal>) on a MySQL server being used with
- a MySQL Cluster, but these
+ (such as <literal role="se">MyISAM</literal> or
+ <literal role="se">InnoDB</literal>) on a MySQL server being
+ used with a MySQL Cluster, but these
non-<literal role="se">NDB</literal> tables do
- <emphasis>not</emphasis> participate in clustering; they are
- strictly local to the individual MySQL server instance on
- which they are created.
+ <emphasis>not</emphasis> participate in clustering; each
+ such table is strictly local to the individual MySQL server
+ instance on which it is created.
</para>
</answer>
@@ -4271,8 +4287,9 @@
<question>
<para>
- Is it possible to use <literal>FULLTEXT</literal> indexes
- with MySQL Cluster?
+ Is it possible to use
+ <literal role="type">FULLTEXT</literal> indexes with MySQL
+ Cluster?
</para>
</question>
@@ -4280,10 +4297,10 @@
<answer>
<para>
- <literal>FULLTEXT</literal> indexing is not supported by any
- storage engine other than <literal>MyISAM</literal>. We are
- working to add this capability to MySQL Cluster tables in a
- future release.
+ <literal role="type">FULLTEXT</literal> indexing is not
+ supported by any storage engine other than
+ <literal role="se">MyISAM</literal>. We are working to add
+ this capability to MySQL Cluster tables in a future release.
</para>
</answer>
@@ -4313,9 +4330,9 @@
the expense of an extra machine or two is well worth it to
safeguard mission-critical data. It also worth noting that
the requirements for a cluster host running a management
- node are minimal. This task can be accomplished with a 200
- MHz Pentium CPU and sufficient RAM for the operating system
- plus a small amount of overhead for the
+ node are minimal. This task can be accomplished with a 300
+ MHz Pentium or equivalent CPU and sufficient RAM for the
+ operating system, plus a small amount of overhead for the
<command>ndb_mgmd</command> and <command>ndb_mgm</command>
processes.
</para>
@@ -4345,11 +4362,12 @@
<answer>
<para>
- Not at present. A rolling restart is all that is required
- for adding new management or SQL nodes to a MySQL Cluster
- (see <xref linkend="mysql-cluster-rolling-restart"/>).
- Adding data nodes is more complex, and requires the
- following steps:
+ Not in MySQL ¤t-series;. While a rolling restart is
+ all that is required for adding new management or API nodes
+ to a MySQL Cluster (see
+ <xref linkend="mysql-cluster-rolling-restart"/>), adding
+ data nodes is more complex, and requires the following
+ steps:
</para>
<orderedlist>
@@ -4393,14 +4411,16 @@
</orderedlist>
- <para>
- In a future MySQL Cluster release series, we hope to
- implement a <quote>hot</quote> reconfiguration capability
- for MySQL Cluster to minimize (if not eliminate) the
- requirement for restarting the cluster when adding new
- nodes. However, this is not planned for MySQL
- ¤t-series;.
- </para>
+ <note>
+ <para>
+ Beginning with MySQL Cluster NDB 6.4, it is possible to
+ add new data nodes to a running MySQL Cluster without
+ taking it offline. For more information, see
+ <xref linkend="refman-5.1:mysql-cluster-online-add-node"/>.
+ However, we do not plan to add this capability in MySQL
+ ¤t-series;.
+ </para>
+ </note>
</answer>
@@ -4439,13 +4459,20 @@
<listitem>
<para>
- <literal>FULLTEXT</literal> indexes and index prefixes
- are not supported. Only complete columns may be indexed.
+ <literal role="se">FULLTEXT</literal> indexes are not
+ supported.
</para>
</listitem>
<listitem>
<para>
+ Index prefixes are not supported. Only complete columns
+ may be indexed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
As of MySQL 5.0.16, MySQL Cluster supports spatial data
types. However, spatial indexes are not supported. See
<xref linkend="spatial-extensions"/>.
@@ -4488,10 +4515,10 @@
<para>
The <literal role="se">NDB</literal> engine does not
support foreign key constraints. As with
- <literal>MyISAM</literal> tables, if these are specified
- in a <literal role="stmt">CREATE TABLE</literal> or
- <literal role="stmt">ALTER TABLE</literal> statement,
- they are ignored.
+ <literal role="se">MyISAM</literal> tables, if these are
+ specified in a <literal role="stmt">CREATE
+ TABLE</literal> or <literal role="stmt">ALTER
+ TABLE</literal> statement, they are ignored.
</para>
</listitem>
@@ -4499,7 +4526,10 @@
<para>
For a complete listing of limitations in MySQL Cluster, see
- <xref linkend="mysql-cluster-limitations"/>.
+ <xref linkend="mysql-cluster-limitations"/>. For information
+ about limitations in MySQL Cluster &previous-series; that
+ are lifted in MySQL ¤t-series;, see
+ <xref linkend="mysql-cluster-limitations-resolved"/>.
</para>
</answer>
@@ -4536,20 +4566,17 @@
</para>
<para>
- It is also possible to convert existing tables using other
- storage engines to <literal role="se">NDBCLUSTER</literal>
- using one or more <literal role="stmt">ALTER TABLE</literal>
- statement. However, the definition of the table must be
- compatible with the <literal role="se">NDBCLUSTER</literal>
- storage engine prior to making the conversion. In MySQL
- ¤t-series;, an additional workaround is also required.
+ It is also possible to convert existing tables that use
+ other storage engines to
+ <literal role="se">NDBCLUSTER</literal> using one or more
+ <literal role="stmt">ALTER TABLE</literal> statement.
+ However, the definition of the table must be compatible with
+ the <literal role="se">NDBCLUSTER</literal> storage engine
+ prior to making the conversion. In MySQL ¤t-series;,
+ an additional workaround is also required; see
+ <xref linkend="mysql-cluster-limitations"/>, for details.
</para>
- <para>
- See <xref linkend="mysql-cluster-limitations"/>, for
- details.
- </para>
-
</answer>
</qandaentry>
@@ -4606,40 +4633,41 @@
<answer>
<para>
- If one or more nodes in a cluster fail, it is possible that
- not all cluster nodes will be able to <quote>see</quote> one
- another. In fact, it is possible that two sets of nodes
- might become isolated from one another in a network
- partitioning, also known as a <quote>split brain</quote>
- scenario. This type of situation is undesirable because each
- set of nodes tries to behave as though it is the entire
- cluster.
+ If one or more data nodes in a cluster fail, it is possible
+ that not all cluster data nodes will be able to
+ <quote>see</quote> one another. In fact, it is possible that
+ two sets of data nodes might become isolated from one
+ another in a network partitioning, also known as a
+ <quote>split-brain</quote> scenario. This type of situation
+ is undesirable because each set of data nodes tries to
+ behave as though it is the entire cluster.
</para>
<para>
- When cluster nodes go down, there are two possibilities. If
- more than 50% of the remaining nodes can communicate with
- each other, we have what is sometimes called a
- <quote>majority rules</quote> situation, and this set of
- nodes is considered to be the cluster. The arbitrator comes
- into play when there is an even number of nodes: in such
- cases, the set of nodes to which the arbitrator belongs is
- considered to be the cluster, and nodes not belonging to
- this set are shut down.
+ When cluster data nodes go down, there are two
+ possibilities. If more than 50% of the remaining data nodes
+ can communicate with each other, we have what is sometimes
+ called a <quote>majority rules</quote> situation, and this
+ set of data nodes is considered to be the cluster. The
+ arbitrator comes into play when there is an even number of
+ data nodes: in such cases, the set of nodes to which the
+ arbitrator belongs is considered to be the cluster, and any
+ data or management nodes not belonging to this set are shut
+ down.
</para>
<para>
The preceding information is somewhat simplified. A more
- complete explanation taking into account node groups
+ complete explanation taking node groups into account
follows:
</para>
<para>
- When all nodes in at least one node group are alive, network
- partitioning is not an issue, because no one portion of the
- cluster can form a functional cluster. The real problem
- arises when no single node group has all its nodes alive, in
- which case network partitioning (the
+ When all data nodes in at least one node group are alive,
+ network partitioning is not an issue, because no single
+ subset of the cluster can form a functional cluster on its
+ own. The real problem arises when no single node group has
+ all its nodes alive, in which case network partitioning (the
<quote>split-brain</quote> scenario) becomes possible. Then
an arbitrator is required. All cluster nodes recognize the
same node as the arbitrator, which is normally the
@@ -4686,10 +4714,10 @@
In MySQL ¤t-series;, MySQL Cluster supports all of the
usual MySQL data types, including (beginning with MySQL
5.0.16) those associated with MySQL's spatial
- extensions; however, the
- <literal role="se">NDBCLUSTER</literal> storage engine does
- not support spatial indexes. (Spatial indexes are supported
- only by <literal>MyISAM</literal>; see
+ extensions; however, the <literal role="se">NDB</literal>
+ storage engine does not support spatial indexes. (Spatial
+ indexes are supported only by
+ <literal role="se">MyISAM</literal>; see
<xref linkend="spatial-extensions"/>, for more information.)
In addition, there are some differences with regard to
indexes when used with <literal role="se">NDB</literal>
@@ -4698,15 +4726,18 @@
<note>
<para>
- MySQL Cluster tables (that is, tables created with
+ In MySQL ¤t-series;, MySQL Cluster tables (that is,
+ tables created with <literal>ENGINE=NDB</literal> or
<literal>ENGINE=NDBCLUSTER</literal>) have only
fixed-width rows. This means that (for example) each
- record containing a <literal>VARCHAR(255)</literal> column
- will require space for 255 characters (as required for the
- character set and collation being used for the table),
- regardless of the actual number of characters stored
- therein. This issue is expected to be fixed in a future
- MySQL release series.
+ record containing a
+ <literal role="type" condition="varchar">VARCHAR(255)</literal>
+ column will require space for 255 characters (as required
+ for the character set and collation being used for the
+ table), regardless of the actual number of characters
+ stored therein. This issue is fixed in MySQL 5.1 and
+ later; however, we do not plan to backport this
+ functionality to MySQL ¤t-series;.
</para>
</note>
@@ -4751,9 +4782,9 @@
<para>
You must include the <option>-f</option> or
- <option>--config-file</option> option to tell the
- management node where its configuration file can be
- found.
+ <option role="ndb_mgmd">--config-file</option> option to
+ tell the management node where its configuration file
+ can be found.
</para>
</listitem>
@@ -4765,8 +4796,9 @@
<para>
Each data node must be started with the
- <option>-c</option> or <option>--connect-string</option>
- option so that the data node knows how to connect to the
+ <option>-c</option> or
+ <option role="ndbd">--connect-string</option> option so
+ that the data node knows how to connect to the
management server.
</para>
</listitem>
@@ -4780,8 +4812,8 @@
<para>
Each MySQL Server must be started with the
<option role="mysqld">--ndbcluster</option> and
- <option>--ndb-connectstring</option> options. These
- options cause mysqld to enable
+ <option role="mysqld">--ndb-connectstring</option>
+ options. These options cause mysqld to enable
<literal role="se">NDBCLUSTER</literal> storage engine
support and how to connect to the management server.
</para>
@@ -4797,9 +4829,8 @@
cluster is running by starting the
<literal role="se">NDB</literal> management client
<command>ndb_mgm</command> on the machine housing the
- management node and issuing the
- <literal role="stmt">SHOW</literal> or <literal>ALL
- STATUS</literal> command.
+ management node and issuing the <literal>SHOW</literal> or
+ <literal>ALL STATUS</literal> command.
</para>
<para>
@@ -4814,16 +4845,19 @@
</programlisting>
<para>
- (The quotation marks are optional; in addition, the
- <literal>SHUTDOWN</literal> command is not case-sensitive.)
+ (The quotation marks in this example are optional, since
+ there are no spaces in the command string following the
+ <option>-e</option> option; in addition, the
+ <literal>SHUTDOWN</literal> command, like other management
+ client commands, is not case-sensitive.)
</para>
<para>
Either of these commands causes the
<command>ndb_mgm</command>, <command>ndb_mgm</command>, and
any <command>ndbd</command> processes to terminate
- gracefully. MySQL servers running as Cluster SQL nodes can
- be stopped using <command>mysqladmin shutdown</command>.
+ gracefully. MySQL servers running as SQL nodes can be
+ stopped using <command>mysqladmin shutdown</command>.
</para>
<para>
@@ -4911,9 +4945,9 @@
</para>
<para>
- It is also possible to use software different MySQL Cluster
- releases on different nodes. However, we support this only
- as part of a rolling upgrade procedure (see
+ It is also possible to use software from different MySQL
+ Cluster releases on different nodes. However, we support
+ this only as part of a rolling upgrade procedure (see
<xref linkend="mysql-cluster-rolling-restart"/>).
</para>
@@ -4939,9 +4973,9 @@
use a different data directory. If you want to run multiple
SQL nodes on one machine, each instance of
<command>mysqld</command> must use a different TCP/IP port.
- However, running more than one cluster node of a given type
- per machine is generally not encouraged or supported for
- production use.
+ However, in MySQL ¤t-series;, running more than one
+ cluster node of a given type per machine is generally not
+ encouraged or supported for production use.
</para>
<para>
@@ -4970,9 +5004,9 @@
<para>
Yes, it is possible to use DNS and DHCP for cluster hosts.
However, if your application requires <quote>five
- nines</quote> availability, use fixed (numeric) IP
- addresses. Making communication between Cluster hosts
- dependent on services such as DNS and DHCP introduces
+ nines</quote> availability, you should use fixed (numeric)
+ IP addresses, since making communication between Cluster
+ hosts dependent on services such as DNS and DHCP introduces
additional potential points of failure.
</para>
@@ -4994,11 +5028,12 @@
<answer>
<para>
- MySQL user accounts and privileges are not automatically
- propagated between different MySQL servers accessing the
- same MySQL Cluster. Therefore, you must make sure that these
- are copied between the SQL nodes yourself. You can do this
- manually, or automate the task with scripts.
+ MySQL user accounts and privileges are
+ <emphasis>not</emphasis> automatically propagated between
+ different MySQL servers accessing the same MySQL Cluster.
+ Therefore, you must make sure that these are copied between
+ the SQL nodes yourself. You can do this manually, or
+ automate the task with scripts.
</para>
<warning>
@@ -5006,8 +5041,8 @@
Do not attempt to work around this issue by converting the
MySQL system tables to use the
<literal role="se">NDBCLUSTER</literal> storage engine.
- Only the <literal>MyISAM</literal> storage engine is
- supported for these tables.
+ Only the <literal role="se">MyISAM</literal> storage
+ engine is supported for these tables.
</para>
</warning>
Modified: trunk/refman-5.1/faqs.xml
===================================================================
--- trunk/refman-5.1/faqs.xml 2009-08-25 15:13:34 UTC (rev 16267)
+++ trunk/refman-5.1/faqs.xml 2009-08-25 15:44:46 UTC (rev 16268)
Changed blocks: 37, Lines Added: 246, Lines Deleted: 204; 36072 bytes
@@ -3225,7 +3225,7 @@
with the assistance of Tomas Ulin, Mikael Ronström, Harrison
Fisk, Stewart Smith, Pekka Nousiainen, Jeb Miller, Jonas Oreland,
Roland Bouman, Martin Sköld, Johan Andersson, Monty Taylor,
- Magnus Svensson, Hartmut Holzgraefe, Geert Vanderkelen, Sean
+ Magnus Blåudd, Hartmut Holzgraefe, Geert Vanderkelen, Sean
Pringle, and others too numerous to mention.
</remark>
@@ -3259,75 +3259,72 @@
Beginning with MySQL 5.1.24, MySQL Cluster is no longer
supported in standard MySQL Server 5.1 releases. Instead,
MySQL Cluster is now released as a separate product.
- Currently, two MySQL Cluster release series are available:
+ Currently, three MySQL Cluster release series are available:
+ </para>
- <itemizedlist>
+ <itemizedlist>
- <listitem>
- <formalpara>
+ <listitem>
+ <formalpara>
- <title>MySQL Cluster NDB 6.2</title>
+ <title>MySQL Cluster NDB 6.2</title>
- <para>
- This series is Generally Available (GA) and can be
- used in production. However, MySQL Cluster NDB 6.3
- is also now available as GA, so you are encouraged
- to upgrade existing deployments and to use MySQL
- Cluster NDB 6.3 for new MySQL Cluster deployments.
- The latest MySQL Cluster NDB 6.2 sources and
- binaries can be obtained from
- <ulink url="&base-url-cluster-downloads;6.2.html"/>.
- </para>
+ <para>
+ This series is Generally Available (GA) and can be
+ used in production. However, MySQL Cluster NDB 6.3 and
+ 7.0 are also now available as GA, so you are
+ encouraged to upgrade existing deployments and to use
+ one of these for new MySQL Cluster deployments. The
+ latest MySQL Cluster NDB 6.2 sources and binaries can
+ be obtained from
+ <ulink url="&base-url-cluster-downloads;6.2.html"/>.
+ </para>
- </formalpara>
- </listitem>
+ </formalpara>
+ </listitem>
- <listitem>
- <formalpara>
+ <listitem>
+ <formalpara>
- <title>MySQL Cluster NDB 6.3</title>
+ <title>MySQL Cluster NDB 6.3</title>
- <para>
- This series is now Generally Available (GA) for use
- in production. The latest MySQL Cluster NDB 6.3
- sources and binaries can be obtained from
- <ulink url="&base-url-cluster-downloads;"/>.
- </para>
+ <para>
+ This series is now Generally Available (GA) for use in
+ production. The latest MySQL Cluster NDB 6.3 sources
+ and binaries can be obtained from
+ <ulink url="&base-url-cluster-downloads;"/>.
+ </para>
- </formalpara>
- </listitem>
+ </formalpara>
+ </listitem>
- <listitem>
- <formalpara>
+ <listitem>
+ <formalpara>
- <title>MySQL Cluster NDB 7.0</title>
+ <title>MySQL Cluster NDB 7.0</title>
- <para>
- This series is now in Beta development phase. It is
- not yet certified for use in production, but is
- available if you wish to preview and test new
- features. The latest MySQL Cluster NDB 7.0 sources
- can be obtained from
- <ulink url="&base-url-cluster-downloads;"/>.
- </para>
+ <para>
+ This series is now Generally Available (GA) for use in
+ production. The latest MySQL Cluster NDB 7.0 sources
+ can be obtained from
+ <ulink url="&base-url-cluster-downloads;"/>.
+ </para>
- </formalpara>
- </listitem>
+ </formalpara>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- We encourage you to use MySQL Cluster NDB 6.3 for new MySQL
- Cluster deployments, and to upgrade to this release series
- if you are using a previous version of MySQL with clustering
- support. For an overview of improvements in MySQL Cluster
- NDB 6.3, see
- <xref linkend="mysql-cluster-changes-5-1-ndb-6-3"/>.
- </para>
-
<para>
- For information about new features and other improvements
- made in MySQL Cluster NDB 7.0, see
- <xref linkend="mysql-cluster-changes-5-1-ndb-7-0"/>.
+ However, you should use MySQL NDB Cluster NDB 6.3 or 7.0 for
+ new deployments, and if you are already using MySQL
+ ¤t-series; with clustering support, to upgrade to one
+ of these MySQL Cluster release series. For an overview of
+ improvements made in MySQL Cluster NDB 6.2, 6.3, and 7.0,
+ see <xref linkend="mysql-cluster-changes-5-1-ndb-6-2"/>,
+ <xref linkend="mysql-cluster-changes-5-1-ndb-6-3"/>, and
+ <xref linkend="mysql-cluster-changes-5-1-ndb-7-0"/>,
+ respectively.
</para>
<para>
@@ -3427,7 +3424,7 @@
<indexterm>
<primary>MySQL Cluster</primary>
- <secondary><foreignphrase>vs</foreignphrase> replication</secondary>
+ <secondary>vs replication</secondary>
</indexterm>
<para>
@@ -3446,14 +3443,15 @@
lag behind the master. This means that if the master fails,
it is possible that the slave might not have recorded the
last few transactions. If a transaction-safe engine such as
- <literal>InnoDB</literal> is being used, a transaction will
- either be complete on the slave or not applied at all, but
- replication does not guarantee that all data on the master
- and the slave will be consistent at all times. In MySQL
- Cluster, all data nodes are kept in synchrony, and a
- transaction committed by any one data node is committed for
- all data nodes. In the event of a data node failure, all
- remaining data nodes remain in a consistent state.
+ <literal role="se">InnoDB</literal> is being used, a
+ transaction will either be complete on the slave or not
+ applied at all, but replication does not guarantee that all
+ data on the master and the slave will be consistent at all
+ times. In MySQL Cluster, all data nodes are kept in
+ synchrony, and a transaction committed by any one data node
+ is committed for all data nodes. In the event of a data node
+ failure, all remaining data nodes remain in a consistent
+ state.
</para>
<para>
@@ -3464,11 +3462,11 @@
<para>
We have implemented (asynchronous) replication for MySQL
- Cluster in MySQL 5.1 and MySQL Cluster NDB 6.x.
- <firstterm>MySQL Cluster Replication</firstterm> (also
- sometimes known as <quote>geo-replication</quote>) includes
- the capability to replicate both between two MySQL Clusters,
- and from a MySQL Cluster to a non-Cluster MySQL server. See
+ Cluster in MySQL 5.1 and later. <firstterm>MySQL Cluster
+ Replication</firstterm> (also sometimes known as
+ <quote>geo-replication</quote>) includes the capability to
+ replicate both between two MySQL Clusters, and from a MySQL
+ Cluster to a non-Cluster MySQL server. See
<xref linkend="mysql-cluster-replication"/>, for more
information.
</para>
@@ -3537,13 +3535,13 @@
<para>
A minimum of three computers is required to run a viable
cluster. However, the minimum
- <emphasis role="bold">recommended</emphasis> number of
- computers in a MySQL Cluster is four: one each to run the
- management and SQL nodes, and two computers to serve as data
- nodes. The purpose of the two data nodes is to provide
- redundancy; the management node must run on a separate
- machine to guarantee continued arbitration services in the
- event that one of the data nodes fails.
+ <emphasis>recommended</emphasis> number of computers in a
+ MySQL Cluster is four: one each to run the management and
+ SQL nodes, and two computers to serve as data nodes. The
+ purpose of the two data nodes is to provide redundancy; the
+ management node must run on a separate machine to guarantee
+ continued arbitration services in the event that one of the
+ data nodes fails.
</para>
<para>
@@ -3604,7 +3602,10 @@
node server is implemented as the application
<command>ndb_mgmd</command>; the management client
used to control MySQL Cluster is
- <command>ndb_mgm</command>.
+ <command>ndb_mgm</command>. See
+ <xref linkend="mysql-cluster-programs-ndb-mgmd"/>, and
+ <xref linkend="mysql-cluster-programs-ndb-mgm"/>, for
+ information about these programs.
</para>
</formalpara>
@@ -3619,7 +3620,13 @@
This type of node stores and replicates data. Data
node functionality is handled by instances of the
<literal role="se">NDB</literal> data node process
- <command>ndbd</command>.
+ <command>ndbd</command>. For more information, see
+ <xref linkend="mysql-cluster-programs-ndbd"/>.
+ Beginning with MySQL Cluster NDB 7.0, a multi-threaded
+ version of the data node program, is also available
+ — see
+ <xref linkend="mysql-cluster-programs-ndbmtd"/>, for
+ more information.
</para>
</formalpara>
@@ -3778,15 +3785,21 @@
<para>
MySQL Cluster is supported on most Unix-like operating
- systems, including Linux, Mac OS X, Solaris, and HP-UX.
- Beginning with MySQL Cluster NDB 6.4, it is also possible to
- run MySQL Cluster on Windows platforms. We are continuing to
- work on providing MySQL Cluster support for additional
- platforms; eventually we intend to offer MySQL Cluster on
- all platforms for which MySQL itself is supported.
+ systems, including Linux, Mac OS X, and Solaris. Beginning
+ with MySQL Cluster NDB 6.4, it is also possible to run MySQL
+ Cluster on Windows platforms on an experimental basis; we
+ hope to release a GA version for Windows in MySQL Cluster
+ NDB 7.1.
</para>
<para>
+ We are continuing to work on providing MySQL Cluster support
+ for additional platforms; eventually we intend to offer
+ MySQL Cluster on all platforms for which MySQL itself is
+ supported.
+ </para>
+
+ <para>
For more detailed information concerning the level of
support which is offered for MySQL Cluster on various
operating system versions, OS distributions, and hardware
@@ -3818,15 +3831,20 @@
<para>
MySQL Cluster should run on any platform for which
- <literal role="se">NDBCLUSTER</literal>-enabled binaries are
- available. For data nodes, faster CPUs and more memory are
- likely to improve performance, and 64-bit CPUs are likely to
- be more effective than 32-bit processors. There must be
- sufficient memory on machines used for data nodes to hold
- each node's share of the database (see <emphasis>How much
- RAM do I Need?</emphasis> for more information). Nodes can
- communicate via a standard TCP/IP network and hardware. For
- SCI support, special networking hardware is required (see
+ <literal role="se">NDB</literal>-enabled binaries are
+ available. For data nodes and API nodes, faster CPUs and
+ more memory are likely to improve performance, and 64-bit
+ CPUs are likely to be more effective than 32-bit processors.
+ There must be sufficient memory on machines used for data
+ nodes to hold each node's share of the database (see
+ <emphasis>How much RAM do I Need?</emphasis> for more
+ information). For a computer which is used only for running
+ the MySQL Cluster management server, the requirements are
+ minimal; a common desktop PC (or the equivalent) is
+ generally sufficient for this task. Nodes can communicate
+ via the standard TCP/IP network and hardware. They can also
+ use the high-speed SCI protocol; however, special networking
+ hardware and software are required to use SCI (see
<xref linkend="mysql-cluster-interconnects"/>).
</para>
@@ -3975,11 +3993,11 @@
<para>
When calculating Cluster memory requirements, you may find
- useful the <filename>ndb_size.pl</filename> utility which is
- available in recent MySQL ¤t-series; releases. This
- Perl script connects to a current (non-Cluster) MySQL
- database and creates a report on how much space that
- database would require if it used the
+ useful the <command>ndb_size.pl</command> utility which is
+ available in recent MySQL Cluster releases. This Perl script
+ connects to a current (non-Cluster) MySQL database and
+ creates a report on how much space that database would
+ require if it used the
<literal role="se">NDBCLUSTER</literal> storage engine. For
more information, see
<xref linkend="mysql-cluster-programs-ndb-size-pl"/>.
@@ -3990,8 +4008,8 @@
<emphasis>every MySQL Cluster table must have a primary
key</emphasis>. The <literal role="se">NDB</literal> storage
engine creates a primary key automatically if none is
- defined, and this primary key is created without
- <literal>USING HASH</literal>.
+ defined; this primary key is created without <literal>USING
+ HASH</literal>.
</para>
<para>
@@ -4002,10 +4020,11 @@
<literal>IndexMemory</literal> is in use, and again when use
reaches 85%, 90%, and so on. Beginning with MySQL Cluster
NDB 6.2.3 and 6.3.0, you can use the <literal>REPORT
- MemoryUsage</literal> command in the cluster management
+ MEMORYUSAGE</literal> command in the cluster management
client to obtain a real-time report of the amount of memory
used to store MySQL Cluster data and indexes. For more
information about this comannd, see
+ <xref linkend="mysql-cluster-mgm-client-commands"/>.
</para>
</answer>
@@ -4036,7 +4055,7 @@
</para>
<para>
- For Windows, it is recommended that you use
+ For Windows, we recommend that you use
<literal>NTFS</literal> file systems for MySQL Cluster, just
as we do for standard MySQL. We do not test MySQL Cluster
with <literal>FAT</literal> or <literal>VFAT</literal> file
@@ -4064,7 +4083,7 @@
<indexterm>
<primary>MySQL Cluster</primary>
- <secondary>using in a virtual machine</secondary>
+ <secondary>and virtual machines</secondary>
</indexterm>
<para>
@@ -4104,13 +4123,13 @@
<question>
<indexterm>
- <primary><errortext>Table is full</errortext> error</primary>
+ <primary>Table is full errors</primary>
<secondary>MySQL Cluster</secondary>
</indexterm>
<indexterm>
<primary>MySQL Cluster</primary>
- <secondary><errortext>Table is full</errortext> error</secondary>
+ <secondary>Table is full errors</secondary>
</indexterm>
<para>
@@ -4227,9 +4246,9 @@
<answer>
<para>
- No. Although some specialized commands are used to manage
- and configure the cluster itself, only standard (My)SQL
- queries and commands are required for the following
+ <emphasis>No</emphasis>. Although some specialized commands
+ are used to manage and configure the cluster itself, only
+ standard (My)SQL statements are required for the following
operations:
</para>
@@ -4314,8 +4333,7 @@
From within the <command>mysql</command> client, use
<command>SHOW ERRORS</command> or <command>SHOW
WARNINGS</command> immediately upon being notified of
- the error or warning condition. Errors and warnings also
- be displayed in MySQL Query Browser.
+ the error or warning condition.
</para>
</listitem>
@@ -4356,7 +4374,7 @@
<answer>
<para>
- <emphasis>Yes</emphasis>: For tables created with the
+ <emphasis>Yes</emphasis>. For tables created with the
<literal role="se">NDBCLUSTER</literal> storage engine,
transactions are supported. Currently, MySQL Cluster
supports only the <literal role="isolevel">READ
@@ -4391,12 +4409,12 @@
<para>
It is possible to create tables using other storage engines
- (such as <literal>MyISAM</literal> or
- <literal>InnoDB</literal>) on a MySQL server being used with
- a MySQL Cluster, but these
- non-<literal role="se">NDBCLUSTER</literal> tables do
- <emphasis>not</emphasis> participate in clustering; such a
- table is strictly local to the individual MySQL server
+ (such as <literal role="se">MyISAM</literal> or
+ <literal role="se">InnoDB</literal>) on a MySQL server being
+ used with a MySQL Cluster, but these
+ non-<literal role="se">NDB</literal> tables do
+ <emphasis>not</emphasis> participate in clustering; each
+ such table is strictly local to the individual MySQL server
instance on which it is created.
</para>
@@ -4437,8 +4455,9 @@
<question>
<para>
- Is it possible to use <literal>FULLTEXT</literal> indexes
- with MySQL Cluster?
+ Is it possible to use
+ <literal role="type">FULLTEXT</literal> indexes with MySQL
+ Cluster?
</para>
</question>
@@ -4446,10 +4465,10 @@
<answer>
<para>
- <literal>FULLTEXT</literal> indexing is not supported by any
- storage engine other than <literal>MyISAM</literal>. We are
- working to add this capability to MySQL Cluster tables in a
- future release.
+ <literal role="type">FULLTEXT</literal> indexing is not
+ supported by any storage engine other than
+ <literal role="se">MyISAM</literal>. We are working to add
+ this capability to MySQL Cluster tables in a future release.
</para>
</answer>
@@ -4487,9 +4506,9 @@
the expense of an extra machine or two is well worth it to
safeguard mission-critical data. It also worth noting that
the requirements for a cluster host running a management
- node are minimal. This task can be accomplished with a 200
- MHz Pentium CPU and sufficient RAM for the operating system
- plus a small amount of overhead for the
+ node are minimal. This task can be accomplished with a 300
+ MHz Pentium or equivalent CPU and sufficient RAM for the
+ operating system, plus a small amount of overhead for the
<command>ndb_mgmd</command> and <command>ndb_mgm</command>
processes.
</para>
@@ -4598,13 +4617,20 @@
<listitem>
<para>
- <literal>FULLTEXT</literal> indexes and index prefixes
- are not supported. Only complete columns may be indexed.
+ <literal role="se">FULLTEXT</literal> indexes are not
+ supported.
</para>
</listitem>
<listitem>
<para>
+ Index prefixes are not supported. Only complete columns
+ may be indexed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
Spatial indexes are not supported (although spatial
columns can be used). See
<xref linkend="spatial-extensions"/>.
@@ -4649,10 +4675,10 @@
<para>
The <literal role="se">NDBCLUSTER</literal> engine does
not support foreign key constraints. As with
- <literal>MyISAM</literal> tables, if these are specified
- in a <literal role="stmt">CREATE TABLE</literal> or
- <literal role="stmt">ALTER TABLE</literal> statement,
- they are ignored.
+ <literal role="se">MyISAM</literal> tables, if these are
+ specified in a <literal role="stmt">CREATE
+ TABLE</literal> or <literal role="stmt">ALTER
+ TABLE</literal> statement, they are ignored.
</para>
</listitem>
@@ -4660,7 +4686,11 @@
<para>
For a complete listing of limitations in MySQL Cluster, see
- <xref linkend="mysql-cluster-limitations"/>.
+ <xref linkend="mysql-cluster-limitations"/>. For information
+ about limitations in MySQL Cluster &previous-series; that
+ are lifted in MySQL ¤t-series;, MySQL Cluster NDB 6.x,
+ or MySQL Cluster NDB 7.0, see
+ <xref linkend="mysql-cluster-limitations-resolved"/>.
</para>
</answer>
@@ -4702,14 +4732,10 @@
using one or more <literal role="stmt">ALTER TABLE</literal>
statement. However, the definition of the table must be
compatible with the <literal role="se">NDBCLUSTER</literal>
- storage engine prior to making the conversion.
+ storage engine prior to making the conversion. See
+ <xref linkend="mysql-cluster-limitations"/>, for details.
</para>
- <para>
- See <xref linkend="mysql-cluster-limitations"/>, for
- details.
- </para>
-
</answer>
</qandaentry>
@@ -4766,40 +4792,41 @@
<answer>
<para>
- If one or more nodes in a cluster fail, it is possible that
- not all cluster nodes will be able to <quote>see</quote> one
- another. In fact, it is possible that two sets of nodes
- might become isolated from one another in a network
- partitioning, also known as a <quote>split brain</quote>
- scenario. This type of situation is undesirable because each
- set of nodes tries to behave as though it is the entire
- cluster.
+ If one or more data nodes in a cluster fail, it is possible
+ that not all cluster data nodes will be able to
+ <quote>see</quote> one another. In fact, it is possible that
+ two sets of data nodes might become isolated from one
+ another in a network partitioning, also known as a
+ <quote>split-brain</quote> scenario. This type of situation
+ is undesirable because each set of data nodes tries to
+ behave as though it is the entire cluster.
</para>
<para>
- When cluster nodes go down, there are two possibilities. If
- more than 50% of the remaining nodes can communicate with
- each other, we have what is sometimes called a
- <quote>majority rules</quote> situation, and this set of
- nodes is considered to be the cluster. The arbitrator comes
- into play when there is an even number of nodes: in such
- cases, the set of nodes to which the arbitrator belongs is
- considered to be the cluster, and nodes not belonging to
- this set are shut down.
+ When cluster data nodes go down, there are two
+ possibilities. If more than 50% of the remaining data nodes
+ can communicate with each other, we have what is sometimes
+ called a <quote>majority rules</quote> situation, and this
+ set of data nodes is considered to be the cluster. The
+ arbitrator comes into play when there is an even number of
+ data nodes: in such cases, the set of nodes to which the
+ arbitrator belongs is considered to be the cluster, and any
+ data or management nodes not belonging to this set are shut
+ down.
</para>
<para>
The preceding information is somewhat simplified. A more
- complete explanation taking into account node groups
+ complete explanation taking node groups into account
follows:
</para>
<para>
- When all nodes in at least one node group are alive, network
- partitioning is not an issue, because no one portion of the
- cluster can form a functional cluster. The real problem
- arises when no single node group has all its nodes alive, in
- which case network partitioning (the
+ When all data nodes in at least one node group are alive,
+ network partitioning is not an issue, because no single
+ subset of the cluster can form a functional cluster on its
+ own. The real problem arises when no single node group has
+ all its nodes alive, in which case network partitioning (the
<quote>split-brain</quote> scenario) becomes possible. Then
an arbitrator is required. All cluster nodes recognize the
same node as the arbitrator, which is normally the
@@ -4843,27 +4870,29 @@
<answer>
<para>
- MySQL Cluster NDB 6.x, supports all of the usual MySQL data
- types, including those associated with MySQL's spatial
- extensions; however, the
- <literal role="se">NDBCLUSTER</literal> storage engine does
- not support spatial indexes. (Spatial indexes are supported
- only by <literal>MyISAM</literal>; see
+ MySQL Cluster NDB 6.x and later supports all of the usual
+ MySQL data types, including those associated with
+ MySQL's spatial extensions; however, the
+ <literal role="se">NDB</literal> storage engine does not
+ support spatial indexes. (Spatial indexes are supported only
+ by <literal role="se">MyISAM</literal>; see
<xref linkend="spatial-extensions"/>, for more information.)
In addition, there are some differences with regard to
- indexes when used with
- <literal role="se">NDBCLUSTER</literal> tables.
+ indexes when used with <literal role="se">NDB</literal>
+ tables.
</para>
<note>
<para>
MySQL Cluster Disk Data tables (that is, tables created
with <literal>TABLESPACE ... STORAGE DISK
- ENGINE=NDBCLUSTER</literal>) have only fixed-width rows.
- This means that (for example) each Disk Data table record
- containing a <literal>VARCHAR(255)</literal> column
- requires space for 255 characters (as required for the
- character set and collation being used for the table),
+ ENGINE=NDB</literal> or <literal>TABLESPACE ... STORAGE
+ DISK ENGINE=NDBCLUSTER</literal>) have only fixed-width
+ rows. This means that (for example) each Disk Data table
+ record containing a
+ <literal role="type" condition="varchar">VARCHAR(255)</literal>
+ column requires space for 255 characters (as required for
+ the character set and collation being used for the table),
regardless of the actual number of characters stored
therein.
</para>
@@ -4910,26 +4939,35 @@
<para>
You must include the <option>-f</option> or
- <option>--config-file</option> option to tell the
- management node where its configuration file can be
- found. Beginning with MySQL Cluster NDB 6.4, the
- management server must also know where it is to keep its
- configuration cache.
+ <option role="ndb_mgmd">--config-file</option> option to
+ tell the management node where its configuration file
+ can be found.
</para>
+
+ <para>
+ Beginning with MySQL Cluster NDB 6.4.0, the management
+ server caches the configuration data found in the
+ <filename>config.ini</filename> file, so it is necessary
+ to use the options described in the previous paragraph
+ only when starting the management server for the first
+ time, or when updating the cluster's configuration
+ (in the latter case, additional options are required;
+ for more information, see
+ <xref linkend="mysql-cluster-config-file"/>).
+ </para>
</listitem>
<listitem>
<para>
Start each data node with the <command>ndbd</command>
- command. (Beginning with MySQL Cluster NDB 6.4, the
- <command>ndbmtd</command> command can be used on
- computers with multiple CPUs, multiple cores, or both.)
+ command.
</para>
<para>
Each data node must be started with the
- <option>-c</option> or <option>--connect-string</option>
- option so that the data node knows how to connect to the
+ <option>-c</option> or
+ <option role="ndbd">--connect-string</option> option so
+ that the data node knows how to connect to the
management server.
</para>
</listitem>
@@ -4943,8 +4981,8 @@
<para>
Each MySQL Server must be started with the
<option role="mysqld">--ndbcluster</option> and
- <option>--ndb-connectstring</option> options. These
- options cause <command>mysqld</command> to enable
+ <option role="mysqld">--ndb-connectstring</option>
+ options. These options cause mysqld to enable
<literal role="se">NDBCLUSTER</literal> storage engine
support and how to connect to the management server.
</para>
@@ -4960,9 +4998,8 @@
cluster is running by starting the
<literal role="se">NDB</literal> management client
<command>ndb_mgm</command> on the machine housing the
- management node and issuing the
- <literal role="stmt">SHOW</literal> or <literal>ALL
- STATUS</literal> command.
+ management node and issuing the <literal>SHOW</literal> or
+ <literal>ALL STATUS</literal> command.
</para>
<para>
@@ -4977,16 +5014,19 @@
</programlisting>
<para>
- (The quotation marks are optional; in addition, the
- <literal>SHUTDOWN</literal> command is not case-sensitive.)
+ (The quotation marks in this example are optional, since
+ there are no spaces in the command string following the
+ <option>-e</option> option; in addition, the
+ <literal>SHUTDOWN</literal> command, like other management
+ client commands, is not case-sensitive.)
</para>
<para>
Either of these commands causes the
<command>ndb_mgm</command>, <command>ndb_mgm</command>, and
any <command>ndbd</command> processes to terminate
- gracefully. MySQL servers running as Cluster SQL nodes can
- be stopped using <command>mysqladmin shutdown</command>.
+ gracefully. MySQL servers running as SQL nodes can be
+ stopped using <command>mysqladmin shutdown</command>.
</para>
<para>
@@ -5104,7 +5144,8 @@
<command>mysqld</command> must use a different TCP/IP port.
However, running more than one cluster node of a given type
per machine is generally not encouraged or supported for
- production use.
+ production use unless you are using hosts with multiple
+ CPUs/cores.
</para>
<para>
@@ -5133,9 +5174,9 @@
<para>
Yes, it is possible to use DNS and DHCP for cluster hosts.
However, if your application requires <quote>five
- nines</quote> availability, use fixed (numeric) IP
- addresses. Making communication between Cluster hosts
- dependent on services such as DNS and DHCP introduces
+ nines</quote> availability, you should use fixed (numeric)
+ IP addresses, since making communication between Cluster
+ hosts dependent on services such as DNS and DHCP introduces
additional potential points of failure.
</para>
@@ -5187,11 +5228,12 @@
<answer>
<para>
- MySQL user accounts and privileges are not automatically
- propagated between different MySQL servers accessing the
- same MySQL Cluster. Therefore, you must make sure that these
- are copied between the SQL nodes yourself. You can do this
- manually, or automate the task with scripts.
+ MySQL user accounts and privileges are
+ <emphasis>not</emphasis> automatically propagated between
+ different MySQL servers accessing the same MySQL Cluster.
+ Therefore, you must make sure that these are copied between
+ the SQL nodes yourself. You can do this manually, or
+ automate the task with scripts.
</para>
<warning>
@@ -5199,8 +5241,8 @@
Do not attempt to work around this issue by converting the
MySQL system tables to use the
<literal role="se">NDBCLUSTER</literal> storage engine.
- Only the <literal>MyISAM</literal> storage engine is
- supported for these tables.
+ Only the <literal role="se">MyISAM</literal> storage
+ engine is supported for these tables.
</para>
</warning>
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r16268 - in trunk: refman-4.1 refman-5.0 refman-5.1 | jon.stephens | 25 Aug |