一个5.7版本的MySQL单点数据库,版本信息是:

Server version: 5.7.31-log MySQL Community Server (GPL)

数据量已达到760G,日常存在性能问题,需迁移到PXC集群,由于之前几年实施使用的都是8.0版本PXC集群,这次也想当然的想直接迁移到PXC8.0。

鉴于数据量比较巨大,采用mysqldump的方式显然是不可行的,实际上项目反馈也是无法用mysqldump备份成功,mysqldump备份几百兆、几个G还是可行的,但是面对上百G的数据量已经无能为力。好在percona有XtraBackup这个备份工具,给我们做MySQL的大数据量迁移创造了便利条件。

■ 安装xtrabackup

注意:xtrabackup8.0只支持mysql8.0以上的版本,mysql5.7或以下需要使用xtrabackup8.0以下的版本

XtraBackup各版本之间的区别如下:

8.0仅支持mysql8.0

2.4专针对5.7开发,兼容5.6,5.5

2.3针对5.6开发,兼容5.5

2.2针对5.5开发

在percona官网可以方便的找到PXC以及xtrabackup各个版本的介质,xtrabackup位于:

https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/

可以直接下载bundle版本的介质,离线安装:

yum install percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm

安装报错缺少libev,如下安装libev即可

yum install libev-4.15-7.el7.x86_64.rpm

本次还遇见如下错误:

Error: Package: perl-DBD-MySQL-4.023-5.el7.x86_64 (centos7)
Requires: libmysqlclient.so.18()(64bit)
Error: Package: perl-DBD-MySQL-4.023-5.el7.x86_64 (centos7)
Requires: libmysqlclient.so.18(libmysqlclient_18)(64bit)
Error: Package: 2:postfix-2.10.1-6.el7.x86_64 (@anaconda)
Requires: libmysqlclient.so.18(libmysqlclient_18)(64bit)
Error: Package: 2:postfix-2.10.1-6.el7.x86_64 (@anaconda)
Requires: libmysqlclient.so.18()(64bit)

查询libmysqlclient.so,维度确实缺少libmysqlclient.so.18

[root@localhost soft]# find / -name libmysqlclient.so*

/usr/lib64/mysql/libmysqlclient.so.20

/usr/lib64/mysql/libmysqlclient.so.20.3.18

因此需确认这个lib库来自哪里,网搜查到的原因在于没有安装mysql-community-libs-compat包

到mysql官网下载:https://downloads.mysql.com/archives/community/

https://downloads.mysql.com/archives/get/p/23/file/mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm

安装上这个lib包:

yum install mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm

之后再次安装xtrabackup就可以了

■ 以下开始备份

mkdir -p /u01/xtrabackup

xtrabackup --user=root --password='passwd' --backup --target-dir=/u01/xtrabackup > xtrabackup.log 2>&1 &

211119 17:35:56 开始备份

211119 21:33:33 completed OK!

备份数据总计:

759G xtrabackup

第一次备份未开并发,耗时接近4个小时

后续开多并发备份,直接写到较快的nfs上,耗时大幅减少!

注:可新增一个复制权限的用户用于备份

create user 'backup'@'localhost' identified by 'backup';
grant reload, lock tables, process, replication client on *.* to 'backup'@'localhost';
flush privileges;

■ 在PXC 8.0.23集群还原数据库

这是一个3节点集群,计划还原在节点1。

先停掉节点1的PXC服务,包括keepalived、proxysql、mysql@bootstrap

根据源库的my.cnf配置文件,建立新的my.cnf配置文件

之后根据文档“异机恢复”(本站网搜可得)操作,准备全备份的日志时,报错如下:

[root@mysqldb1:0 /u01/mysql]# xtrabackup --prepare --apply-log-only --target-dir=/u01/nfs18/xtrabackup
xtrabackup: [Warning] option 'innodb_undo_tablespaces': unsigned value 0 adjusted to 2.
xtrabackup: recognized server arguments: --innodb_checksum_algorithm=crc32 --innodb_data_file_path=ibdata1:12M:autoextend --innodb_log_files_in_group=2 --innodb_log_file_size=50331648 --innodb_page_size=16384 --innodb_log_block_size=512 --innodb_undo_directory=./ --innodb_undo_tablespaces=0 --server-id=1
xtrabackup: recognized client arguments: --prepare=1 --apply-log-only=1 --target-dir=/u01/nfs18/xtrabackup
xtrabackup version 8.0.23-16 based on MySQL server 8.0.23 Linux (x86_64) (revision id: 934bc8f)
xtrabackup: cd to /u01/nfs18/xtrabackup/
xtrabackup: This target seems to be not prepared yet.
Number of pools: 1
xtrabackup: error: Unsupported redo log format 1
This version of Percona XtraBackup can only perform backups and restores against MySQL 8.0 and Percona Server 8.0, please use Percona Xtrabackup 2.4 for this database.

可见,没法使用8.0版本的XtraBackup恢复24版本的备份!

看来只能降级PXC集群版本到5.7了。

■ 卸载已有的PXC8版本,安装PXC57

从percona官网下载对应版本的cluster介质、xtrabackup介质

https://www.percona.com/downloads/Percona-XtraDB-Cluster-57/LATEST/

安装比较简单。

■ 根据源库配置修改新的配置文件

注意新的配置涉及多个配置文件,为避免可能的错误,需要全部确认所有的配置参数没有问题,否则可能会有意想不到的惊喜(错误)

这里涉及到一个MySQL数据库及集群的理解过程,边学习边实践也是挺有意思的,无知者无畏嘛,真是越学习越发现自己的肤浅啊。

之后就是正常的恢复、启动过程,由于本机硬盘IO性能达到800MB/s的写入速度,恢复仅用时半个多小时。

但启动时遭遇pid文件不存在、文件权限、log文件不存在等问题,逐一破解即可,最后成功启动了。

下一步就是集群构建、数据重新全迁移、增量同步、短时间割接的问题了,后文再叙。

MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记录-1的更多相关文章

  1. boost的asio接收单路大数据量udp包的方法

    开发windows客户端接收RTP视频流,当h264视频达到1080P 60fps的时候,按包来调用recvfrom的函数压力比较大,存在丢包的问题,windows的完成端口的性能效果当然可以解决这个 ...

  2. CentOS6安装各种大数据软件 第五章:Kafka集群的配置

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  3. 【大数据之数据仓库】安装部署GreenPlum集群

    本篇将向大家介绍如何快捷的安装部署GreenPlum测试集群,大家可以跟着我一块儿实践一把^_^ 1.主机资源 申请2台网易云主机,操作系统必须是RedHat或者CentOS,配置尽量高一点.如果是s ...

  4. elasticsearch5.0集群大数据量迁移方法及注意事项

    当es集群的数据量较小的情况下elasticdump这个工具比较方便,但是当数据量达到一定级别比如上百G的时候,elasticdump速度就很慢了,此时我们可以使用快照的方法进行备份 elasticd ...

  5. 大数据基础知识:分布式计算、服务器集群[zz]

    大数据中的数据量非常巨大,达到了PB级别.而且这庞大的数据之中,不仅仅包括结构化数据(如数字.符号等数据),还包括非结构化数据(如文本.图像.声音.视频等数据).这使得大数据的存储,管理和处理很难利用 ...

  6. 大数据Hadoop的HA高可用架构集群部署

        1 概述 在Hadoop 2.0.0之前,一个Hadoop集群只有一个NameNode,那么NameNode就会存在单点故障的问题,幸运的是Hadoop 2.0.0之后解决了这个问题,即支持N ...

  7. 大数据平台搭建 - cdh5.11.1 - hbase集群搭建

    一.简介 HBase是一种构建在HDFS之上的分布式.面向列的存储系统.在需要实时读写.随机访问超大规模数据集时,可以使用HBase. 尽管已经有许多数据存储和访问的策略和实现方法,但事实上大多数解决 ...

  8. 大数据平台搭建 - cdh5.11.1 - hadoop集群安装

    一.前言 由于线下测试的需要,需要在公司线下(测试)环境搭建大数据集群. 那么CDH是什么? hadoop是一个开源项目,所以很多公司再这个基础上进行商业化,不收费的hadoop版本主要有三个,分别是 ...

  9. 入门大数据---基于Zookeeper搭建Kafka高可用集群

    一.Zookeeper集群搭建 为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群. 1.1 下载 & 解压 下载对应版本 Zooke ...

  10. 流式大数据计算实践(2)----Hadoop集群和Zookeeper

    一.前言 1.上一文搭建好了Hadoop单机模式,这一文继续搭建Hadoop集群 二.搭建Hadoop集群 1.根据上文的流程得到两台单机模式的机器,并保证两台单机模式正常启动,记得第二台机器core ...

随机推荐

  1. 利用生成式预训练Transformer实现智能问答与人机交互

    目录 利用生成式预训练Transformer实现智能问答与人机交互 随着人工智能技术的不断发展,智能问答和人机交互已经成为了人工智能领域中的重要研究方向.在智能问答中,机器能够以自然的方式与人类进行对 ...

  2. 让AI支持游戏制作流程:从游戏设计到发布一个完整的生态系统

    目录 引言 随着游戏产业的快速发展,人工智能(AI)技术在游戏开发中的应用越来越广泛.游戏设计人员可以通过利用AI技术来自动化游戏中的某些流程,提高游戏制作的效率,降低开发成本,同时还可以创造出更加具 ...

  3. React组件三大属性state,props,refs

    1. React组件定义 1.1 函数组件(Function Components) 函数组件是一种简单的定义组件的方式,通过一个JavaScript函数来定义组件.函数接收一个props对象作为参数 ...

  4. Python史上最全种类数据库操作方法,你能想到的数据库类型都在里面!甚至还有云数据库!

    本文将详细探讨如何在Python中连接全种类数据库以及实现相应的CRUD(创建,读取,更新,删除)操作.我们将逐一解析连接MySQL,SQL Server,Oracle,PostgreSQL,Mong ...

  5. 即构✖叮咚课堂:行业第一套AI课堂解决方案是怎么被实现的?

    AI走进教育,是传统教育的一次迭代进化 在教育问题上,我们看到两类话题最容易引发公众讨论:教育公平和个性化教育,"互联网+教育"有可能解决第一类话题,"AI教育" ...

  6. Django学习笔记:第二章django的安装和创建应用

    1.安装Django 终端运行 pip install django 查看django是否安装成功 python -m django --version 1.1 安装虚拟环境 在控制台运行 pip i ...

  7. 2021-7-8 VUE的简易表单提交

    <!DOCTYPE html> <html> <head> <title> </title> <style type="te ...

  8. quarkus依赖注入之七:生命周期回调

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇的知识点是bean的生命周期回调:在be ...

  9. arrch架构部署redis,报错: ignore-warnings ARM64-COW-BUG

    arrch架构服务器redis部署完成后,启动报错.做个记录. arrch架构的redis安装包 下载链接:https://pan.baidu.com/s/1TMXNpMvMDWRFD1f5km7Mw ...

  10. 一种基于ChatGPT的高效吃瓜方式的探索和研究。

    你好呀,我是歪歪. 最近掌握了一个新的吃瓜方式,我觉得还行,给大家简单分享一下. 事情说来就话长了,还得从最近的一次"工业革命"开始,也就是从超导材料说起. 8 月 1 日的时候 ...