Merge lp:~hrvojem/percona-xtradb-cluster/bug1264394-5.6 into lp:percona-xtradb-cluster

Proposed by Hrvoje Matijakovic
Status: Merged
Approved by: Hrvoje Matijakovic
Approved revision: no longer in the source branch.
Merged at revision: 709
Proposed branch: lp:~hrvojem/percona-xtradb-cluster/bug1264394-5.6
Merge into: lp:percona-xtradb-cluster
Diff against target: 398 lines (+121/-89)
5 files modified
doc-pxc/source/howtos/3nodesec2.rst (+44/-52)
doc-pxc/source/howtos/singlebox.rst (+15/-20)
doc-pxc/source/index.rst (+0/-4)
doc-pxc/source/release-notes/Percona-XtraDB-Cluster-5.6.15-25.3.rst (+13/-3)
doc-pxc/source/upgrading_guide_55_56.rst (+49/-10)
To merge this branch: bzr merge lp:~hrvojem/percona-xtradb-cluster/bug1264394-5.6
Reviewer Review Type Date Requested Status
Raghavendra D Prabhu (community) Approve
Review via email: mp+203957@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'doc-pxc/source/howtos/3nodesec2.rst'
2--- doc-pxc/source/howtos/3nodesec2.rst 2013-12-18 13:09:52 +0000
3+++ doc-pxc/source/howtos/3nodesec2.rst 2014-01-30 13:24:56 +0000
4@@ -6,7 +6,7 @@
5 Assume you are running *m1.xlarge* instances with OS *Red Hat Enterprise Linux 6.1 64-bit*.
6 Make sure to remove existing PXC-5.5 and PS-5.5/5.6 packages before proceeding.
7
8-Install XtraDB Cluster from RPM:
9+Install |Percona XtraDB Cluster| from RPM:
10
11 1. Install Percona's regular and testing repositories: ::
12
13@@ -32,13 +32,10 @@
14 iptables -A INPUT -i eth0 -p tcp -m tcp --source 192.168.0.1/24 --dport 4567 -j ACCEPT
15
16
17-5. Create /etc/my.cnf files.
18+5. Create :file:`/etc/my.cnf` files.
19
20 On the first node (assume IP 10.93.46.58): ::
21
22- [mysqld_safe]
23- wsrep_urls=gcomm://10.93.46.58:4567,gcomm://10.93.46.59:4567,gcomm://10.93.46.60:4567,gcomm://
24-
25 [mysqld]
26 datadir=/mnt/data
27 user=mysql
28@@ -46,6 +43,7 @@
29 binlog_format=ROW
30
31 wsrep_provider=/usr/lib64/libgalera_smm.so
32+ wsrep_cluster_address=gcomm://10.93.46.58,10.93.46.59,10.93.46.60
33
34 wsrep_slave_threads=2
35 wsrep_cluster_name=trimethylxanthine
36@@ -57,9 +55,6 @@
37
38 On the second node (assume IP 10.93.46.59): ::
39
40- [mysqld_safe]
41- wsrep_urls=gcomm://10.93.46.58:4567,gcomm://10.93.46.59:4567,gcomm://10.93.46.60:4567,gcomm://
42-
43 [mysqld]
44 datadir=/mnt/data
45 user=mysql
46@@ -67,6 +62,7 @@
47 binlog_format=ROW
48
49 wsrep_provider=/usr/lib64/libgalera_smm.so
50+ wsrep_cluster_address=gcomm://10.93.46.58,10.93.46.59,10.93.46.60
51
52 wsrep_slave_threads=2
53 wsrep_cluster_name=trimethylxanthine
54@@ -76,67 +72,63 @@
55 innodb_locks_unsafe_for_binlog=1
56 innodb_autoinc_lock_mode=2
57
58-On the third (and following nodes) config is similar, with the following change: ::
59+On the third (and following nodes) configuration is similar, with the following change: ::
60
61 wsrep_node_name=node3
62
63 In this example variable :variable:`wsrep_urls` is being used instead of :variable:`wsrep_cluster_address`. With this configuration, node will first try to reach a cluster on `10.93.46.58:4567` if there is no cluster node, then it will try on `10.93.46.59:4567` and then `10.93.46.60:4567`. If no nodes are up, it will start a new cluster. Variable :variable:`wsrep_urls` goes into the [mysql_safe] section so it's important that the mysql server instance is started with the `/bin/mysql_safe` and not `bin/mysqld`.
64
65-6. Start mysqld_safe
66+6. Start the |Percona XtraDB Cluster|
67
68 On the first node: ::
69
70- mysqld_safe
71+ [root@node1 ~]# /etc/init.d/mysql bootstrap-pxc
72
73 You should be able to see in console (or in error-log file): ::
74
75- 111216 0:16:42 [Note] /usr/sbin/mysqld: ready for connections.
76- Version: '5.5.17' socket: '/var/lib/mysql/mysql.sock' port: 3306 Percona XtraDB Cluster (GPL), Release alpha22.1, Revision 3673 wsrep_22.3.r3673
77- 111216 0:16:42 [Note] WSREP: Assign initial position for certification: 0, protocol version: 1
78- 111216 0:16:42 [Note] WSREP: Synchronized with group, ready for connections
79+ 2014-01-30 11:52:35 23280 [Note] /usr/sbin/mysqld: ready for connections.
80+ Version: '5.6.15-56' socket: '/var/lib/mysql/mysql.sock' port: 3306 Percona XtraDB Cluster (GPL), Release 25.3, Revision 706, wsrep_25.3.r4034
81+
82
83 On the second (and following nodes): ::
84
85- mysqld_safe
86+ [root@node2 ~]# /etc/init.d/mysql start
87
88 You should be able to see in console (or in error-log file): ::
89
90- 111216 0:21:39 [Note] WSREP: Flow-control interval: [12, 23]
91- 111216 0:21:39 [Note] WSREP: Shifting OPEN -> PRIMARY (TO: 0)
92- 111216 0:21:39 [Note] WSREP: New cluster view: global state: f912d2eb-27a2-11e1-0800-f34c520a3d4b:0, view# 2: Primary, number of nodes: 2, my index: 1, protocol version 1
93- 111216 0:21:39 [Warning] WSREP: Gap in state sequence. Need state transfer.
94- 111216 0:21:41 [Note] WSREP: Running: 'wsrep_sst_rsync 'joiner' '10.93.46.60' '' '/mnt/data/' '/etc/my.cnf' '1694' 2>sst.err'
95- 111216 0:21:41 [Note] WSREP: Prepared SST request: rsync|10.93.46.60:4444/rsync_sst
96- 111216 0:21:41 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
97- 111216 0:21:41 [Note] WSREP: Assign initial position for certification: 0, protocol version: 1
98- 111216 0:21:41 [Note] WSREP: prepared IST receiver, listening in: tcp://10.93.46.60:4568
99- 111216 0:21:41 [Note] WSREP: Node 1 (node2) requested state transfer from '*any*'. Selected 0 (node1)(SYNCED) as donor.
100- 111216 0:21:41 [Note] WSREP: Shifting PRIMARY -> JOINER (TO: 0)
101- 111216 0:21:41 [Note] WSREP: Requesting state transfer: success, donor: 0
102- 111216 0:21:42 [Note] WSREP: 0 (node1): State transfer to 1 (node2) complete.
103- 111216 0:21:42 [Note] WSREP: Member 0 (node1) synced with group.
104- 111216 0:21:42 [Note] WSREP: SST complete, seqno: 0
105- 111216 0:21:42 [Note] Plugin 'FEDERATED' is disabled.
106- 111216 0:21:42 InnoDB: The InnoDB memory heap is disabled
107- 111216 0:21:42 InnoDB: Mutexes and rw_locks use GCC atomic builtins
108- 111216 0:21:42 InnoDB: Compressed tables use zlib 1.2.3
109- 111216 0:21:42 InnoDB: Using Linux native AIO
110- 111216 0:21:42 InnoDB: Initializing buffer pool, size = 128.0M
111- 111216 0:21:42 InnoDB: Completed initialization of buffer pool
112- 111216 0:21:42 InnoDB: highest supported file format is Barracuda.
113- 111216 0:21:42 InnoDB: Waiting for the background threads to start
114- 111216 0:21:43 Percona XtraDB (http://www.percona.com) 1.1.8-20.1 started; log sequence number 1597945
115- 111216 0:21:43 [Note] Event Scheduler: Loaded 0 events
116- 111216 0:21:43 [Note] WSREP: Signalling provider to continue.
117- 111216 0:21:43 [Note] WSREP: Received SST: f912d2eb-27a2-11e1-0800-f34c520a3d4b:0
118- 111216 0:21:43 [Note] WSREP: SST finished: f912d2eb-27a2-11e1-0800-f34c520a3d4b:0
119- 111216 0:21:43 [Note] /usr/sbin/mysqld: ready for connections.
120- Version: '5.5.17' socket: '/var/lib/mysql/mysql.sock' port: 3306 Percona XtraDB Cluster (GPL), Release alpha22.1, Revision 3673 wsrep_22.3.r3673
121- 111216 0:21:43 [Note] WSREP: 1 (node2): State transfer from 0 (node1) complete.
122- 111216 0:21:43 [Note] WSREP: Shifting JOINER -> JOINED (TO: 0)
123- 111216 0:21:43 [Note] WSREP: Member 1 (node2) synced with group.
124- 111216 0:21:43 [Note] WSREP: Shifting JOINED -> SYNCED (TO: 0)
125- 111216 0:21:43 [Note] WSREP: Synchronized with group, ready for connections
126+ 2014-01-30 09:52:42 26104 [Note] WSREP: Flow-control interval: [28, 28]
127+ 2014-01-30 09:52:42 26104 [Note] WSREP: Restored state OPEN -> JOINED (2)
128+ 2014-01-30 09:52:42 26104 [Note] WSREP: Member 2 (percona1) synced with group.
129+ 2014-01-30 09:52:42 26104 [Note] WSREP: Shifting JOINED -> SYNCED (TO: 2)
130+ 2014-01-30 09:52:42 26104 [Note] WSREP: New cluster view: global state: 4827a206-876b-11e3-911c-3e6a77d54953:2, view# 7: Primary, number of nodes: 3, my index: 2, protocol version 2
131+ 2014-01-30 09:52:42 26104 [Note] WSREP: SST complete, seqno: 2
132+ 2014-01-30 09:52:42 26104 [Note] Plugin 'FEDERATED' is disabled.
133+ 2014-01-30 09:52:42 26104 [Note] InnoDB: The InnoDB memory heap is disabled
134+ 2014-01-30 09:52:42 26104 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
135+ 2014-01-30 09:52:42 26104 [Note] InnoDB: Compressed tables use zlib 1.2.3
136+ 2014-01-30 09:52:42 26104 [Note] InnoDB: Using Linux native AIO
137+ 2014-01-30 09:52:42 26104 [Note] InnoDB: Not using CPU crc32 instructions
138+ 2014-01-30 09:52:42 26104 [Note] InnoDB: Initializing buffer pool, size = 128.0M
139+ 2014-01-30 09:52:42 26104 [Note] InnoDB: Completed initialization of buffer pool
140+ 2014-01-30 09:52:43 26104 [Note] InnoDB: Highest supported file format is Barracuda.
141+ 2014-01-30 09:52:43 26104 [Note] InnoDB: 128 rollback segment(s) are active.
142+ 2014-01-30 09:52:43 26104 [Note] InnoDB: Waiting for purge to start
143+ 2014-01-30 09:52:43 26104 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.15-rel62.0 started; log sequence number 1626341
144+ 2014-01-30 09:52:43 26104 [Note] RSA private key file not found: /var/lib/mysql//private_key.pem. Some authentication plugins will not work.
145+ 2014-01-30 09:52:43 26104 [Note] RSA public key file not found: /var/lib/mysql//public_key.pem. Some authentication plugins will not work.
146+ 2014-01-30 09:52:43 26104 [Note] Server hostname (bind-address): '*'; port: 3306
147+ 2014-01-30 09:52:43 26104 [Note] IPv6 is available.
148+ 2014-01-30 09:52:43 26104 [Note] - '::' resolves to '::';
149+ 2014-01-30 09:52:43 26104 [Note] Server socket created on IP: '::'.
150+ 2014-01-30 09:52:43 26104 [Note] Event Scheduler: Loaded 0 events
151+ 2014-01-30 09:52:43 26104 [Note] /usr/sbin/mysqld: ready for connections.
152+ Version: '5.6.15-56' socket: '/var/lib/mysql/mysql.sock' port: 3306 Percona XtraDB Cluster (GPL), Release 25.3, Revision 706, wsrep_25.3.r4034
153+ 2014-01-30 09:52:43 26104 [Note] WSREP: inited wsrep sidno 1
154+ 2014-01-30 09:52:43 26104 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
155+ 2014-01-30 09:52:43 26104 [Note] WSREP: REPL Protocols: 5 (3, 1)
156+ 2014-01-30 09:52:43 26104 [Note] WSREP: Assign initial position for certification: 2, protocol version: 3
157+ 2014-01-30 09:52:43 26104 [Note] WSREP: Service thread queue flushed.
158+ 2014-01-30 09:52:43 26104 [Note] WSREP: Synchronized with group, ready for connections
159
160 When all nodes are in SYNCED stage your cluster is ready!
161
162
163=== modified file 'doc-pxc/source/howtos/singlebox.rst'
164--- doc-pxc/source/howtos/singlebox.rst 2013-09-05 13:37:01 +0000
165+++ doc-pxc/source/howtos/singlebox.rst 2014-01-30 13:24:56 +0000
166@@ -1,7 +1,10 @@
167+.. _singe_box:
168+
169+==========================================
170 How to setup 3 node cluster on single box
171 ==========================================
172
173-This example shows how to setup 3-node cluster on the single physical box. Assume you installed |Percona XtraDB Cluster| from binary .tar.gz into directory ::
174+This example shows how to setup 3-node cluster on the single physical box. Assume you installed |Percona XtraDB Cluster| from binary ``.tar.gz`` into directory ::
175
176 /usr/local/Percona-XtraDB-Cluster-5.5.24-23.6.342.Linux.x86_64
177
178@@ -21,9 +24,9 @@
179
180 In this example local IP address is 192.168.2.21
181
182-Then we should be able to start initial node as (from directory /usr/local/Percona-XtraDB-Cluster-5.5.24-23.6.342.Linux.x86_64): ::
183+Then we should be able to start initial node as (from directory :file:`/usr/local/Percona-XtraDB-Cluster-5.6.15-25.3.706.Linux.x86_64`): ::
184
185- bin/mysqld_safe --defaults-file=/etc/my.4000.cnf
186+ bin/mysqld_safe --defaults-file=/etc/my.4000.cnf --wsrep-new-cluster
187
188 Following output will let out know that node was started successfully: ::
189
190@@ -61,24 +64,20 @@
191
192 mysql -h127.0.0.1 -P5000 -e "CREATE DATABASE hello_peter"
193
194-In this example variable :variable:`wsrep_urls` is being used instead of :variable:`wsrep_cluster_address`. With this configuration, node will first try to reach a cluster on port 4030, if there is no cluster node, then it will try on port 5030 and then 6030. If no nodes are up, it will start a new cluster. Variable :variable:`wsrep_urls` goes into the [mysql_safe] section so it's important that the mysql server instance is started with the `/bin/mysql_safe` and not `bin/mysqld`.
195-
196 Configuration files (/etc/my.4000.cnf): ::
197
198 /etc/my.4000.cnf
199
200- [mysqld_safe]
201- wsrep_urls=gcomm://192.168.2.21:4030,gcomm://192.168.2.21:5030,gcomm://192.168.2.21:6030,gcomm://
202-
203 [mysqld]
204 port = 4000
205 socket=/tmp/mysql.4000.sock
206 datadir=/data/bench/d1
207- basedir=/usr/local/Percona-XtraDB-Cluster-5.5.24-23.6.342.Linux.x86_64
208+ basedir=/usr/local/Percona-XtraDB-Cluster-5.6.15-25.3.706.Linux.x86_64
209 user=mysql
210 log_error=error.log
211 binlog_format=ROW
212- wsrep_provider=/usr/local/Percona-XtraDB-Cluster-5.5.24-23.6.342.Linux.x86_64/lib/libgalera_smm.so
213+ wsrep_cluster_address='gcomm://192.168.2.21:5030,192.168.2.21:6030'
214+ wsrep_provider=/usr/local/Percona-XtraDB-Cluster-5.6.15-25.3.706.Linux.x86_64/lib/libgalera_smm.so
215 wsrep_sst_receive_address=192.168.2.21:4020
216 wsrep_node_incoming_address=192.168.2.21
217 wsrep_slave_threads=2
218@@ -94,18 +93,16 @@
219
220 /etc/my.5000.cnf
221
222- [mysqld_safe]
223- wsrep_urls=gcomm://192.168.2.21:4030,gcomm://192.168.2.21:5030,gcomm://192.168.2.21:6030,gcomm://
224-
225 [mysqld]
226 port = 5000
227 socket=/tmp/mysql.5000.sock
228 datadir=/data/bench/d2
229- basedir=/usr/local/Percona-XtraDB-Cluster-5.5.24-23.6.342.Linux.x86_64
230+ basedir=/usr/local/Percona-XtraDB-Cluster-5.6.15-25.3.706.Linux.x86_64
231 user=mysql
232 log_error=error.log
233 binlog_format=ROW
234- wsrep_provider=/usr/local/Percona-XtraDB-Cluster-5.5.24-23.6.342.Linux.x86_64/lib/libgalera_smm.so
235+ wsrep_cluster_address='gcomm://192.168.2.21:4030,192.168.2.21:6030'
236+ wsrep_provider=/usr/local/Percona-XtraDB-Cluster-5.6.15-25.3.706.Linux.x86_64/lib/libgalera_smm.so
237 wsrep_sst_receive_address=192.168.2.21:5020
238 wsrep_node_incoming_address=192.168.2.21
239 wsrep_slave_threads=2
240@@ -120,18 +117,16 @@
241
242 /etc/my.6000.cnf
243
244- [mysqld_safe]
245- wsrep_urls=gcomm://192.168.2.21:4030,gcomm://192.168.2.21:5030,gcomm://192.168.2.21:6030,gcomm://
246-
247 [mysqld]
248 port = 6000
249 socket=/tmp/mysql.6000.sock
250 datadir=/data/bench/d3
251- basedir=/usr/local/Percona-XtraDB-Cluster-5.5.24-23.6.342.Linux.x86_64
252+ basedir=/usr/local/Percona-XtraDB-Cluster-5.6.15-25.3.706.Linux.x86_64
253 user=mysql
254 log_error=error.log
255 binlog_format=ROW
256- wsrep_provider=/usr/local/Percona-XtraDB-Cluster-5.5.24-23.6.342.Linux.x86_64/lib/libgalera_smm.so
257+ wsrep_cluster_address='gcomm://192.168.2.21:4030,192.168.2.21:5030'
258+ wsrep_provider=/usr/local/Percona-XtraDB-Cluster-5.6.15-25.3.706.Linux.x86_64/lib/libgalera_smm.so
259 wsrep_sst_receive_address=192.168.2.21:6020
260 wsrep_node_incoming_address=192.168.2.21
261 wsrep_slave_threads=2
262
263=== modified file 'doc-pxc/source/index.rst'
264--- doc-pxc/source/index.rst 2014-01-29 15:10:12 +0000
265+++ doc-pxc/source/index.rst 2014-01-30 13:24:56 +0000
266@@ -7,10 +7,6 @@
267 Percona XtraDB Cluster 5.6 Documentation
268 ==========================================
269
270-.. note::
271-
272- Please note: |Percona XtraDB Cluster| 5.6 is RELEASE CANDIDATE quality software. It should *NOT* be used in production environments. Refer to :ref:`upgrading_guide` for upgrade guide.
273-
274 |Percona XtraDB Cluster| is High Availability and Scalability solution for MySQL Users.
275
276 |Percona XtraDB Cluster| provides:
277
278=== modified file 'doc-pxc/source/release-notes/Percona-XtraDB-Cluster-5.6.15-25.3.rst'
279--- doc-pxc/source/release-notes/Percona-XtraDB-Cluster-5.6.15-25.3.rst 2014-01-29 15:47:41 +0000
280+++ doc-pxc/source/release-notes/Percona-XtraDB-Cluster-5.6.15-25.3.rst 2014-01-30 13:24:56 +0000
281@@ -22,7 +22,9 @@
282
283 Node would get stuck and required restart if ``DDL`` was performed after ``FLUSH TABLES WITH READ LOCK``. Bug fixed :bug:`1265656`.
284
285- Default value for :variable:`binlog_format` is now ``ROW`` and for :variable:`innodb_autoinc_lock_mode` is ``2``. This is done so that |Percona XtraDB Cluster| is not started with wrong defaults leading to non-deterministic outcomes like crash. Bug fixed :bug:`1243228`.
286+ Galera provider pause has been fixed to avoid potential deadlock with replicating threads.
287+
288+ Default value for :variable:`binlog_format` is now ``ROW``. This is done so that |Percona XtraDB Cluster| is not started with wrong defaults leading to non-deterministic outcomes like crash. Bug fixed :bug:`1243228`.
289
290 During the installation of ``percona-xtradb-cluster-garbd-3.x`` package, *Debian* tries to start it, but as the configuration is not set, it would fail to start and leave the installation in ``iF`` state. Bug fixed :bug:`1262171`.
291
292@@ -39,8 +41,16 @@
293 Binary log directory is now being cleanup as part of the :ref:`XtraBackup SST <xtrabackup_sst>`. Bug fixed :bug:`1273368`.
294
295 First connection would hang after changing the :variable:`wsrep_cluster_address` variable. Bug fixed :bug:`1022250`.
296-
297- Fixed multiple build bugs: :bug:`1262716`, :bug:`1269063`, :bug:`1269351`, :bug:`1272723`, :bug:`1272732`.
298+
299+ When :variable:`gmcast.listen_addr` was set manually it did not allow nodes own address in gcomm address list. Bug fixed :bug:`1099478`.
300+
301+ GCache file allocation could fail if file size was a multiple of page size. Bug fixed :bug:`1259952`.
302+
303+ Group remerge after partitioning event has been fixed. Bug fixed :bug:`1232747`.
304+
305+ Fixed the OpenSSL linking exceptions. Bug fixed :bug:`1259063`.
306+
307+ Fixed multiple build bugs: :bug:`1262716`, :bug:`1269063`, :bug:`1269351`, :bug:`1272723`, :bug:`1272732`, and :bug:`1261996`.
308
309 Other bugs fixed: :bug:`1273101`, :bug:`1272961`, :bug:`1271264`, and :bug:`1253055`.
310
311
312=== modified file 'doc-pxc/source/upgrading_guide_55_56.rst'
313--- doc-pxc/source/upgrading_guide_55_56.rst 2014-01-29 23:50:44 +0000
314+++ doc-pxc/source/upgrading_guide_55_56.rst 2014-01-30 13:24:56 +0000
315@@ -56,7 +56,7 @@
316 # Required under certain conditions
317 read_only=ON
318
319-**Step #5.1** "read_only=ON" is required only when the tables you have contain timestamp/datetime/time data types as those data types are incompatible across replication from higher version to lower. This is currently a limitation of mysql itself. Also, refer to `Replication compatibility guide https://dev.mysql.com/doc/refman/5.6/en/replication-compatibility.html>`_. Any DDLs during migration are not recommended for the same reason.
320+**Step #5.1** "read_only=ON" is required only when the tables you have contain timestamp/datetime/time data types as those data types are incompatible across replication from higher version to lower. This is currently a limitation of mysql itself. Also, refer to `Replication compatibility guide <https://dev.mysql.com/doc/refman/5.6/en/replication-compatibility.html>`_. Any DDLs during migration are not recommended for the same reason.
321
322 **Step #5.2** To ensure 5.6 read-only nodes are not written to during migration, clustercheck (usually used with xinetd and HAProxy) distributed with PXC has been modified to return 503 when the node is read-only so that HAProxy doesn't send writes to it. Refer to clustercheck script for more details. Instead, you can also opt for read-write splitting at load-balancer/proxy level or at application level.
323
324@@ -134,16 +134,33 @@
325
326 **Step #3** Fix the variables in the |MySQL| configuration file :file:`my.cnf` which are not compatible with |Percona Server| 5.6. Detailed list can be checked in `Changed in Percona Server 5.6 <http://www.percona.com/doc/percona-server/5.6/changed_in_56.html>`_ documentation. Add the following to :file:`my.cnf` for compatibility with 5.5 replication for the duration of upgrade, add 'socket.checksum=1' to the :variable:`wsrep_provider_options` variable and set :variable:`wsrep_provider` set to ``none`` ::
327
328+ # Required for compatibility with galera-2
329+ # Append socket.checksum=1 to other options if others are in wsrep_provider_options. Eg.: "gmcast.listen_addr=tcp://127.0.0.1:15010; socket.checksum=1"
330 wsrep_provider_options="socket.checksum=1"
331- wsrep_provider=none
332+ # Required for replication compatibility
333 log_bin_use_v1_row_events=1
334 gtid_mode=0
335 binlog_checksum=NONE
336- wsrep-slave-threads=1
337+ # Required under certain conditions
338+ read_only=ON
339+
340+**Step #3.1** "read_only=ON" is required only when the tables you have contain timestamp/datetime/time data types as those data types are incompatible across
341+replication from higher version to lower. This is currently a limitation of mysql itself. Also, refer to `Replication compatibility guide <https://dev.mysql.c
342+om/doc/refman/5.6/en/replication-compatibility.html>`_. Any DDLs during migration are not recommended for the same reason.
343+
344+**Step #3.2** To ensure 5.6 read-only nodes are not written to during migration, clustercheck (usually used with xinetd and HAProxy) distributed with PXC has
345+been modified to return 503 when the node is read-only so that HAProxy doesn't send writes to it. Refer to clustercheck script for more details. Instead, you
346+can also opt for read-write splitting at load-balancer/proxy level or at application level.
347+
348+.. note::
349+ On the last 5.5 node to upgrade to 5.6, the compatibility options of Step #3 are not required since all other nodes will already be upgrade and their configuration options are compatible with a 5.6 node without them.
350
351 **Step #4** Install the new packages: ::
352
353- # apt-get install percona-xtradb-cluster-server-5.6 percona-xtradb-cluster-client-5.6 percona-xtrabackup percona-xtradb-cluster-galera-3.x
354+ # apt-get install percona-xtradb-cluster-56
355+
356+.. note::
357+ For more details on installation, refer to :ref:`installation` guide. You may also want to install percona-xtradb-cluster-full-56 which installs other ancillary packages like '-shared-56', '-test-56', debuginfos and so on.
358
359 **Step #5** After node has been started you'll need to run ``mysql_upgrade``: ::
360
361@@ -163,9 +180,31 @@
362
363 **Step #9** After this has been set up all 5.5 nodes can be upgraded, one-by-one, as described in the Stage I.
364
365- a) After all nodes in the cluster are upgraded to 5.6, option :variable:`read_only` should be set to ``OFF``.
366-
367- b) Nodes should be restarted with compatibility options added earlier removed/updated for optimal performance (though cluster will continue run with those options).
368-
369-
370-
371+ a) If :variable:`read_only` was turned on in Step #3.1, then after all nodes in the cluster are upgraded to 5.6 or equivalently, after the last 5.5 has been take down for upgrade, option :variable:`read_only` can be set to ``OFF`` (since this is a dynamic variable, it can done without restart).
372+
373+ b) If read-write splitting was done in applications and/or in load-balancer then in previous step, instead of ``read_only``, writes need to be directed to 5.6 nodes.
374+
375+Stage III [Optional]
376+--------------------
377+
378+**Step #10** This step is required to turn off the options added in #Step 3. Note, that this step is not required immediately after upgrade and can be done at a latter stage. The aim here is to turn off the compatibility options for performance reasons (only socket.checksum=1 fits this). This requires restart of each node. Hence, following can be removed/commented-out::
379+
380+ # Remove socket.checksum=1 from other options if others are in wsrep_provider_options. Eg.: "gmcast.listen_addr=tcp://127.0.0.1:15010"
381+ # Removing this makes socket.checksum=2 which uses hardware accelerated CRC32 checksumming.
382+ wsrep_provider_options="socket.checksum=1"
383+
384+ # Required for replication compatibility, being removed here.
385+ # You can keep some of these if you wish.
386+ log_bin_use_v1_row_events=1
387+
388+ # You will need this if you need to add async-slaves
389+ gtid_mode=0
390+
391+ # Galera already has full writeset checksumming, so
392+ # this is required only if async-slaves are there or
393+ # binlogging is turned on.
394+ binlog_checksum=NONE
395+
396+ # Remove it from cnf even though it was turned off at runtime in Step #11.
397+ read_only=ON
398+

Subscribers

People subscribed via source and target branches