操作系统宕机,MySQL数据找回记录

一、概述

如果Linux操作系统宕机,启动不了,救援模式(rescue installed system)也行不通的时候,那么该机器上的MySQL数据还能恢复吗?如果能,怎么恢复呢?带着这个问题我们做个实验。

二、环境介绍

准备两台虚拟机,虚拟机软件为virtualbox。

IP 192.168.56.81 该虚拟机上面运行了MySQL,后面模拟这个机器崩溃,然后将MySQL数据抢救回来。

“81”上的文件:

“81”上的MySQL数据库:

IP 192.168.56.71 该虚拟机为新机器,后面需要将“81”上的数据库迁移到“71”这台机器上。

三、开始实验

删除“81”机器上的/boot目录文件,然后强制重启。

这时候系统启动失败,报error: file '/grup2/i386-pc/normal.mod’ not found.

关闭故障虚拟机“81”,选择强制退出。

将故障虚拟机“81”的硬盘挂载到新的虚拟机“71”上,启动新的虚拟机“71”。

通过lsblk能看到sdb就是新挂载的磁盘。

建立挂载点,挂载新的磁盘,提示mount: unknown filesystem type 'LVM2_member’

[root@oracletest ~]# mkdir /newmnt
[root@oracletest ~]# mount /dev/sdb2 /newmnt
mount: unknown filesystem type 'LVM2_member'

这是因为/dev/sdb2是一个物理卷,不能直接挂载,需要挂载该物理卷对应的逻辑卷。

查看逻辑卷(这个可能需要等一会才查看得到),可以看到LV Status为NOT available。

使用vgchange -ay /dev/vg激活逻辑卷组(vg是逻辑卷组名字),可以看到LV Status为available。

挂载逻辑卷,可以看到文件已经找回来了。

[root@oracletest ~]# mount /dev/vg/lvroot /newmnt
[root@oracletest ~]# cd /newmnt
[root@oracletest newmnt]# ls
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@oracletest newmnt]# cd /newmnt/root
[root@oracletest root]# ls
important.txt  install.sh  mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
[root@oracletest root]# cat important.txt
this is important text!

接下来是恢复MySQL数据库。原理很简单,跟迁移MySQL没区别,就是将原MySQL文件迁移到新的目录,然后起库。

首先在新的虚拟机“71”上面安装跟故障虚拟机中相同版本的MySQL(安装过程略……)。

查看原MySQL的参数文件,确定MySQL日志文件和数据文件的目录。

[root@oracletest root]# cat /newmnt/etc/my.cnf
[mysqld]
# basic settings #
...
basedir = /usr/local/mysql
datadir = /opt/mydata/data
tmpdir = /opt/mydata/tmp
log_bin = /opt/mydata/log/binlog/binlog
...

查看原MySQL的数据文件。

[root@oracletest root]# cd /newmnt/opt/mydata/
[root@oracletest mydata]# ll
total 12
drwxr-xr-x 6 995 1000 4096 Feb 11 14:03 data
drwxr-xr-x 4 995 1000 4096 Feb 11 14:03 log
drwxr-xr-x 2 995 1000 4096 Feb 11 14:03 tmp

创建相关目录。

mkdir -p /opt/mydata/data
mkdir -p /opt/mydata/tmp
mkdir -p /opt/mydata/log/binlog
chown -R mysql:mysql /opt/mydata

拷贝MySQL文件到对应的目录。

cp -r /newmnt/etc/my.cnf /etc
cp -r /newmnt/opt/mydata/data /opt/mydata/
cp -r /newmnt/opt/mydata/log/binlog /opt/mydata/log/
chown -R mysql:mysql /opt/mydata # 这一步的目的是由于原始文件在挂到新的机器上时所属用户和所属组会丢失,需要重新更改成mysql组

启动MySQL。

[root@oracletest ~]# service mysql start
Starting MySQL.2021-04-08T11:39:26.437943Z mysqld_safe error: log-error set to '/opt/mydata/log/error.log', however file don't exists. Create writable for user 'mysql'.
The server quit without updating PID file (/opt/mydata/data[FAILED]est.pid).

报错,提示没有error.log,那就创建一个,再启动MySQL。

[root@oracletest ~]# touch /opt/mydata/log/error.log
[root@oracletest ~]# chown -R mysql:mysql /opt/mydata/log/error.log
[root@oracletest ~]# service mysql start
Starting MySQL..      [  OK  ]

可以看到数据库的表也找回来了!

四、总结

  1. 只要没有删除数据库的数据文件,即使系统起不来了,我们仍然可以将系统的盘拆下来挂到新的机器上,将数据拷贝出来。

  2. 养成备份的习惯,正式、仿真、开发、测试环境都需要。

关于作者

杨豹,国泰君安专职DBA,热爱Oracle、MySQL数据库技术,熟悉shell,python编程,熟悉zabbix监控。

墨天轮原文链接:https://www.modb.pro/db/49742(复制到浏览器或者点击“阅读原文”立即查看)

END
(0)

相关推荐

  • Mariadb 实战

    写文章 Mariadb 数据库入门及备份恢复实战 aif AIF,Linux工程师 1 人赞同了该文章 一.安装: 采用二进制免编译的方式安装数据库,需要注意的是:程序是已经编译好后的二进制程序,有些 ...

  • win下maridb 10.1.8下主从复制配置

    主库配置 server_id=1 read-only=0 replicate-do-db=mydata log-bin=mysql-bin 主库权限设置 GRANT replication slave ...

  • 面试官:Redis 内存数据满了,会宕机吗?

    背景 Redis 数据库内存数据满了,会宕机吗?答案是:不会让它出现存满的情况,在使用Redis的时候我们要配置Redis能使用的最大的内存大小,存到一定容量的时候还有Redis的内存淘汰策略呢,还有 ...

  • Docker定时备份MySQL数据到七牛云

    前言:我Linux服务器安装了docker,docker容器跑了springboot项目,用到了mysql数据库.所以必须准备程序,数据备份功能,万一哪天系统挂了,数据丢了,我可以随时恢复.因为没钱开 ...

  • UpTime:供电、系统、网络、制冷——2020年数据中心宕机四大主因

    近日,Uptime Institute发布了2020年度数据中心掉线调查报告.报告结果并不意外,供电.系统.网络.制冷等四大因素依旧是宕机的最常见因素. 根据数据显示,在2020年发生的数据中心故障中 ...

  • 谜题攻略:全世界炉友都在解谜,把服务器搞宕机了!

    此次更新也上线了一张新卡背"凤凰之谜" 这张卡背是之前卡背设计的第二名 不过这张卡背需要解谜获得, 总共四个隐藏彩蛋, 只有四个都做完才能获得此卡背, 目前全球玩家都在解谜这四个隐 ...

  • 孩子学习又宕机?你可能忽略了这件最重要的事

    这段时间,妞妞在学跳绳.我发现她学跳绳的过程是件很有意思的事. 一开始妞妞会把腿缩的特别高,双臂摆动的姿势也不自然,感觉她的大脑在非常吃力的协调全身的动作,跳上十个就把自己累的够呛. 有趣的是,中间有 ...

  • 这100组加密市场数据,记录了你的狂欢,还是你的眼泪? | 巴比特

    原文标题:<网络状态报告>的100个加密数据观察 翻译:睿睿.小牛 如果你从现在穿越回100天之前,你会做什么? 按朋友圈和微博的反应,最近呼声最高的应该是买狗狗币. 但是将时间线拉回10 ...

  • 宕机?踩踏?6万人摇鸽盘下的限价三大怪 | 叶建英

    文丨叶建英 冲6万?登记延迟!杭州买房摇号历史头一次.   这是昨晚刷屏朋友圈的标题.   业内都不敢点开了,每点开一次,就有一个声音在刺激你:   你表姐夫的亲堂弟的远房亲戚都来问你了,你女同学的家 ...

  • 孩子学习又宕机? 你可能忽略了这件最重要的事

    这段时间,妞妞在学跳绳.我发现她学跳绳的过程是件很有意思的事. 一开始妞妞会把腿缩的特别高,双臂摆动的姿势也不自然,感觉她的大脑在非常吃力的协调全身的动作,跳上十个就把自己累的够呛. 有趣的是,中间有 ...

  • 各大厂骁龙888旗舰机的数据大评比:真的...

    各大厂骁龙888旗舰机的数据大评比:真的是差的不一般的大! 选的都是堆料配制! 中兴 Axon 30 Ultra ,小米11 Ultra ,一加9pro,红魔6pro,VIVOX60pro+,FIND ...