Author: paul
Date: 2007-07-18 21:32:35 +0200 (Wed, 18 Jul 2007)
New Revision: 7142
Log:
r27738@polar: paul | 2007-07-18 12:12:47 -0500
Amplification about dangers of mixing transactional/non-transactional
tables when replicating. (Bug#26418)
Modified:
trunk/refman-4.1/replication.xml
trunk/refman-5.0/replication.xml
trunk/refman-5.1/replication-notes.xml
trunk/refman-5.2/replication-notes.xml
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:27702
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:22722
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:18941
+ 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:27738
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:22722
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:18941
Modified: trunk/refman-4.1/replication.xml
===================================================================
--- trunk/refman-4.1/replication.xml 2007-07-18 14:13:59 UTC (rev 7141)
+++ trunk/refman-4.1/replication.xml 2007-07-18 19:32:35 UTC (rev 7142)
Changed blocks: 1, Lines Added: 32, Lines Deleted: 13; 2490 bytes
@@ -2375,24 +2375,43 @@
</listitem>
<listitem>
- <remark role="todo">
- Check on the restart issue...
- </remark>
-
- <remark role="todo">
- [pd] Is this a promise we want to make?
- </remark>
-
<para>
It is possible to replicate transactional tables on the master
using non-transactional tables on the slave. For example, you
can replicate an <literal>InnoDB</literal> master table as a
- <literal>MyISAM</literal> slave table. However, if you do
- this, there are problems if the slave is stopped in the middle
- of a <literal>BEGIN</literal>/<literal>COMMIT</literal> block
- because the slave restarts at the beginning of the
- <literal>BEGIN</literal> block.
+ <literal>MyISAM</literal> slave table. However, there are
+ issues that you should consider before you do this:
</para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ There are problems if the slave is stopped in the middle
+ of a <literal>BEGIN</literal>/<literal>COMMIT</literal>
+ block because the slave restarts at the beginning of the
+ <literal>BEGIN</literal> block.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ When the storage engine type of the slave is
+ non-transactional, transactions on the master that mix
+ updates of transactional and non-transactional tables
+ should be avoided because they can cause inconsistency of
+ the data between the master's transactional table and the
+ slave's non-transactional table. That is, such
+ transactions can lead to master storage engine-specific
+ behavior with the possible effect of replication going out
+ of synchrony. MySQL does not issue a warning about this
+ currently, so extra care should be taken when replicating
+ transactional tables from the master to non-transactional
+ ones on the slaves.
+ </para>
+ </listitem>
+
+ </itemizedlist>
</listitem>
<listitem>
Modified: trunk/refman-5.0/replication.xml
===================================================================
--- trunk/refman-5.0/replication.xml 2007-07-18 14:13:59 UTC (rev 7141)
+++ trunk/refman-5.0/replication.xml 2007-07-18 19:32:35 UTC (rev 7142)
Changed blocks: 1, Lines Added: 32, Lines Deleted: 13; 2490 bytes
@@ -2432,24 +2432,43 @@
</listitem>
<listitem>
- <remark role="todo">
- Check on the restart issue...
- </remark>
-
- <remark role="todo">
- [pd] Is this a promise we want to make?
- </remark>
-
<para>
It is possible to replicate transactional tables on the master
using non-transactional tables on the slave. For example, you
can replicate an <literal>InnoDB</literal> master table as a
- <literal>MyISAM</literal> slave table. However, if you do
- this, there are problems if the slave is stopped in the middle
- of a <literal>BEGIN</literal>/<literal>COMMIT</literal> block
- because the slave restarts at the beginning of the
- <literal>BEGIN</literal> block.
+ <literal>MyISAM</literal> slave table. However, there are
+ issues that you should consider before you do this:
</para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ There are problems if the slave is stopped in the middle
+ of a <literal>BEGIN</literal>/<literal>COMMIT</literal>
+ block because the slave restarts at the beginning of the
+ <literal>BEGIN</literal> block.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ When the storage engine type of the slave is
+ non-transactional, transactions on the master that mix
+ updates of transactional and non-transactional tables
+ should be avoided because they can cause inconsistency of
+ the data between the master's transactional table and the
+ slave's non-transactional table. That is, such
+ transactions can lead to master storage engine-specific
+ behavior with the possible effect of replication going out
+ of synchrony. MySQL does not issue a warning about this
+ currently, so extra care should be taken when replicating
+ transactional tables from the master to non-transactional
+ ones on the slaves.
+ </para>
+ </listitem>
+
+ </itemizedlist>
</listitem>
<listitem>
Modified: trunk/refman-5.1/replication-notes.xml
===================================================================
--- trunk/refman-5.1/replication-notes.xml 2007-07-18 14:13:59 UTC (rev 7141)
+++ trunk/refman-5.1/replication-notes.xml 2007-07-18 19:32:35 UTC (rev 7142)
Changed blocks: 1, Lines Added: 14, Lines Deleted: 0; 1131 bytes
@@ -950,6 +950,20 @@
</para>
</caution>
+ <para>
+ When the storage engine type of the slave is non-transactional,
+ transactions on the master that mix updates of transactional and
+ non-transactional tables should be avoided because they can
+ cause inconsistency of the data between the master's
+ transactional table and the slave's non-transactional table.
+ That is, such transactions can lead to master storage
+ engine-specific behavior with the possible effect of replication
+ going out of synchrony. MySQL does not issue a warning about
+ this currently, so extra care should be taken when replicating
+ transactional tables from the master to non-transactional ones
+ on the slaves.
+ </para>
+
</section>
<section id="replication-features-morecolumns">
Modified: trunk/refman-5.2/replication-notes.xml
===================================================================
--- trunk/refman-5.2/replication-notes.xml 2007-07-18 14:13:59 UTC (rev 7141)
+++ trunk/refman-5.2/replication-notes.xml 2007-07-18 19:32:35 UTC (rev 7142)
Changed blocks: 1, Lines Added: 14, Lines Deleted: 0; 1131 bytes
@@ -950,6 +950,20 @@
</para>
</caution>
+ <para>
+ When the storage engine type of the slave is non-transactional,
+ transactions on the master that mix updates of transactional and
+ non-transactional tables should be avoided because they can
+ cause inconsistency of the data between the master's
+ transactional table and the slave's non-transactional table.
+ That is, such transactions can lead to master storage
+ engine-specific behavior with the possible effect of replication
+ going out of synchrony. MySQL does not issue a warning about
+ this currently, so extra care should be taken when replicating
+ transactional tables from the master to non-transactional ones
+ on the slaves.
+ </para>
+
</section>
<section id="replication-features-morecolumns">
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r7142 - in trunk: . refman-4.1 refman-5.0 refman-5.1 refman-5.2 | paul | 18 Jul |