400-650-7353
您所在的位置:首页 > IT干货资料 > linux > 【Linux基础知识】数据丢失了应该如何恢复

【Linux基础知识】数据丢失了应该如何恢复

  • 来源:Linux干货资料
  • 2019-12-20 11:34:05
  • 阅读()
  • 分享
  • 手机端入口

通常情况下,数据恢复成功有两个必要条件,首先是要有完整可用的数据库备份,其次要有连续完整没有缺失的二进制日志。如果两个条件都满足就可以恢复故障数据;如果仅仅满足第一个条件,只能做数据还原,对于上例来说,只能是数据库中的数据还原到备份时刻凌晨2:00时的状态,将会丢失凌晨2:00到上午9:37期间的数据;如果没有备份,仅仅有一段日志仍然会造成数据库数据的丢失,损失不可避免。因此,是否开启二进制日志是能否做数据库恢复的条件。

二进制日志(binlog)主要用途有两个,其一是做数据恢复,其二是进行数据库的复制。MySQL数据库默认没有开启二进制日志,如果要开启二进制日志需要在/etc/my.cnf中添加和配置server-id和log-bin选项,这个过程需要重启mysqld服务,此外还应注意的是,开启二进制日志会使数据库额外损失一定的性能,大约2%左右。如果是写操作频繁的生产库,应该开启,因为可以在出现数据损毁的极端情况时,通过二进制日志的恢复挽回丢数据的损失;但是如果不在乎部分数据的丢失或者数据库的数据以读操作(select)为主,考虑性能损耗的因素,可以不开启二进制日志。

开启二进制日志步骤:

1. 编辑/etc/my.cnf

2. 在[mysqld]下添加:

a) server-id=非零值

b) log-bin=mysql-bin

3. 重启mysqld服务

systemctl restart mysqld

其中,MySQL5.7版本要求server-id的值不能与其他存在复制关系的MySQL的server-id重复,其取值范围为1到2^32-1,不能为0否则二进制日志不能开启,通常该值设置为ip地址的末位段,这样确保网段内的server-id无重复值。

log-bin变量对应的mysql-bin为二进制日志的前缀名,默认二进制日志保存在datadir变量对应的数据文件路径中,为了降低二进制日志文件与数据文件同时损坏的几率,通常把二进制文件与数据文件分开存放,最好放在不同的磁盘中。例如:将二进制日志放在/binlogs中,这样需要提前创建该目录,并设置好相应的属主、属组和权限,否则mysqld重启会失败。相关配置如下:

1. root# mkdir /binlogs

2. root# chown mysql:mysql /binlogs

3. root# chmod 750 /binlogs

4. 在/etc/my.cnf中的[mysqld]后面添加:

a) server-id=非零值

b) log-bin=/binlogs/mysql-bin

5. 重启mysqld服务

systemctl restart mysqld

至此,二进制日志开启成功,可以登入mysql后用show binary logs; 命令查看所有的二进制日志。默认二进制日志的最大可为1G。其切换条件有三个:1. mysqld重启时会切换;2.日志到达了1G会自动切换;3.键入flush logs; 命令会自动切换。在开启了二进制日志的情况下,如果备份和日志齐全,当数据库数据出现损坏时,就可以对数据进行恢复了。

 

文章“【Linux基础知识】数据丢失了应该如何恢复”已帮助

>>本文地址:https://www.ujiuye.com/zhuanye/2019/48201.html

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

1 您的年龄

2 您的学历

3 您更想做哪个方向的工作?

获取测试结果
  • 大前端大前端
  • 大数据大数据
  • 互联网营销互联网营销
  • JavaJava
  • Linux云计算Linux
  • Python+人工智能Python
  • 嵌入式物联网嵌入式
  • 全域电商运营全域电商运营
  • 软件测试软件测试
  • 室内设计室内设计
  • 平面设计平面设计
  • 电商设计电商设计
  • 网页设计网页设计
  • 全链路UI/UE设计UI设计
  • VR/AR游戏开发VR/AR
  • 网络安全网络安全
  • 新媒体与短视频运营新媒体
  • 直播带货直播带货
  • 智能机器人软件开发智能机器人
 

快速通道fast track

近期开班时间TIME