如何更安全地做数据备份和恢复?

本节内容主要参考:极客时间李玥老师的《后端存储实战课》

全量备份

定期保存数据库快照

全量备份的缺点

1、丢失上次备份到宕机之间时间段的数据
2、全量备份的代价非常高
首先,备份文件包含数据库中的所有数据,占用的磁盘空间非常大;
其次,每次备份操作都要拷贝大量数据,备份过程中会占用数据库服务器大量的 CPU、磁盘 IO 资源,并且为了保证数据一致性,还有可能会锁表,这些都会导致备份期间,数据库本身的性能严重下降。所以,我们不能经常对数据库执行全量备份。

如何更安全地做数据备份和恢复?

使用mysqldump命令来执行全量备份。通过定期的全量备份,配合 Binlog增量备份,就可以把数据恢复到任意一个时间点

执行备份和恢复的注意事项

第一,“不要把所有的鸡蛋放在同一个篮子中”,无论是全量备份还是Binlog,都不要和数据库存放在同一个服务器上。
第二,在回放 Binlog 的时候,指定的起始时间可以比全量备份的时间稍微提前一点儿,确保全量备份之后的所有操作都在恢复的 Binlog 范围内,这样可以保证恢复的数据的完整性。因为回放 Binlog 的操作是具备幂等性的,多次操作和一次操作对系统的影响是一样的,所以重复回放的那部分 Binlog 并不会影响数据的准确性。

如何来实现数据库的高可用,避免宕机停服

但是,如果数据量比较大的话,这个恢复数据的时间是很长的,有可能需要恢复几个小时。通过双机热备HA来解决。

主从复制

原文地址:https://www.cnblogs.com/hi3254014978/p/14154571.html