企业级数据备份案例:企业工作日记记录,大数据备份恢复一致性校验

案例说明:
​​​​​​​4月初时,企业通知停止中间推数服务器需要停止,换掉一台,需要我将MySQL数据备份起来,然后备份的数据保存好,以便新服务器到时恢复数据。

目录

企业级数据备份案例

1、通知停止数据推送

2、备份前记录备份数据量

3、执行数据备份

4、数据恢复


企业级数据备份案例

前期准备工作:

1、通知停止数据推送

备份前通知各单位停止数据推送,确定都停止数据推送

2、备份前记录备份数据量

在备份之前,需要检查所有库所有表的数据量,主要是记录表的行数,还有记录MySQL所占用空间大小(340G)。以便后期数据恢复到新的服务器,恢复数据时,与原始数据量进行对比,来验证是否成功恢复。

在这一步操作时犯了一个大错:

就是通过执行这个命令来记录表行数:

SELECT   
    TABLE_NAME AS `表名`,   
    TABLE_ROWS AS `记录条数`  
FROM   
    information_schema.TABLES   
WHERE   
    TABLE_SCHEMA = '这里填数据库名'   
ORDER BY   
    TABLE_ROWS DESC;

执行该命令虽然可以帮我一次查出整个库所有表的行数出来,但是查出来的行数和表中实际的行数的不一致的。这样导致在恢复数据后不能确认是否正常恢复备份的数据了(这里让人头大)!!!

如果需要记录准确的表的行记录数,需要执行count(*)来一张表一张表的去查:

select count(*) from 表名;

3、执行数据备份

准备一个移动硬盘用来存储备份数据,我通过离线备份的方式来备份数据的。MySQL的数据备份,是通过执行这个命令:

mysqldump -uroot -p密码 --all-databases > ~/BackupName.sql

该命令是备份整个MySQL库的数据,这个命令执行后会生成一个sql文件,用于后期数据恢复使用的。

4、数据恢复

在恢复数据前需要将存有备份数据库sql文件的硬盘挂载到新的服务器上,可是在挂载的过程中,出现这个问题:
 

数据的恢复我是执行该命令来一键执行备份数据sql文件来恢复整个库:

nohup mysql -uroot -p'输入密码' < /mnt/usb/BackupName.sql > mysql_import.log 2>&1 &

遇到的问题:

因为我用的是Windows电脑自带的cmd客户端通过ssh作为MySQL的远程连接客户端,在没有用nohup命令来执行数据恢复时,会出现断网导致客户端和服务器连接断掉,运行的命令进程也会停掉:

mysql -uroot -pNFCMbi@20241# < /root/BackupName.sql

解决的办法:

用nohup来执行该命令:这样即使关闭远程连接的客户端,服务器也会在后台将恢复sql数据的命令执行完:

nohup mysql -uroot -p'密码' < /mnt/usb/BackupName.sql > mysql_import.log 2>&1 &

注意:在执行该命令后,关闭cmd时,需要用exit命令退出cmd客户端和服务器的连接,否则一样会停掉后台执行的命令!!!只有在exit的退出连接时,才会将该命令正常的放在后台执行完。

硬盘挂载问题:

当硬盘格式挂载Linux目录出问题时,比如:

挂载sdb1,执行mount /dev/sdb1 /mnt/usb时报这些错误,则需要安装:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值