一、PXC方案概述 Percona XtraDB Cluster (PXC) 是一个完全开源的 MySQL 数据库集群解决方案,它可确保高可用性,防止停机和数据丢失,并为不断增长的环境提供线性可扩展性。它将 Percona Server 和 Percona XtraBackup 与 Galera 库集成在一起,以实现同步多源复制。 集群由节点组成,其中每个节点包含在节点间同步的相同数据集。推荐的配置是至少有 3 个节点,也可以有 2 个节点,但不建议使用2个节点。每个节点都是一个常规的 MySQL Server 实…

2022年3月23日 1条评论 2339点热度 3人点赞 liking 阅读全文

一套2节点的MySQL PXC集群,第1节点作为主用节点长时间的dml操作,导致大量的事务阻塞,出现异常,此时查看第2节点显示是primary状态,但无事务阻塞情况。 此时第1节点无法正常提供服务,于是以为第2节点可以作为主节点提供sst数据源来新建第1节点,但清空第1节点开始启动时,却发现无法正常启动sst同步,因为:failed to reach primary view 此时的报错信息详情如下: 2022-03-16T11:28:00.546024Z 0 [ERROR] [MY-000000] [Galera…

2022年3月21日 0条评论 896点热度 0人点赞 liking 阅读全文

接上文,本次在较高性能的X86物理机上,做真实生产环境的大数据量导入测试。 一、测试环境 ■ CPU是24核,每核2线程,即48CPU $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 48 On-line CPU(s) list: 0-47 Thread(s) per core: 2 Core(s) per socket: 12 座: 2 NUMA 节点: 2 厂商 ID: G…

2022年2月27日 0条评论 726点热度 0人点赞 liking 阅读全文

接上文,继续测试3000万条记录快速导入数据库。 一、导入前1000万条数据 清库、建库、新建表结构、导入前1000万条数据,结果: ■ 1000万行,有2索引导入耗时:16分钟 Query OK, 9999966 rows affected, 5920 warnings (16 min 12.95 sec) Records: 9999966 Deleted: 0 Skipped: 0 Warnings: 5920 可见,导入千万条数据,性能下降明显。 二、导入前2000万条数据 清库、建库、新建表结构、导入前20…

2022年2月26日 0条评论 747点热度 2人点赞 liking 阅读全文

对于传统的关系数据库如oracle,在大量数据导入方面的效率,我们一般有一个大概的认知,即1分钟以内可以导入千万条数据,而对于MySQL数据库,普遍观点以为性能相对较差,尤其时对于千万级别的数据量,几十分钟、几个小时,都是可能的。是否如此,本文会给出答案。 在普遍去IOE的今天,最难的去O也已经势在必行,所以探讨测试一下MySQL的大数据量导入非常有必要。事实上我们的各个新建项目由于采用了MySQL数据库,在备份恢复时,便会面临大量数据的逻辑导出与导入需求。 恰好笔者手头有一个3000多万行的数据记录,SQL文本格…

2022年2月25日 0条评论 1465点热度 1人点赞 liking 阅读全文

在一个低配MySQL数据库(笔记本电脑虚机环境,虚机配置2CPU/3G内存),在3000万级别的大量数据LOAD DATA方式导入时,坚持一小时后,终于被KO了,甚至没写下任何有用的日志,只是在操作界面报错: ERROR 2013 (HY000): Lost connection to MySQL server during query 再次重启,漫长的半小时时间,遇见这个activating状态: [root@node1:1 ~]# systemctl status mysql ● mysql.service -…

2022年2月25日 0条评论 653点热度 0人点赞 liking 阅读全文

接上文,单节点升级到80版本之后,构建新版本的80集群就水到渠成、相对简单了,详情可参见之前的集群构建博文。 本文在修改配置集群的新参数时,修改了pxc_strict_mode为默认的ENFORCING,注释掉skip_ssl以支持SSL加密同步传输。 donor节点的日志如下: 2021-12-07T12:21:56.351545Z 0 [Note] [MY-000000] [WSREP-SST] Streaming the backup to joiner at 10.124.206.18 4444 2021-…

2021年12月7日 0条评论 786点热度 0人点赞 liking 阅读全文

在升级MySQL版本到8.0的过程中,需要关注sql_mode参数默认值的变化,8.0版本sql_mode不支持 NO_AUTO_CREATE_USER,要避免配置的sql_mode中带有 NO_AUTO_CREATE_USER ■ 57版本原来配置 show variables like '%sql_mode%'; STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE…

2021年12月7日 0条评论 791点热度 1人点赞 liking 阅读全文

本文主要记录57版本升级80版本的过程,供参考。 ■ 57版本升级80版本注意事项 默认字符集由latin1变为utf8mb4 MyISAM系统表全部换成InnoDB表 sql_mode参数默认值变化,8.0版本sql_mode不支持 NO_AUTO_CREATE_USER,要避免配置的sql_mode中带有 NO_AUTO_CREATE_USER 密码认证插件变更,由于默认密码策略变更,为了避免连接问题,可仍采用5.7的mysql_native_password认证插件 关于系统表升级,在MySQL 8.0.16…

2021年12月7日 0条评论 907点热度 0人点赞 liking 阅读全文

一个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的数据量已经无能为力。好在p…

2021年11月23日 0条评论 992点热度 1人点赞 liking 阅读全文