Author: jstephens
Date: 2008-02-18 12:36:59 +0100 (Mon, 18 Feb 2008)
New Revision: 9892
Log:
More text
′ -> ' (PDF barfed)
Modified:
trunk/refman-5.1/replication-multi-master-upgrade.xml
Modified: trunk/refman-5.1/replication-multi-master-upgrade.xml
===================================================================
--- trunk/refman-5.1/replication-multi-master-upgrade.xml 2008-02-18 11:35:51 UTC (rev 9891)
+++ trunk/refman-5.1/replication-multi-master-upgrade.xml 2008-02-18 11:36:59 UTC (rev 9892)
Changed blocks: 2, Lines Added: 158, Lines Deleted: 34; 7052 bytes
@@ -119,11 +119,12 @@
<programlisting>
USE test;
-CREATE TABLE marker (col INT);
+CREATE TABLE marker1 (col INT);
</programlisting>
- The composition of the table is completely arbitrary; the
- only requirement is that the statement used as the
+ The composition of the table is completely arbitrary; in
+ fact, the type of statement is itself completely arbitrary.
+ The only requirement is that the statement used as the
<quote>marker</quote> be unique.
</para>
@@ -334,53 +335,176 @@
</para>
</formalpara>
- </listitem>
- </orderedlist>
-
- C is now isolated from the other two servers, which are now
- replicating to each other, as shown here:
-
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="../refman-common/images/published/rpl-circular-upgrade-4.png" format="PNG"/>
- </imageobject>
- <textobject>
- <phrase lang="en">Servers A and B in mutual replication; C is
- isolated</phrase>
- </textobject>
- </mediaobject>
-
- <itemizedlist>
+ <para>
+ C is now isolated from the other two servers, which are now
+ replicating to each other, as shown here:
- <listitem>
- <para>
- Shut down C, upgrade the MySQL software from version X to
- version Y, then restart C
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="../refman-common/images/published/rpl-circular-upgrade-4.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">Servers A and B in mutual replication; C
+ is isolated</phrase>
+ </textobject>
+ </mediaobject>
</para>
</listitem>
<listitem>
+ <formalpara>
+
+ <title>Upgrade C to C'</title>
+
+ <para>
+ Shut down C, and upgrade the MySQL software on C from
+ version X to version Y:
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="../refman-common/images/published/rpl-circular-upgrade-5.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">Upgrading Server C running MySQL
+ version X to C', running MySQL version Y</phrase>
+ </textobject>
+ </mediaobject>
+
+ We refer to the upgraded server C as C'.
+ </para>
+
+ </formalpara>
+
<para>
- Stop sending events from B to A, and ensure that A has
- executed all events sent to it from B
+ For general information about performing upgrades, see the
+ <citetitle>Upgrading MySQL</citetitle> section of the
+ <citetitle>MySQL Manual</citetitle> corresponding to the
+ versions from which and to which you are upgrading.
</para>
</listitem>
<listitem>
- <para>
- Start sending events from B to C and executing them on C,
- ensuring that the first event not sent to A is the first event
- sent to C
- </para>
+ <formalpara>
+
+ <title>Start C' in offline mode</title>
+
+ <para>
+ Start server C', insuring that all its tables are in
+ read-only mode, and that no MySQL clients (with the
+ exception of a single connection from a superuser account)
+ can connect to it. You can do this by starting
+ <command>mysqld</command> with the options
+ <option>--read_only --max_connections=0</option>.
+ </para>
+
+ </formalpara>
</listitem>
<listitem>
- <para></para>
+ <formalpara>
+
+ <title>Stop replicating from B to A</title>
+
+ <para>
+ Stop sending events from B to A, and ensure that A has
+ executed all events sent to it from B:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Issue a <literal>STOP SLAVE</literal> on A
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Issue a marker statement on B, such as this one:
+
+<programlisting>
+CREATE TABLE test.marker2 (col INT);
+</programlisting>
+
+ As with the previous marker statement, the type and
+ any other aspects of the statement are completely
+ arbitrary; the only requirement is that the statement
+ must be uniquely identifiable.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Use <literal>SHOW BINLOG EVENTS</literal> on B to find
+ the binary log file and position where the marker
+ event was recorded, as described previously. We use
+ <replaceable>fileB'</replaceable> and
+ <replaceable>posB'</replaceable> to denote these
+ in the next item.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Start server A and synchronize it with B by issuing
+ the following statements on A:
+
+<programlisting>
+START SLAVE UNTIL
+ MASTER_LOG_FILE=<replaceable>fileB'</replaceable>,
+ MASTER_LOG_POS=<replaceable>posB'</replaceable>;
+
+SELECT MASTER_POS_WAIT(<replaceable>fileB'</replaceable>, <replaceable>posB'</replaceable>);
+</programlisting>
+
+ Once A has executed all events up to and including the
+ marker event, it stops.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ </formalpara>
</listitem>
- </itemizedlist>
+ <listitem>
+ <formalpara>
+
+ <title>Start replicating from B to C'</title>
+
+ <para>
+ Start sending events from B to C' and executing them on
+ C', ensuring that the first event not sent to A is the
+ first event sent to C'. You can do this by issuing the
+ following statements on C':
+
+<programlisting>
+SET @@GLOBAL.READ_ONLY = OFF;
+
+CHANGE MASTER TO
+ MASTER_HOST=<replaceable>hostB</replaceable>,
+ MASTER_LOG_FILE=<replaceable>fileB'</replaceable>,
+ MASTER_LOG_POS=<replaceable>posB'</replaceable>;
+
+START SLAVE;
+</programlisting>
+ </para>
+
+ </formalpara>
+ </listitem>
+
+ <listitem>
+ <formalpara>
+
+ <title>Start replication from C' to A</title>
+
+ <para></para>
+
+ </formalpara>
+ </listitem>
+
+ </orderedlist>
</para>
</section>
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r9892 - trunk/refman-5.1 | jon | 18 Feb |