[Maria-discuss] Migrating a Galera cluster to new hardware and major Maria version
I've three servers with Debian 9, Maria 10.1 and running a Galera cluster. We're upgrading the hardware by getting three new servers. They will have Debian 10 and Maria 10.3. What are my options for accomplishing this with minimal service downtime? One option I can think of Using a mysqldump snapshot, set up Maria on one of the new servers to replicate as an asyncronous slave from one node of the existing cluster.Set up Maria on the two remaining new servers in a cluster with that async slave.When all looks good, migrate workload to the new cluster. Does that seem reasonable? Tom
Hi Tom,
For minimal downtime, you could build your new cluster and then add a node
as a slave to your existing host, sounds like that's your plan. This will
then allow data to flow over to the cluster. Once your happy it's
replicating ok then do an orderly switchover and forget the original
master. Downtime is maybe 10 minutes on a slow day depending on what effort
to repoint your application layer. Also, you can probably bring up a single
app node initially much quicker and add your remaining nodes more
leisurely. Allows you to check for errors on your app layer through a
single node and control things
I would use Percona Xtrabackup to make our backup. It's much quicker and I
found much better to MySQLDump unless it's presently only a small database.
Will also carry over your GTID etc for sync. I have some notes on my blog
on my switchovers
Cheers
Peter
On Wed, 6 Nov 2019 at 00:55, Tom Worster
I've three servers with Debian 9, Maria 10.1 and running a Galera cluster.
We're upgrading the hardware by getting three new servers. They will have Debian 10 and Maria 10.3.
What are my options for accomplishing this with minimal service downtime?
One option I can think of
- Using a mysqldump snapshot, set up Maria on one of the new servers to replicate as an asyncronous slave from one node of the existing cluster. - Set up Maria on the two remaining new servers in a cluster with that async slave. - When all looks good, migrate workload to the new cluster.
Does that seem reasonable?
Tom _______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
-- Peter McLarty Leader and Technologist 0402094238 http://petermclarty.setmore.com/
Hi Peter,
Thanks.
Is an Xtrabackup ok for updrading from 10.1 to 10.3? I figured mysqldump
was preferred for such upgrades.
Tom
On 11/5/2019 6:19:34 PM, "Peter McLarty"
Hi Tom, For minimal downtime, you could build your new cluster and then add a node as a slave to your existing host, sounds like that's your plan. This will then allow data to flow over to the cluster. Once your happy it's replicating ok then do an orderly switchover and forget the original master. Downtime is maybe 10 minutes on a slow day depending on what effort to repoint your application layer. Also, you can probably bring up a single app node initially much quicker and add your remaining nodes more leisurely. Allows you to check for errors on your app layer through a single node and control things
I would use Percona Xtrabackup to make our backup. It's much quicker and I found much better to MySQLDump unless it's presently only a small database. Will also carry over your GTID etc for sync. I have some notes on my blog on my switchovers
Cheers Peter
On Wed, 6 Nov 2019 at 00:55, Tom Worster
wrote: I've three servers with Debian 9, Maria 10.1 and running a Galera cluster.
We're upgrading the hardware by getting three new servers. They will have Debian 10 and Maria 10.3.
What are my options for accomplishing this with minimal service downtime?
One option I can think of Using a mysqldump snapshot, set up Maria on one of the new servers to replicate as an asyncronous slave from one node of the existing cluster.Set up Maria on the two remaining new servers in a cluster with that async slave.When all looks good, migrate workload to the new cluster. Does that seem reasonable?
Tom _______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
-- Peter McLarty Leader and Technologist 0402094238 http://petermclarty.setmore.com/
I'm going to leave that in someone else's hands for those versions.
Technically it isn't part of the upgrade as such you taking a copy of the
10.1 database and starting it with 10.3 that would require you to run the
upgrade scripts on startup. I haven't attempted that. I would always start
the database as same version after restoring and then upgrade. One thing to
consider is if you want to make a node a slave do the recovery upgrade to
10.3 and then make the Galera cluster a slave from that I know a 2 node
cluster is less than ideal, however timewise to get this alive without
hours of downtime. Have you run a mysqldump on your existing to see how
long that would take without restore?
Literally, with this sort of approach, the downtime should be less than
half an hour for a web app
Peter
On Wed, 6 Nov 2019 at 10:26, Tom Worster
Hi Peter,
Thanks.
Is an Xtrabackup ok for updrading from 10.1 to 10.3? I figured mysqldump was preferred for such upgrades.
Tom
On 11/5/2019 6:19:34 PM, "Peter McLarty"
wrote: Hi Tom, For minimal downtime, you could build your new cluster and then add a node as a slave to your existing host, sounds like that's your plan. This will then allow data to flow over to the cluster. Once your happy it's replicating ok then do an orderly switchover and forget the original master. Downtime is maybe 10 minutes on a slow day depending on what effort to repoint your application layer. Also, you can probably bring up a single app node initially much quicker and add your remaining nodes more leisurely. Allows you to check for errors on your app layer through a single node and control things
I would use Percona Xtrabackup to make our backup. It's much quicker and I found much better to MySQLDump unless it's presently only a small database. Will also carry over your GTID etc for sync. I have some notes on my blog on my switchovers
Cheers Peter
On Wed, 6 Nov 2019 at 00:55, Tom Worster
wrote: I've three servers with Debian 9, Maria 10.1 and running a Galera cluster.
We're upgrading the hardware by getting three new servers. They will have Debian 10 and Maria 10.3.
What are my options for accomplishing this with minimal service downtime?
One option I can think of
- Using a mysqldump snapshot, set up Maria on one of the new servers to replicate as an asyncronous slave from one node of the existing cluster. - Set up Maria on the two remaining new servers in a cluster with that async slave. - When all looks good, migrate workload to the new cluster.
Does that seem reasonable?
Tom _______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
-- Peter McLarty Leader and Technologist 0402094238 http://petermclarty.setmore.com/
-- Peter McLarty Leader and Technologist 0402094238 http://petermclarty.setmore.com/
participants (2)
-
Peter McLarty
-
Tom Worster