使用k3s恢复数据库(前提有完整的数据库数据文件)

编程

背景介绍

前几天在部署k3s相关服务时,不小心把操作系统整坏了。导致无法启动,磁盘上还有我的一些重要数据。

机器有两块硬盘,一个256G固态硬盘,一个2T机械硬盘。之前我是双系统安装,固态安装的是Windows、机械安装的是kali linux。(PS:双系统,直接修改启动引导就可以切换系统)

为了保证我机械硬盘数据,把新的linux系统安装在了固态硬盘中。

起因

系统启动后先把k3s相关的服务搭建好,这时候我才发现我的数据之前还是在系统安装应用,主要是之前的数据库无法启动,而老的数据库又无法启动。所以优先想办法恢复数据库。

所以这次准备彻底抛弃系统中安装各种应用服务,全部转用k3s搭建。

辗转反侧

一开始在网上找了很多的innodb的数据回复文章,并按照文章的说明进行操作,但没成功。如果你没有了原始的数据库数据文件,建议尝试下边几篇文章。

Recover InnoDB dictionary

Percona Data Recovery Tool 单表恢复

DROP TABLE 恢复【一】

使用undrop-for-innodb工具在无备份的情况下恢复mysql表

醒悟

上边找到的这些数据恢复的前提是,你只有.frm 、.ibd 、ibdata1文件的情况。但我的情况不是,我保留有所有数据库下的数据文件。所以上边走的比较多的弯路,耽误了好几天。

所以我只要用k3s启动一个相应的数据库,把机械硬盘上的数据复制到k3s指定的数据目录就可以了。为保证服务可以正确运行,需要启动的服务版本与之前的版本相同。

但是遇到一个弱智的问题,就是我把之前安装的数据库版本忘记了,现在也没办法通过version函数获取。

# 可以通过查看该文件确认数据库版本号

cat /var/lib/mysql/mysql_upgrade_info

上边的方式,已确认到我的版本号是《10.1.29-mariadb》

接下来通过配置一个镜像版本为mariadb:10.1.29的服务,并将历史的/var/lib/mysql复制到挂在的目录中。

启动mariadb服务,数据恢复成功,和之前的效果一样。

注:先将数据文件复制到数据目录后再启动

以上是 使用k3s恢复数据库(前提有完整的数据库数据文件) 的全部内容, 来源链接: utcz.com/z/515879.html

回到顶部