Author: jstephens
Date: 2008-05-09 17:11:11 +0200 (Fri, 09 May 2008)
New Revision: 10702
Log:
Replication of mysql database tables
(see Bug #36118 - thanks, Mats and Jason!)
Merged outstanding diffs to /it and /pt versions
Misc minor fixes
Modified:
trunk/it/refman-5.1/replication-notes.xml
trunk/pt/refman-5.1/replication-notes.xml
trunk/refman-5.1/replication-notes.xml
trunk/refman-6.0/replication-notes.xml
Modified: trunk/it/refman-5.1/replication-notes.xml
===================================================================
--- trunk/it/refman-5.1/replication-notes.xml 2008-05-09 02:25:51 UTC (rev 10701)
+++ trunk/it/refman-5.1/replication-notes.xml 2008-05-09 15:11:11 UTC (rev 10702)
Changed blocks: 4, Lines Added: 72, Lines Deleted: 29; 5222 bytes
@@ -107,6 +107,14 @@
</para>
<para>
+ An insert into an <literal>AUTO_INCREMENT</literal> column
+ caused by a stored routine or trigger running on a master that
+ uses MySQL 5.0.60 or earlier does not replicate correctly to a
+ slave running MySQL 5.1.12 through 5.1.23 (inclusive). (Bug
+ #33029)
+ </para>
+
+ <para>
Adding an <literal>AUTO_INCREMENT</literal> column to a table
with <literal>ALTER TABLE</literal> might not produce the same
ordering of the rows on the slave and the master. This occurs
@@ -948,6 +956,39 @@
</section>
+ <section id="replication-features-limit">
+
+ <title>Replication and <literal>LIMIT</literal></title>
+
+ <para>
+ Statement-based replication of <literal>LIMIT</literal> clauses
+ in <literal>DELETE</literal>, <literal>UPDATE</literal>, and
+ <literal>INSERT ... SELECT</literal> statements is unsafe since
+ the order of the rows affected is not defined. Beginning with
+ MySQL 5.1.24, when such a statement is encountered:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ when using <literal>STATEMENT</literal> mode, a warning
+ that the statement is not safe for statement-based
+ replication is now issued
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ when using <literal>MIXED</literal> mode, the statement is
+ now automatically replicated using row-based mode
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ </section>
+
<section id="replication-features-load-data">
<title>Replication and <literal>LOAD DATA</literal></title>
@@ -1033,37 +1074,39 @@
<title>Replication of the System <literal>mysql</literal> Database</title>
- <para>
- For MySQL 5.1.14 and later, the <literal>mysql</literal>
- database is not replicated. The <literal>mysql</literal>
- database is instead seen as a node specific database. Row-based
- replication is not supported on this table. Instead, statements
- that would normally update this information (including
- <literal>GRANT</literal>, <literal>REVOKE</literal> and the
- manipulation of triggers, stored routines/procedures, and views)
- are all replicated to slaves using Statement based replication.
- </para>
+ <formalpara>
- <para>
- For MySQL 5.1.13 and earlier, user privileges are replicated
- only if the <literal>mysql</literal> database is replicated.
- That is, the <literal>GRANT</literal>,
- <literal>REVOKE</literal>, <literal>SET PASSWORD</literal>,
- <literal>CREATE USER</literal>, and <literal>DROP USER</literal>
- statements take effect on the slave only if the replication
- setup includes the <literal>mysql</literal> database.
- </para>
+ <title>MySQL 5.1.14 and later</title>
- <para>
- If you're replicating all databases, but don't want statements
- that affect user privileges to be replicated, set up the slave
- to not replicate the <literal>mysql</literal> database, using
- the <option>--replicate-wild-ignore-table=mysql.%</option>
- option. The slave will recognize that issuing privilege-related
- SQL statements won't have an effect, and thus not execute those
- statements.
- </para>
+ <para>
+ Data modification statements made to tables in the
+ <literal>mysql</literal> database are replicated using the
+ row-based format. However, statements that would normally
+ update this information indirectly — such
+ <literal>GRANT</literal>, <literal>REVOKE</literal>, and
+ statements manipulating triggers, stored routines, and views
+ — are replicated to slaves using statement-based
+ replication.
+ </para>
+ </formalpara>
+
+ <formalpara>
+
+ <title>MySQL 5.1.13 and earlier</title>
+
+ <para>
+ User privileges are replicated only if the
+ <literal>mysql</literal> database is replicated. That is, the
+ <literal>GRANT</literal>, <literal>REVOKE</literal>,
+ <literal>SET PASSWORD</literal>, <literal>CREATE
+ USER</literal>, and <literal>DROP USER</literal> statements
+ take effect on the slave only if the replication setup
+ includes the <literal>mysql</literal> database.
+ </para>
+
+ </formalpara>
+
</section>
<section id="replication-features-reserved-words">
@@ -1557,7 +1600,7 @@
<section id="replication-features-different-data-types">
- <title>Replication with Columns Having Different Data Types</title>
+ <title>Replication of Columns Having Different Data Types</title>
<para>
Corresponding columns on the master's and the
Modified: trunk/pt/refman-5.1/replication-notes.xml
===================================================================
--- trunk/pt/refman-5.1/replication-notes.xml 2008-05-09 02:25:51 UTC (rev 10701)
+++ trunk/pt/refman-5.1/replication-notes.xml 2008-05-09 15:11:11 UTC (rev 10702)
Changed blocks: 4, Lines Added: 72, Lines Deleted: 29; 5222 bytes
@@ -107,6 +107,14 @@
</para>
<para>
+ An insert into an <literal>AUTO_INCREMENT</literal> column
+ caused by a stored routine or trigger running on a master that
+ uses MySQL 5.0.60 or earlier does not replicate correctly to a
+ slave running MySQL 5.1.12 through 5.1.23 (inclusive). (Bug
+ #33029)
+ </para>
+
+ <para>
Adding an <literal>AUTO_INCREMENT</literal> column to a table
with <literal>ALTER TABLE</literal> might not produce the same
ordering of the rows on the slave and the master. This occurs
@@ -948,6 +956,39 @@
</section>
+ <section id="replication-features-limit">
+
+ <title>Replication and <literal>LIMIT</literal></title>
+
+ <para>
+ Statement-based replication of <literal>LIMIT</literal> clauses
+ in <literal>DELETE</literal>, <literal>UPDATE</literal>, and
+ <literal>INSERT ... SELECT</literal> statements is unsafe since
+ the order of the rows affected is not defined. Beginning with
+ MySQL 5.1.24, when such a statement is encountered:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ when using <literal>STATEMENT</literal> mode, a warning
+ that the statement is not safe for statement-based
+ replication is now issued
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ when using <literal>MIXED</literal> mode, the statement is
+ now automatically replicated using row-based mode
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ </section>
+
<section id="replication-features-load-data">
<title>Replication and <literal>LOAD DATA</literal></title>
@@ -1033,37 +1074,39 @@
<title>Replication of the System <literal>mysql</literal> Database</title>
- <para>
- For MySQL 5.1.14 and later, the <literal>mysql</literal>
- database is not replicated. The <literal>mysql</literal>
- database is instead seen as a node specific database. Row-based
- replication is not supported on this table. Instead, statements
- that would normally update this information (including
- <literal>GRANT</literal>, <literal>REVOKE</literal> and the
- manipulation of triggers, stored routines/procedures, and views)
- are all replicated to slaves using Statement based replication.
- </para>
+ <formalpara>
- <para>
- For MySQL 5.1.13 and earlier, user privileges are replicated
- only if the <literal>mysql</literal> database is replicated.
- That is, the <literal>GRANT</literal>,
- <literal>REVOKE</literal>, <literal>SET PASSWORD</literal>,
- <literal>CREATE USER</literal>, and <literal>DROP USER</literal>
- statements take effect on the slave only if the replication
- setup includes the <literal>mysql</literal> database.
- </para>
+ <title>MySQL 5.1.14 and later</title>
- <para>
- If you're replicating all databases, but don't want statements
- that affect user privileges to be replicated, set up the slave
- to not replicate the <literal>mysql</literal> database, using
- the <option>--replicate-wild-ignore-table=mysql.%</option>
- option. The slave will recognize that issuing privilege-related
- SQL statements won't have an effect, and thus not execute those
- statements.
- </para>
+ <para>
+ Data modification statements made to tables in the
+ <literal>mysql</literal> database are replicated using the
+ row-based format. However, statements that would normally
+ update this information indirectly — such
+ <literal>GRANT</literal>, <literal>REVOKE</literal>, and
+ statements manipulating triggers, stored routines, and views
+ — are replicated to slaves using statement-based
+ replication.
+ </para>
+ </formalpara>
+
+ <formalpara>
+
+ <title>MySQL 5.1.13 and earlier</title>
+
+ <para>
+ User privileges are replicated only if the
+ <literal>mysql</literal> database is replicated. That is, the
+ <literal>GRANT</literal>, <literal>REVOKE</literal>,
+ <literal>SET PASSWORD</literal>, <literal>CREATE
+ USER</literal>, and <literal>DROP USER</literal> statements
+ take effect on the slave only if the replication setup
+ includes the <literal>mysql</literal> database.
+ </para>
+
+ </formalpara>
+
</section>
<section id="replication-features-reserved-words">
@@ -1557,7 +1600,7 @@
<section id="replication-features-different-data-types">
- <title>Replication with Columns Having Different Data Types</title>
+ <title>Replication of Columns Having Different Data Types</title>
<para>
Corresponding columns on the master's and the
Modified: trunk/refman-5.1/replication-notes.xml
===================================================================
--- trunk/refman-5.1/replication-notes.xml 2008-05-09 02:25:51 UTC (rev 10701)
+++ trunk/refman-5.1/replication-notes.xml 2008-05-09 15:11:11 UTC (rev 10702)
Changed blocks: 2, Lines Added: 31, Lines Deleted: 29; 3455 bytes
@@ -1074,37 +1074,39 @@
<title>Replication of the System <literal>mysql</literal> Database</title>
- <para>
- For MySQL 5.1.14 and later, the <literal>mysql</literal>
- database is not replicated. The <literal>mysql</literal>
- database is instead seen as a node specific database. Row-based
- replication is not supported on this table. Instead, statements
- that would normally update this information (including
- <literal>GRANT</literal>, <literal>REVOKE</literal> and the
- manipulation of triggers, stored routines/procedures, and views)
- are all replicated to slaves using Statement based replication.
- </para>
+ <formalpara>
- <para>
- For MySQL 5.1.13 and earlier, user privileges are replicated
- only if the <literal>mysql</literal> database is replicated.
- That is, the <literal>GRANT</literal>,
- <literal>REVOKE</literal>, <literal>SET PASSWORD</literal>,
- <literal>CREATE USER</literal>, and <literal>DROP USER</literal>
- statements take effect on the slave only if the replication
- setup includes the <literal>mysql</literal> database.
- </para>
+ <title>MySQL 5.1.14 and later</title>
- <para>
- If you're replicating all databases, but don't want statements
- that affect user privileges to be replicated, set up the slave
- to not replicate the <literal>mysql</literal> database, using
- the <option>--replicate-wild-ignore-table=mysql.%</option>
- option. The slave will recognize that issuing privilege-related
- SQL statements won't have an effect, and thus not execute those
- statements.
- </para>
+ <para>
+ Data modification statements made to tables in the
+ <literal>mysql</literal> database are replicated using the
+ row-based format. However, statements that would normally
+ update this information indirectly — such
+ <literal>GRANT</literal>, <literal>REVOKE</literal>, and
+ statements manipulating triggers, stored routines, and views
+ — are replicated to slaves using statement-based
+ replication.
+ </para>
+ </formalpara>
+
+ <formalpara>
+
+ <title>MySQL 5.1.13 and earlier</title>
+
+ <para>
+ User privileges are replicated only if the
+ <literal>mysql</literal> database is replicated. That is, the
+ <literal>GRANT</literal>, <literal>REVOKE</literal>,
+ <literal>SET PASSWORD</literal>, <literal>CREATE
+ USER</literal>, and <literal>DROP USER</literal> statements
+ take effect on the slave only if the replication setup
+ includes the <literal>mysql</literal> database.
+ </para>
+
+ </formalpara>
+
</section>
<section id="replication-features-reserved-words">
@@ -1598,7 +1600,7 @@
<section id="replication-features-different-data-types">
- <title>Replication with Columns Having Different Data Types</title>
+ <title>Replication of Columns Having Different Data Types</title>
<para>
Corresponding columns on the master's and the
Modified: trunk/refman-6.0/replication-notes.xml
===================================================================
--- trunk/refman-6.0/replication-notes.xml 2008-05-09 02:25:51 UTC (rev 10701)
+++ trunk/refman-6.0/replication-notes.xml 2008-05-09 15:11:11 UTC (rev 10702)
Changed blocks: 2, Lines Added: 9, Lines Deleted: 19; 2247 bytes
@@ -1043,26 +1043,16 @@
<title>Replication of the System <literal>mysql</literal> Database</title>
<para>
- The <literal>mysql</literal> database is not replicated. The
- <literal>mysql</literal> database is instead seen as a node
- specific database. Row-based replication is not supported on
- this table. Instead, statements that would normally update this
- information (including <literal>GRANT</literal>,
- <literal>REVOKE</literal> and the manipulation of triggers,
- stored routines/procedures, and views) are all replicated to
- slaves using Statement based replication.
+ Data modification statements made to tables in the
+ <literal>mysql</literal> database are replicated using the
+ row-based format. However, statements that would normally update
+ this information indirectly — such
+ <literal>GRANT</literal>, <literal>REVOKE</literal>, and
+ statements manipulating triggers, stored routines, and views
+ — are replicated to slaves using statement-based
+ replication.
</para>
- <para>
- If you're replicating all databases, but don't want statements
- that affect user privileges to be replicated, set up the slave
- to not replicate the <literal>mysql</literal> database, using
- the <option>--replicate-wild-ignore-table=mysql.%</option>
- option. The slave will recognize that issuing privilege-related
- SQL statements won't have an effect, and thus not execute those
- statements.
- </para>
-
</section>
<section id="replication-features-reserved-words">
@@ -1556,7 +1546,7 @@
<section id="replication-features-different-data-types">
- <title>Replication with Columns Having Different Data Types</title>
+ <title>Replication of Columns Having Different Data Types</title>
<para>
Corresponding columns on the master's and the
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r10702 - in trunk: it/refman-5.1 pt/refman-5.1 refman-5.1 refman-6.0 | jon | 9 May |