Author: jstephens
Date: 2008-02-06 13:54:28 +0100 (Wed, 06 Feb 2008)
New Revision: 9717
Log:
Documented RBR bugfixes:
Bug #27779, Bug #31552, Bug #31583, Bug #31609, Bug #32468
Documented new slave_exec_mode system variable (Thanks, Mats!)
Modified:
trunk/dynamic-docs/changelog/mysqld-1.xml
trunk/dynamic-docs/command-optvars/mysqld.xml
trunk/refman-5.1/dba-core.xml
trunk/refman-5.1/mysql-cluster-replication.xml
trunk/refman-6.0/dba-core.xml
trunk/refman-6.0/mysql-cluster-replication.xml
Modified: trunk/dynamic-docs/changelog/mysqld-1.xml
===================================================================
--- trunk/dynamic-docs/changelog/mysqld-1.xml 2008-02-06 10:46:08 UTC (rev 9716)
+++ trunk/dynamic-docs/changelog/mysqld-1.xml 2008-02-06 12:54:28 UTC (rev 9717)
Changed blocks: 1, Lines Added: 161, Lines Deleted: 0; 3849 bytes
@@ -9,6 +9,167 @@
<logentry entrytype="feature">
<tags>
+ <highlight type="replication"/>
+ <manual type="RBR"/>
+ </tags>
+
+ <bugs>
+ <fixes bugid="31609"/>
+ </bugs>
+
+ <versions>
+ <version ver="5.1.24"/>
+ <version ver="6.0.5"/>
+ </versions>
+
+ <message>
+
+ <para>
+ Introduced the <literal>slave_exec_mode</literal> system
+ variable to control whether idempotent or strict mode is used
+ for replication conflict resolution. Idempotent mode suppresses
+ duplicate-key, no-key-found, and some other errors, and is
+ needed for circular replication, multi-master replication, and
+ some other complex replication setups when using MySQL Cluster.
+ Strict mode is the default.
+ </para>
+
+ </message>
+
+ </logentry>
+
+ <logentry entrytype="bug">
+
+ <tags>
+ <highlight type="replication"/>
+ <manual type="RBR"/>
+ <manual type="binlog"/>
+ </tags>
+
+ <bugs>
+ <fixes bugid="27779"/>
+ <introducedby bugid="22583"/>
+ </bugs>
+
+ <versions>
+ <version ver="5.1.24"/>
+ <version ver="6.0.5"/>
+ </versions>
+
+ <message>
+
+ <para>
+ Slaves running MySQL 5.1.18 and later could not read binary logs
+ from older versions of the server.
+ </para>
+
+ </message>
+
+ </logentry>
+
+ <logentry entrytype="bug">
+
+ <tags>
+ <highlight type="replication"/>
+ <manual type="RBR"/>
+ <manual type="upgrade"/>
+ </tags>
+
+ <bugs>
+ <fixes bugid="31583"/>
+ <introducedby bugid="21842"/>
+ </bugs>
+
+ <versions>
+ <version ver="5.1.24"/>
+ <version ver="6.0.5"/>
+ </versions>
+
+ <message ver="5.1.24">
+
+ <para>
+ When using row-based replication from a master running MySQL
+ 5.1.21 or earlier to a slave running 5.1.22 or later, updates of
+ integer columns failed on the slave with <errortext>Error in
+ Unknown event: row application failed</errortext>.
+ </para>
+
+ </message>
+
+ <message ver="6.0.5">
+
+ <para>
+ When using row-based replication from a master running MySQL
+ 6.0.3 or earlier to a slave running 6.0.4 or later, updates of
+ integer columns failed on the slave with <errortext>Error in
+ Unknown event: row application failed</errortext>.
+ </para>
+
+ </message>
+
+ </logentry>
+
+ <logentry entrytype="bug">
+
+ <tags>
+ <highlight type="replication"/>
+ <manual type="RBR"/>
+ <manual type="InnoDB"/>
+ </tags>
+
+ <bugs>
+ <fixes bugid="32468"/>
+ </bugs>
+
+ <versions>
+ <version ver="5.0.24"/>
+ <version ver="6.0.5"/>
+ </versions>
+
+ <message>
+
+ <para>
+ When using row-based replication, deletes from a table with a
+ foreign key constraint failed on the slave.
+ </para>
+
+ </message>
+
+ </logentry>
+
+ <logentry entrytype="bug">
+
+ <tags>
+ <highlight type="replication"/>
+ <manual type="RBR"/>
+ <manual type="PRIMARY KEY"/>
+ </tags>
+
+ <bugs>
+ <fixes bugid="31552"/>
+ </bugs>
+
+ <versions>
+ <version ver="5.1.24"/>
+ <version ver="6.0.5"/>
+ </versions>
+
+ <message>
+
+ <para>
+ When using row-based replication, the slave stopped when
+ attempting to delete non-existent rows from a slave table
+ without a primary key. In addition, no error was reported when
+ this occurred.
+ </para>
+
+ </message>
+
+ </logentry>
+
+ <logentry entrytype="feature">
+
+ <tags>
<highlight type="cluster"/>
<manual type="OPTIMIZE TABLE"/>
</tags>
Modified: trunk/dynamic-docs/command-optvars/mysqld.xml
===================================================================
--- trunk/dynamic-docs/command-optvars/mysqld.xml 2008-02-06 10:46:08 UTC (rev 9716)
+++ trunk/dynamic-docs/command-optvars/mysqld.xml 2008-02-06 12:54:28 UTC (rev 9717)
Changed blocks: 4, Lines Added: 36, Lines Deleted: 4; 1814 bytes
@@ -4362,6 +4362,38 @@
</mysqloption>
+ <mysqloption section="replication" id="slave_exec_mode">
+
+ <xrefto id="option_mysqld_slave_exec_mode"/>
+
+ <name>slave_exec_mode</name>
+
+ <shortdescription lang="en">
+ Allows for switching between idempotent mode (key and some other
+ errors suppressed) and strict mode; strict mode is the default
+ </shortdescription>
+
+ <types>
+ <vartype class="system" isdynamic="yes" scope="global"/>
+ </types>
+
+ <values vartype="enumeration" platform="all">
+
+ <choice value="IDEMPOTENT"></choice>
+ <choice value="STRICT"></choice>
+ <value default="STRICT"/>
+
+ </values>
+
+ <versions>
+ <manual version="5.1"/>
+ <introduced version="5.1.24"/>
+ <manual version="6.0"/>
+ <introduced version="6.0.5"/>
+ </versions>
+
+ </mysqloption>
+
<mysqloption section="replication" id="Slave_heartbeat_period">
<xrefto id="option_mysqld_Slave_heartbeat_period"/>
@@ -10665,7 +10697,7 @@
</versions>
</mysqloption>
-
+
<mysqloption section="security" id="local_infile">
<xrefto id="option_mysqld_local_infile"/>
@@ -12285,7 +12317,7 @@
</versions>
</mysqloption>
-
+
<mysqloption section="server" id="max_prepared_stmt_count">
<xrefto id="option_mysqld_max_prepared_stmt_count"/>
@@ -18328,8 +18360,8 @@
<manual version="6.0"/>
</versions>
- </mysqloption>
-
+ </mysqloption>
+
<mysqloption section="server" id="prepared_stmt_count">
<xrefto id="option_mysqld_prepared_stmt_count"/>
Modified: trunk/refman-5.1/dba-core.xml
===================================================================
--- trunk/refman-5.1/dba-core.xml 2008-02-06 10:46:08 UTC (rev 9716)
+++ trunk/refman-5.1/dba-core.xml 2008-02-06 12:54:28 UTC (rev 9717)
Changed blocks: 6, Lines Added: 29, Lines Deleted: 21; 3808 bytes
@@ -6927,9 +6927,9 @@
<para>
The current number of prepared statements. (The maximum
number of statements is given by the
- <literal>max_prepared_stmt_count</literal> system
- variable.) This variable was added in MySQL 5.1.10. In MySQL
- 5.1.14, it was converted to the global
+ <literal>max_prepared_stmt_count</literal> system variable.)
+ This variable was added in MySQL 5.1.10. In MySQL 5.1.14, it
+ was converted to the global
<literal>Prepared_stmt_count</literal> status variable.
</para>
</listitem>
@@ -7440,6 +7440,27 @@
</listitem>
<listitem>
+ <para id="option_mysqld_slave_exec_mode">
+ <literal>slave_exec_mode</literal>
+ </para>
+
+ <para condition="dynamic:optvar:item" role="5.1:mysqld:slave_exec_mode"/>
+
+ <para>
+ Controls whether <literal>IDEMPOTENT</literal> or
+ <literal>STRICT</literal> mode is used in replication
+ conflict resolution and error checking.
+ <literal>IDEMPOTENT</literal> mode causes suppression of
+ some errors, including duplicate-key and no-key-found
+ errors. Beginning with MySQL 5.1.24, this mode should be
+ employed in multi-master replication, circular replication,
+ and some other special replication scenarios.
+ <literal>STRICT</literal> mode is the default, and is
+ suitable for most other cases.
+ </para>
+ </listitem>
+
+ <listitem>
<para id="option_mysqld_slave_load_tmpdir">
<literal>slave_load_tmpdir</literal>
</para>
@@ -8252,18 +8273,6 @@
</formalpara>
- <formalpara role="mnmas">
-
- <title>MySQL Enterprise</title>
-
- <para>
- Expert use of server system variables is part of the service
- offered by the MySQL Enterprise Monitor. To subscribe see
- <ulink url="&base-url-enterprise;advisors.html"/>.
- </para>
-
- </formalpara>
-
</section>
<section id="using-system-variables">
@@ -9188,9 +9197,8 @@
command set used in the network layer. In other words, their
values increase whenever prepared statement API calls such
as <command>mysql_stmt_prepare()</command>,
- <command>mysql_stmt_execute()</command>, and so forth
- are executed. However,
- <literal>Com_stmt_prepare</literal>,
+ <command>mysql_stmt_execute()</command>, and so forth are
+ executed. However, <literal>Com_stmt_prepare</literal>,
<literal>Com_stmt_execute</literal> and
<literal>Com_stmt_close</literal> also increase for
<literal>PREPARE</literal>, <literal>EXECUTE</literal>, or
@@ -10228,8 +10236,8 @@
<para>
The current number of prepared statements. (The maximum
number of statements is given by the
- <literal>max_prepared_stmt_count</literal> system
- variable.) This variable was added in MySQL 5.1.14.
+ <literal>max_prepared_stmt_count</literal> system variable.)
+ This variable was added in MySQL 5.1.14.
</para>
</listitem>
@@ -10403,7 +10411,7 @@
&mccge-warning-begin;
- <para id="option_mysqld_Slave_heartbeat_period">
+ <para id="option_mysqld_Slave_heartbeat_period">
<literal>Slave_heartbeat_period</literal>
</para>
Modified: trunk/refman-5.1/mysql-cluster-replication.xml
===================================================================
--- trunk/refman-5.1/mysql-cluster-replication.xml 2008-02-06 10:46:08 UTC (rev 9716)
+++ trunk/refman-5.1/mysql-cluster-replication.xml 2008-02-06 12:54:28 UTC (rev 9717)
Changed blocks: 1, Lines Added: 23, Lines Deleted: 0; 1302 bytes
@@ -455,6 +455,29 @@
be noted that it has not yet been thoroughly tested and must
therefore still be considered experimental.
</para>
+
+ <important>
+ <para>
+ Beginning with MySQL 5.1.24, you should execute the
+ following statement before starting circular replication:
+
+<programlisting>
+mysql> <userinput>SET GLOBAL SLAVE_EXEC_MODE = 'IDEMPOTENT';</userinput>
+</programlisting>
+
+ This is necessary to suppress duplicate-key and other errors
+ that otherwise break circular replication of MySQL Cluster.
+ <literal>IDEMPOTENT</literal> mode is also required for
+ multi-master replication when using MySQL Cluster. (Bug
+ #31609)
+ </para>
+
+ <para>
+ See
+ <link linkend="option_mysqld_slave_exec_mode"><literal>Slave_exec_mode</literal></link>,
+ for more information.
+ </para>
+ </important>
</listitem>
<listitem>
Modified: trunk/refman-6.0/dba-core.xml
===================================================================
--- trunk/refman-6.0/dba-core.xml 2008-02-06 10:46:08 UTC (rev 9716)
+++ trunk/refman-6.0/dba-core.xml 2008-02-06 12:54:28 UTC (rev 9717)
Changed blocks: 1, Lines Added: 21, Lines Deleted: 0; 1325 bytes
@@ -7159,6 +7159,27 @@
</listitem>
<listitem>
+ <para id="option_mysqld_slave_exec_mode">
+ <literal>Slave_exec_mode</literal>
+ </para>
+
+ <para condition="dynamic:optvar:item" role="6.0:mysqld:slave_exec_mode"/>
+
+ <para>
+ Controls whether <literal>IDEMPOTENT</literal> or
+ <literal>STRICT</literal> mode is used in replication
+ conflict resolution and error checking.
+ <literal>IDEMPOTENT</literal> mode causes suppression of
+ some errors, including duplicate-key and no-key-found
+ errors. Beginning with MySQL 6.0.5, this mode should be
+ employed in multi-master replication, circular replication,
+ and some other special replication scenarios.
+ <literal>STRICT</literal> mode is the default, and is
+ suitable for most other cases.
+ </para>
+ </listitem>
+
+ <listitem>
<para id="option_mysqld_slave_load_tmpdir">
<literal>slave_load_tmpdir</literal>
</para>
Modified: trunk/refman-6.0/mysql-cluster-replication.xml
===================================================================
--- trunk/refman-6.0/mysql-cluster-replication.xml 2008-02-06 10:46:08 UTC (rev 9716)
+++ trunk/refman-6.0/mysql-cluster-replication.xml 2008-02-06 12:54:28 UTC (rev 9717)
Changed blocks: 1, Lines Added: 23, Lines Deleted: 0; 1301 bytes
@@ -461,6 +461,29 @@
be noted that it has not yet been thoroughly tested and must
therefore still be considered experimental.
</para>
+
+ <important>
+ <para>
+ Beginning with MySQL 6.0.5, you should execute the following
+ statement before starting circular replication:
+
+<programlisting>
+mysql> <userinput>SET GLOBAL SLAVE_EXEC_MODE = 'IDEMPOTENT';</userinput>
+</programlisting>
+
+ This is necessary to suppress duplicate-key and other errors
+ that otherwise break circular replication of MySQL Cluster.
+ <literal>IDEMPOTENT</literal> mode is also required for
+ multi-master replication when using MySQL Cluster. (Bug
+ #31609)
+ </para>
+
+ <para>
+ See
+ <link linkend="option_mysqld_slave_exec_mode"><literal>Slave_exec_mode</literal></link>,
+ for more information.
+ </para>
+ </important>
</listitem>
<listitem>
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r9717 - in trunk: dynamic-docs/changelog dynamic-docs/command-optvars refman-5.1 refman-6.0 | jon | 6 Feb |