List:Commits« Previous MessageNext Message »
From:jon Date:May 9 2008 3:11pm
Subject:svn commit - mysqldoc@docsrva: r10702 - in trunk: it/refman-5.1 pt/refman-5.1 refman-5.1 refman-6.0
View as plain text  
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 &mdash; such
+          <literal>GRANT</literal>, <literal>REVOKE</literal>, and
+          statements manipulating triggers, stored routines, and views
+          &mdash; 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&apos;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 &mdash; such
+          <literal>GRANT</literal>, <literal>REVOKE</literal>, and
+          statements manipulating triggers, stored routines, and views
+          &mdash; 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&apos;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 &mdash; such
+          <literal>GRANT</literal>, <literal>REVOKE</literal>, and
+          statements manipulating triggers, stored routines, and views
+          &mdash; 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&apos;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 &mdash; such
+        <literal>GRANT</literal>, <literal>REVOKE</literal>, and
+        statements manipulating triggers, stored routines, and views
+        &mdash; 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&apos;s and the


Thread
svn commit - mysqldoc@docsrva: r10702 - in trunk: it/refman-5.1 pt/refman-5.1 refman-5.1 refman-6.0jon9 May