暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

知识篇 | 数据库备份与恢复的6个知识点

291

  数据库备份和验真是数据库全生命周期管理中不可或缺的一环,在保护数据完整性、硬件故障、数据丢失、损坏和意外删除方面发挥着不可或缺的作用,也是企业保障业务连续性的一项重要措施,可降低企业运营中断、财务损失、声誉受损、合规违规等风险。

  本文将通过对MySQL数据库及周边工具的讲解,来帮助大家学习了解数据库备份与恢复的数据备份场景、备份方式分类、备份策略、备份恢复工具和备份保留建议等相关内容。

  (1)数据备份场景:数据库备份通常被用在数据库数据被损坏的场景中,数据库数据损坏通常有以下几种场景: 1.硬件故障:硬盘故障、电源故障、内存故障等硬件故障可能导致的数据库数据损坏。2.软件故障:数据库软件本身的错误、bug、崩溃等软件故障可能导致的数据损坏。3.人为错误:误操作、错误的SQL语句、错误的数据导入或删除等人为误错误可能导致的数据损坏。4.病毒或恶意攻击:病毒感染、恶意攻击、黑客攻击等可能导致数据库数据损坏。5.系统故障:操作系统崩溃、系统故障、断电等系统故障可能导致数据损坏。6.网络问题:网络中断、网络故障、网络延迟等可能导致数据传输错误,从而导致数据损坏。除此之外,数据备份和恢复也会被用在数据库迁移、仿真测试的搭建、数据审计提取等场景和需求中,为新生产环境、测试环境、仿真环境、审计抽数等需求提供冗余副本数据。

  (2)数据库备份分类:数据库备份类型主要有两种:物理备份和逻辑备份。物理备份是指对数据库操作系统的数据库文件(如数据文件、日志文件等)进行备份。逻辑备份:是指对数据库逻辑组件 (如表、库、实例等数据库对象) 的备份,以sql语句形式,把库、表结构、表数据以系统文件形式保存下来。

  (3)数据库备份方式:根据备份时是否关闭数据库的数据服务,备份方式又可分为:冷备份(脱机备份)、温备份、热备份(联机备份)。冷备份是指在关闭数据库时进行全库文件的拷贝。温备份是指数据库锁定表(不可写但可读)的状态下进行备份操作。热备份是指在数据库运行的同时进行备份的一种备份方式,相对于冷备份,热备份过程中数据库不需要停服,可持续提供数据读写服务。热备份通常使用专业数据库备份工具如物理备份工具(Percona XtraBackup、MySQL Enterprise Backup)、逻辑备份工具(mysqldump、mydumper)等实现,这些工具可利用数据库引擎的特性,通过读取数据库的二进制日志(binlog)来实现增量备份,减少备份时间和存储空间。

  (4)数据库备份策略:主要有全量备份、增量备份、差异备份三种。1. 完全备份(Full Backup)是指将数据库的所有数据和结构都备份到另一个位置或媒介的过程。在完全备份期间,所有数据和结构都被复制并存储在备份文件中。每次完全备份都是独立完整的,可以单独恢复数据库。完全备份通常是第一次备份的基础,之后的增量备份或差异备份会基于完全备份进行。2. 增量备份(Incremental Backup)是指只备份自上次备份以来发生变化的数据的备份方式。增量备份只备份自上次备份以来发生了变化的数据块(如日志文件、数据库的二进制日志等),而不是整个数据库。增量备份通常是基于完全备份进行的。恢复数据库时,首先需要将完全备份还原,然后逐个应用增量备份,最终将数据库恢复到最新状态。3. 差异备份(Differential Backup)是指备份自上次完全备份以来发生变化的数据的备份方式。差异备份备份的是自上次完全备份以来发生了变化的数据块,而不是整个数据库。与增量备份不同的是,差异备份备份的是自上次完全备份以来的所有变化数据,而不是仅备份自上次备份以来的变化。在恢复数据库时,首先需要将完全备份还原,然后只需应用最近一次的差异备份即可将数据库恢复到最新状态。

  (5)数据库备份工具:通常有物理备份工具和逻辑备份工具两类。1. 物理备份工具:MySQL Enterprise Backup是MySQL官方提供的商业物理备份工具,支持快速备份和还原数据库。Percona XtraBackup是Percona开发的免费开源物理备份工具,支持在线备份和增量备份。2. 逻辑备份工具:mysqldump是MySQL官方提供的逻辑备份工具,可将数据库以SQL语句的形式导出到文件中,也可以通过导入还原数据库。mydumper是一个开源逻辑备份工具,可以并行地导出数据库,具有快速和可靠的备份能力。mysql shell 是MySQL官方的一款逻辑备份工具,该工具中集成了备份函数;8.0.22版本后的mysql shell 能够实现对表、库和实例级别的备份函逻辑备份。

  (6)备份保留建议:数据库备份保留时长和保留份数往往根据实际业务需求情况进而设置,以下是一些保留建议, 1. 备份保留时间:根据业务需求和数据重要性,保留一份或多份完整备份,可选择保留备份的时间范围,例如最近7天、14天、30天或更长时间,以便在出现问题时可以快速恢复到最近一次的备份。2. 备份保留份数:至少保留一份完整备份,以确保有一个最新的备份可供恢复。此外,可以考虑保留一定数量的增量备份或差异备份,以提供更多恢复点的选择。具体的保留时间和份数取决于以下几点因素:1. 数据重要性:如果数据对业务至关重要,建议保留更长时间的备份和更多的备份份数,以便在需要时有更多的灵活恢复的方案选择。2. 备份频率:如果备份频率高,如每天或每小时备份,可适当缩短备份的保留时间和份数。3. 备份存储空间:如存储空间有限,可考虑缩短备份保留时间和减少备份份数,以控制存储成本。

  这里给出一种备份保留策略示例(MySQL):1.备份服务器上保留至少两份全备+增量备份,数据恢复范围可覆盖到两周;2.备份服务器本保留至少 14天窗口的 binlog 备份,具体天数可视业务要求而定;3.异地备份(如 S3、NAS等),具体备份数和天数视业务需求、监管要求等而定。

文章至此。

    以下是个人微信公众号,欢迎关注:


文章转载自戏说数据那点事,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论