k8s 部署 mysql 故障恢复记录

k8s 集群 用 helm 部署 mariadb (https://charts.bitnami.com/bitnami)

https://github.com/bitnami/charts/tree/main/bitnami/mariadb

采用了主从部署

default   mariadb-primary-0    1/1  Running   0   10m   10.224.166.150   node1
default   mariadb-secondary-0  1/1  Running   1   13d   10.224.104.26    node2

由于一次机房停电,导致磁盘文件异常。primary 启动不了

mariadb 06:32:07.66 Welcome to the Bitnami mariadb container
mariadb 06:32:07.67 Subscribe to project updates by watching https://github.com/bitnami/containers
mariadb 06:32:07.68 Submit issues and feature requests at https://github.com/bitnami/containers/issues
mariadb 06:32:07.68
mariadb 06:32:07.69 INFO  ==> ** Starting MariaDB setup **
mariadb 06:32:07.73 INFO  ==> Validating settings in MYSQL_*/MARIADB_* env vars
mariadb 06:32:07.74 INFO  ==> Initializing mariadb database
mariadb 06:32:07.80 WARN  ==> The mariadb configuration file '/opt/bitnami/mariadb/conf/my.cnf' is not writable. Configurations based on environment variables will not be applied for this file.
mariadb 06:32:07.81 INFO  ==> Using persisted data
mariadb 06:32:07.89 INFO  ==> Running mysql_upgrade
mariadb 06:32:07.92 INFO  ==> Starting mariadb in background
2024-10-22  6:32:07 0 [Note] Starting MariaDB 10.6.12-MariaDB-log source revision 4c79e15cc3716f69c044d4287ad2160da8101cdc as process 52
2024-10-22  6:32:07 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2024-10-22  6:32:07 0 [Note] InnoDB: Using transactional memory
2024-10-22  6:32:07 0 [Note] InnoDB: Number of pools: 1
2024-10-22  6:32:07 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2024-10-22  6:32:07 0 [Note] mysqld: O_TMPFILE is not supported on /opt/bitnami/mariadb/tmp (disabling future attempts)
2024-10-22  6:32:07 0 [Note] InnoDB: Using Linux native AIO
2024-10-22  6:32:07 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
2024-10-22  6:32:08 0 [Note] InnoDB: Completed initialization of buffer pool
2024-10-22  6:32:08 0 [Note] InnoDB: 128 rollback segments are active.
2024-10-22  6:32:08 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2024-10-22  6:32:08 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2024-10-22  6:32:08 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2024-10-22  6:32:08 0 [Note] InnoDB: 10.6.12 started; log sequence number 16872896567; transaction id 46736708
2024-10-22  6:32:08 0 [Note] InnoDB: Loading buffer pool(s) from /bitnami/mariadb/data/ib_buffer_pool
2024-10-22  6:32:08 0 [Note] Plugin 'FEEDBACK' is disabled.
2024-10-22  6:32:08 0 [Note] Server socket created on IP: '127.0.0.1'.
2024-10-22  6:32:08 0 [Note] Zerofilling moved table:  './mysql/db'
2024-10-22  6:32:08 0 [ERROR] mysql.db: Page      8192:  Got error: 175 when reading datafile
2024-10-22  6:32:08 0 [Warning] Checking table:   './mysql/db'
2024-10-22  6:32:08 0 [ERROR] mysql.db: Table is probably from another system and must be zerofilled or repaired ('REPAIR TABLE table_name') to be usable on this system
2024-10-22  6:32:08 0 [Warning] Recovering table: './mysql/db'
2024-10-22  6:32:08 0 [Note] mysql.db: Running zerofill on moved table
2024-10-22  6:32:08 0 [ERROR] mysql.db: Page      8192:  Got error: 175 when reading datafile
2024-10-22  6:32:08 0 [ERROR] Couldn't repair table: mysql.db
2024-10-22  6:32:08 0 [ERROR] Fatal error: Can't open and lock privilege tables: Index for table 'db' is corrupt; try to repair it
2024-10-22  6:32:08 0 [ERROR] Aborting
Warning: Memory not freed: 280

解决过程

尝试 innodb_force_recovery 方案,无效。

修改 mysql.cnf ,添加配置,启动失败
kubectl edit cm -n ds-system aicore-mariadb-primary
> innodb_force_recovery=6
> innodb_purge_thread=1

异常文件恢复方案

由于从节点的实例正常,检查两边文件

[root@node1 mysql]# ll /data/k8s/mysql-master/data/mysql/db*
-rw-rw---- 1 elastic elastic  3446 May 11 09:20 db.frm
-rw-rw---- 1 elastic elastic  8192 Oct  9 09:19 db.MAD
-rw-rw---- 1 elastic elastic  8192 Oct  9 09:09 db.MAD-241009011242.BAK
-rw-rw---- 1 elastic elastic 16384 Oct 22 15:42 db.MAI
-rw-rw---- 1 elastic elastic    67 May 11 09:20 db.opt[root@node2 ~]# ls /data/k8s/mysql-secondary/data/mysql -l
-rw-rw---- 1 elastic elastic     3446 May 11 09:20 db.frm
-rw-rw---- 1 elastic elastic    16384 Oct  1 10:40 db.MAD
-rw-rw---- 1 elastic elastic    24576 Oct  1 10:40 db.MAI
-rw-rw---- 1 elastic elastic       67 May 11 09:20 db.opt

mariadb-primary 的 db.MAD 比 aicore-mariadb-secondary 的文件大小差异很大,把从节点的db表文件全部复制过来

 scp node2:/data/k8s/mysql-secondary/data/mysql/db* /data/k8s/mysql-master/data/mysql/

重启 mariadb-primary 后成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/453965.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Facebook的AI驱动发展:人工智能如何改变社交体验

个性化内容推荐 Facebook利用AI算法分析用户的行为数据,包括点赞、评论、分享和浏览历史。这些数据使得平台能够深入了解用户的兴趣和偏好,从而提供个性化的内容推荐。例如,用户在浏览动态时,AI系统会根据用户的互动历史&#xf…

大学生项目竞赛:如何通过面试选拔优秀队友

大学生项目竞赛:如何通过面试选拔优秀队友 面试前的自我提问行为面试法:识别真实水平选人后的用人策略结语 作为一名积极参与各类项目竞赛的大学生,我深刻体会到团队成员的选择对于项目成功的重要性。在这篇文章中,我将分享我的一…

计算机毕业设计 基于Python的社交音乐分享平台的设计与实现 Python毕业设计 Python毕业设计选题【附源码+安装调试】

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

用Aconvert.com将MOBI文件转换为PDF:一步步指南

在今天的数字时代,文件格式转换是日常办公和学习中常见的需求之一。MOBI格式的电子书文件在某些设备上不太方便阅读,而PDF格式则更加通用。本文将为你详细介绍如何使用Aconvert.com将MOBI文件转换为PDF文件。 1. 访问Aconvert.com 首先,打开…

【数据库设计】逻辑结构设计

E-R实体集的转换 概念结构设计之后就是对E-R图进行逻辑结构设计:即将E-R图转化成关系的过程。逻辑结构设计主要用于数据库管理系统上,为了让数据在计算机系统中更好地表示。 此设计过程用到的数据模型有:除了前面讲过的关系模型还有层次模型…

功能驱动方法是什么?如何有效管理技术债务以避免项目风险?

在软件开发和项目管理领域,“功能驱动方法”(Feature-Driven Development, FDD)和“技术债务”(Technical Debt)是两个与项目成功紧密相关的重要概念。功能驱动方法是一种高效的敏捷开发方式,而技术债务则代…

飞腾D3000多核性能

飞腾d3000多核应该超过龙芯3a6000不小于30%,所以了肯定超过10100。d3000单核应该比海光3250强一点点,多核可能稍有不如,因为没有超线程。 3A6000单核,多核性能均明显不如飞腾D3000,兆芯KX-7000,海光3350&a…

【Kenel】基于 QEMU 的 Linux 内核编译和安装

文章目录 安装虚拟机系统共享目录编译内核卸载内核参考资料 本文主要记录个人做存储系统研究时,在 QEMU 环境下编译和安装 Linux 内核的过程 安装虚拟机系统 之前在 利用 RocksDB ZenFS 测试 ZNS 的环境搭建和使用 给出过借助 VNC 进行图形化安装的步骤&#xff…

如何轻松使用pip安装Git仓库中的私有Python模块(使用pip和Git仓库发布和安装私有Python模块)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Git模块 📒📝 Git仓库要求🔖 项目目录结构🔖 文件说明📝 编写setup.py📝 配置MANIFEST.in📝 推送代码到Git仓库📝 使用pip安装模块🔖 使用用户名和密码🔖 使用Personal Access Token (PAT)🔖 示例📝 更…

Linux系统——ssh远程连接

Linux系统——ssh远程连接 一、ssh协议介绍1、远程连接协议2、ssh服务基本操作3、ssh常用操作 二、ssh加密1、加密算法类型2、对称加密算法3、非对称加密算法 三、免密ssh的配置1、ssh认证方式2、配置免密ssh3、ssh-copy-id做了什么? 四、ssh服务配置 一、ssh协议介…

基于Java微信小程序的的儿童阅读系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…

【解决proto文件生成的java 在intellij idea引用会报错】

现象 下载新项目 代码有引用proto生成的java类 会一直报红 我的idea版本2024.2.3,比较新,自动装载了插件,旧版本需要自己装 解决方式 Maven生成资源 这一步是为了先从proto生成java文件 安装这个插件 右键项目->Maven->Generated…

国产电脑能装win系统吗_国产电脑安装windows要求及方法

国产电脑能装win系统吗?‌国产电脑可以安装Windows系统,但需要满足特定条件。‌‌目前只有CPU基于X86架构国产电脑才可以安装windows。下面小编就和大家一起来分析下国产电脑安装windows要求及方法。 国产电脑能装win系统吗? 答:‌国产电脑可…

天锐绿盾 vs Ping32:企业级加密软件大比拼

在信息安全日益重要的今天,企业级加密软件成为了企业保护敏感数据的得力助手。在众多加密软件中,天锐绿盾与Ping32凭借各自的优势,赢得了市场的广泛认可。那么,这两款软件究竟有何异同?哪款更适合您的企业呢&#xff1…

【Linux】进程优先级进程切换

文章目录 进程优先级查看进程优先级进程优先级的修改 进程切换进程切换的概念 总结 进程优先级 进程优先级是操作系统中用于决定进程调度顺序的重要属性。它表示一个进程在系统资源分配和 CPU 调度中的相对重要性。优先级越高的进程通常会获得更多的 CPU 时间和资源&#xff0…

【网页设计】CSS 盒子模型

目标 能够准确阐述盒子模型的 4 个组成部分能够利用边框复合写法给元素添加边框能够计算盒子的实际大小能够利用盒子模型布局模块案例能够给盒子设置圆角边框能够给盒子添加阴影能够给文字添加阴影 1. 盒子模型 页面布局要学习三大核心, 盒子模型, 浮动 和 定位. 学习好盒子模…

Spring6梳理15——Bean的作用域

目录 15.1 引入 15.1.1 Orders类 15.1.2 bean-scope.xml 15.1.3 OrdersTest类 15.1.4 运行截图 15.1 引入 在Spring中可以通过配置bean标签的scope属性来指定bean的作用域范围,各取值含义参加下表: 取值含义创建对象的时机singleton&#x…

拥抱趋势,洞察智慧!创客匠人「创始人IP创新增长班」圆满收官!

拥抱未来趋势,打造创始人IP,建立长期品牌价值。10月15日-17日,由创客匠人主办、创客匠人创始人&CEO老蒋担任主讲人的「创始人IP创新增长班」线下大课在成都生物城凯悦嘉轩酒店圆满收官。 本次大课,强大的势能吸引了来自全国各…

你知道吗?这个岗位只招2人,但HR那边却收到了1w份简历

引言 在当前经济环境下,求职者面临的挑战越来越大。互联网行业尤其如此,许多人挤破头都想进入大厂,但竞争异常激烈。如今的就业市场确实变得异常艰难。然而,随着AI大模型技术的兴起,对于那些掌握了相关技能的专业人才…

作业车间调度优化算法

作业车间调度优化算法 题目来源代码实现输出结果 题目来源 题目来源于葛英飞《智能制造技术基础》书中175页的题目,基余分配率的作业车间调度优化算法。书中这部分有程序流程图,但是没有代码,课后闲暇之余通过Python对其进行了简单的实现&am…