首页 > 数据治理 > 数据治理 > 服务器备份方式有哪些?一张表格帮你理清六种主流方案
在服务器数据保护领域,"高可用"和"数据备份"是两个经常被混为一谈但实际上完全不同的概念。双机热备是一种冗余机制,解决的是 服务器宕机后业务如何继续运行 的问题;数据备份则是一种时间回溯机制,解决的是 当数据出现损坏、丢失或误操作时如何恢复到之前某个正常状态 的问题。
两者之间不存在相互替代的关系。一个在实际运维中反复出现的误区就是:部署了双机热备就认为数据安全有保障了。但仔细想一下这个逻辑链条中的漏洞 , 如果有人在数据库里误删了重要的订单记录表,主服务器执行删除的同时备机会同步执行同样的删除;如果勒索病毒感染了主服务器的文件系统并开始加密文件,备机上的副本同样会被加密(因为镜像模式下两边的文件系统内容是一致的);如果一条缺少WHERE条件的UPDATE语句覆盖了数据库中千万条记录的错误数据,这条SQL语句在备机上也会原样执行一遍。对于这类逻辑层面的数据损毁事件,双机热备完全没有防护能力。
打个不太严谨的比方:双机热备好比给门装了两道锁,防盗能力确实增强了;但如果屋里着了火,锁再结实也没用 , 你还需要灭火器。备份就是这个灭火器。
这篇文章要做的就是系统梳理当前主流的六种服务器数据保护和备份方式,把每种方案的原理、优缺点和适用场景讲清楚。
很多企业的备份工作看起来做得挺认真的 , 每天凌晨自动执行全量数据库备份,备份文件几十个GB规规矩矩地传到NAS存储上,日志显示"备份成功"。但如果问一句"上次做数据恢复测试是什么时候",十个管理员里可能有八个答不上来。
这里要明确一个核心观点: 备份的目的不是"存一份数据放在那里图个安心",而是"需要恢复的时候真的能恢复成功"。
如果备份文件本身已经损坏、或者恢复流程从未验证过可行性和完整性、或者目标恢复环境与备份时的源环境存在差异导致还原失败 , 那之前的每一次备份操作本质上都是在浪费存储空间和计算资源。
一套真正有效的备份策略必须同时满足两个基本条件:第一, 备份本身是可用的 (文件完整没损坏、数据内容与生产环境一致);第二, 恢复流程是可行的 (知道怎么恢复、整个恢复过程能在可接受的时间窗口内完成、恢复后的应用能够正常运行并通过功能校验)。
建议至少每季度安排一次完整的恢复演练。不要以"备份日志最后一行写着SUCCESS"就认为万事大吉了 , 要从真实的备份文件中完整地还原出一个测试数据库,跑几条查询SQL验证关键数据的完整性和一致性,确认应用程序连接上之后能正常完成一次端到端的业务操作。只有把这个完整流程走通了,才能说备份体系是合格的。
最基础也最容易理解的备份方式:把需要保护的整个数据集完整地复制一份出来存放。
优点很直接 , 恢复的时候只需要找到最近的一份完整备份文件执行还原操作就行了。不需要做增量拼接、不需要按时间链顺序逐层恢复,从操作的简洁性来说全量备份是最省心的方案。对于数据总量不大的场景(比如几十GB以内的小型数据库、文件服务器),全量备份是最务实的选择。
但当数据量增长到一定规模之后缺点就开始显现了。TB级别的数据库做一次全量备份可能需要好几个小时,而且备份过程对源系统的I/O资源消耗不小 , 毕竟要把磁盘上的数据块一块一块读出来再写到备份介质上。如果业务系统不能停机(7x24在线运行的系统比比皆是),那备份只能在凌晨的业务低峰窗口期进行。随着数据持续增长,某一天你会发现备份还没跑完早高峰的业务流量就来了,备份进程还在占用大量磁盘I/O跟正常的业务请求抢资源,导致系统响应明显变慢。
有电商公司的真实案例:核心业务数据库的数据量接近2TB,最初设计的是每天凌晨做全量备份。随着业务发展数据量不断增长,备份耗时从最初的两个半小时逐渐延长到了六个多小时,最终有一天备份进程一直跑到第二天上午上班时间还没结束,当天早上用户反馈系统响应特别慢。排查后发现罪魁祸首就是那个还在跑的全量备份进程占用了大量磁盘I/O带宽。后来改成"每周日做一次全量 + 周一到周六每天做增量"的组合策略,每天的备份窗口从六个小时压缩到了四十分钟左右,对业务的影响大幅降低。
这是一个非常经典的折中思路:定期保留一份全量备份作为可靠的恢复基准点,日常用增量备份减少每次备份操作的资源开销和时间成本。
只备份自上一次备份操作(无论是全量还是前一次增量)以来发生变化的那部分数据块。单次备份速度快、占用存储空间小,适合高频次的日常备份策略。
但代价体现在恢复过程的复杂度上。假设备份策略是"每周日做一次全量备份,周一到周六每天各做一次增量备份"。如果周三的下午数据库出了问题需要恢复,那么恢复路径是这样的:先还原上周日的全量备份 → 然后按顺序依次还原周一的增量 → 还原周二的增量 → 最后还原周三的增量。这四个步骤中任何一步出现问题(比如周二的增量文件因为当时存储空间不足没有写完导致文件损坏),整条恢复链就从中间断了,周三的数据就无法完整恢复。
有真实案例值得引以为戒:某个客户采用了增量备份策略后连续做了一个多月的增量备份一直没有做过新的全量备份(可能是为了节省备份时间和存储空间)。后来发现中间第15天的增量备份文件因为当时备份存储设备磁盘空间已满而没有写入完整 , 文件被截断了是损坏的状态。结果是从第16天一直到第30天的所有增量备份全部无法使用 , 因为恢复链从第15天那里断开了,后面的每一份增量都依赖于前面那份已经损坏的增量作为基础。最后只能通过人工重新录入的方式补录了将近半个月的数据,工作量堪比一场小型的灾难恢复现场。
经验教训很清晰:即使采用了增量备份策略,两次全量备份之间的间隔也不要拉得太长。一周做一次全量是比较稳妥的节奏选择,哪怕每次全量备份的时间长一点、占用的存储多一点,至少能保证在最坏的情况下最多只损失一周以内的数据变更。
差异备份可以理解为全量备份和增量备份之间的中间路线。它备份的内容是"自从上一次全量备份以来所有发生了变化的数据" , 注意这里跟增量的区别:增量只备份自上一次(任意类型)备份以来的变化量;差异则是始终相对于最近一次全量备份来计算变化量。
差异备份在恢复时只需要两个步骤:先还原最近一次的全量备份,然后还原最近的一次差异备份即可。相比增量备份那种可能需要依次还原十几个文件的链式恢复过程,差异恢复出错的风险更低、操作更简单。差异备份的一个固有缺点是差异文件的体积会随时间逐渐增大 , 周一的差异可能只有5GB(距离周日全量只有一天的变更量),但周六的差异可能累积了一周的所有变更达到几十GB。
在实践中效果比较好的组合策略是"每月一次全量 + 每周一次差异 + 每天一次增量"。具体的频率配置还是要根据实际情况来定 , 数据量大且变更频繁的系统可能需要提高到"每周全量 + 每天差异"的频率;数据量小、变化少的系统用"每月全量 + 每周增量"就够了。关键是先搞清楚业务上最多能接受丢失多少时间范围内的数据,然后用这个容忍度反推备份频率的设计。
CDP是Continuous Data Protection的缩写 , 持续数据保护。它跟前述三种基于"离散时间点快照"的备份方式有本质区别。CDP的工作原理是在存储层面持续捕获和记录每一个I/O写入操作 , 每一条数据的写入行为都被完整地记录下来形成一个连续的操作日志。因此理论上CDP可以将数据精确地恢复到过去的任意一个时间点 , 不是"昨晚备份时的状态"或"一小时前快照的状态",而是"今天上午10点03分32秒那一刻的状态"。
这种能力在某些特定场景下几乎是不可替代的。举个实际例子:某位开发人员或者DBA在上午10点执行了一条UPDATE语句更新一张重要表的数据 , 但不小心忘写了WHERE条件,导致整张表几百万条记录全部被覆盖成了同一个值。10点05分发现了这个问题。如果用的是传统的定时备份方案,只能从昨天晚上的全量备份加上今天的增量备份来恢复 , 这意味着从昨晚备份时刻到出问题这段时间内所有的合法数据变更全部丢失,半天的业务数据可能需要重新补录。而如果有CDP在运行,可以直接将这张表恢复到10点02分59秒的状态 , 只需要手工补录最后两三分钟的数据变更就行,损失范围缩小了几个数量级。
CDP在金融行业几乎已经成为标准配置 , 证券交易系统、银行核心账务系统对数据丢失的容忍度极低,任何非预期的数据损毁都可能引发合规风险甚至法律后果。但CDP的成本门槛和技术要求都不低:需要在操作系统内核层面挂钩拦截I/O操作,对生产系统的性能会产生一定程度的影响;持续记录每一个写操作的历史日志对存储空间的消耗也不小。对于普通的企业应用是否值得投入CDP,可以先做一个简单的经济测算:如果你的核心数据库停机一小时造成的业务损失是多少?如果这个数字远远超过部署CDP的总成本那就值得上;如果影响不大那用差异备份加合理频率的全量备份组合可能就够用了。
上面提到的四种数据级备份方式,如果要自己从零搭建,需要分别采购备份软件、存储设备、服务器,再进行集成调试,对IT团队的技术能力和精力投入都有不低的要求。这几年市面上出现了"备份一体机"这种形态的产品 , 把备份软件、存储介质、调度管理界面预集成在一台设备里,开箱即用,部署和维护的门槛大幅降低。
对于没有专职存储工程师的中小企业来说,备份一体机是比较省心的选择。国产方案中,敦阳泰克的Rose CloudBackup就是一款备份一体机产品,集成了备份、恢复和异地复制功能,适合不想在备份基础设施上投入太多运维精力的团队。当然,大型企业如果有更复杂的备份策略需求,也可以选择专业的备份软件配合独立存储来搭建。
镜像备份跟上面讨论的数据级备份有本质不同 , 它备份的对象不是单独的数据库或某些文件夹,而是 整台服务器的完整状态 。一份完整的镜像包含了:操作系统及其补丁版本、驱动程序、系统配置文件和注册表项(Windows环境)、安装好的应用程序及其依赖库、以及所有的业务数据。
恢复时可以直接把镜像文件部署到一台全新的物理服务器或者虚拟机上 , 开机之后就是一台跟原服务器状态一致的机器,不需要经历"先装操作系统→再装驱动→再用备份工具还原数据→再配置网络和应用环境"这一系列繁琐的步骤。从挂载镜像到业务恢复运行,通常半个小时左右就能搞定(取决于镜像文件大小和网络/存储速度)。
虚拟化平台提供的快照功能本质上就是一种轻量化的镜像备份实现方式。VMware、Hyper-V、KVM等虚拟化平台的快照原理都是将虚拟磁盘在某一刻的状态冻结,后续的写入操作转到新增的差分磁盘中进行。但有一个重要的细节需要注意:虚拟化快照通常是"崩溃一致性"(crash-consistent)的 , 也就是说如果在数据库正在执行写入操作的过程中打了快照,那么恢复出来的数据库文件可能处于不一致的状态(类似服务器意外断电重启后数据库需要做一致性检查和修复的情况)。对于关键的数据库服务最好在打快照前先让数据库进入静默/热备模式,或者使用具有应用感知能力的专业快照工具来确保数据一致性。
严格来讲双机热备并不属于"备份"的范畴 , 它是一种实时冗余机制,解决的核心问题是可用性而非数据保护。
那为什么还要在这里专门讨论它?因为在实际的生产架构设计和运维管理中,这两者经常被放在一起讨论而且确实容易产生混淆。双机热备的核心价值在于秒级故障切换 , 主机发生硬件故障、操作系统崩溃等物理层面的异常时备机能立即接管业务继续运行。但它防不住以下这些场景:
• 误删除操作(主服务器删了数据,镜像模式下备机也同步删除)
• 勒索病毒感染(两台机器上的数据同时被加密)
• 应用程序逻辑错误(错误的UPDATE/DELETE语句会在备机上同样执行)
所以正确的架构设计应该是: 双机热备负责保障业务的连续可用性,数据备份负责保障数据的可恢复性。两者是互补关系而不是替代关系。 回到前面的比喻:双机热备是你家大门上的防盗锁能防小偷进屋偷东西,但防不住火灾;备份就是你的灭火器 , 两种安全措施缺一不可。
|
方式 |
核心能力 |
恢复速度 |
存储开销 |
最适用的典型场景 |
|
全量备份 |
提供完整的数据集副本 |
快(一步到位完成还原) |
大 |
数据量较小的系统;作为其他备份策略的基础基线 |
|
增量备份 |
只捕获自上次备份以来的变化量 |
较慢(依赖完整备份链的正确性) |
小 |
高频次日常备份的首选 |
|
差异备份 |
捕获自上次全量以来累计的变化量 |
中等(全量+差异两步还原) |
中等 |
在备份效率和恢复便利性之间取平衡 |
|
CDP |
可恢复到任意历史时间点 |
快(指定时间点直接定位还原) |
很大 |
金融核心系统、数据零丢失要求的场景 |
|
镜像备份 |
整机级别的系统完整恢复 |
快(免去重装系统和环境的步骤) |
非常大 |
快速重建替代生产服务器的完整环境 |
|
双机热备 |
物理故障秒级自动切换接管 |
秒级(几乎无感知) |
需要(至少)双倍的存储资源 |
业务高可用保障(必须配合数据备份一起使用) |
|
你的情况 |
推荐方案 |
关键动作 |
|
小型企业,数据量不大,没有专职IT人员 |
每周全量 + 每天增量备份,额外保留一份到云端存储 |
手动定期检查备份日志确认成功率,每季度至少做一次实际恢复测试 |
|
中型企业,同时有数据库服务和虚拟化平台 |
数据库采用"全量+差异+增量"的组合策略,虚拟化平台使用快照保护,关键业务服务器叠加双机热备 |
不同类型的系统分别制定合适的备份策略,不要一刀切;国产方案如Rose的双机热备软件和备份一体机可以考虑,性价比和本地化支持有优势 |
|
金融/医疗/能源等行业,核心业务中断不可接受 |
全量+增量+CDP+双机热备的全面组合方案 |
RTO和RPO指标必须满足行业监管的硬性要求 |
|
对勒索病毒攻击特别担忧 |
采用不可变备份(WORM)存储 + 3-2-1备份原则 + 备份系统与生产网络隔离 |
确保备份存储不在生产环境的同一网段内,防止横向渗透 |
在数据保护领域流传最广同时也最实用的原则叫"3-2-1规则":
• 3 :保留至少 3份数据副本 (1份是正在使用的生产数据 + 2份独立的备份副本)
• 2 :使用至少 2种不同的存储介质 (例如:本地磁盘阵列 + 磁带库,或者本地NAS + 云对象存储)
• 1 :至少有 1份备份存放在异地 (与生产环境不在同一物理位置)
这个原则看起来简单直白,但在实际工作中认真彻底执行的企业并没有想象中那么多。有公司的备份文件存放在机房隔壁房间的NAS设备上 , 结果机房发生漏水事故,生产服务器和隔壁的备份NAS同时报废。还有公司将所有备份文件全部存在同一台磁盘阵列的不同数据盘上 , 一旦阵列控制器出现故障或者RAID组损坏,生产数据和备份数据同时变得不可访问。
目前最省事的异地备份方案是将备份文件通过加密传输通道同步到公有云的对象存储服务中 , 阿里云OSS、腾讯云COS、AWS S3等都提供成熟的解决方案。云对象存储自身内置了多副本冗余机制和跨区域复制能力,可靠性远高于自己搭建异地NAS存储。而且冷数据存储层级的价格非常低廉,对于备份这种"平时不用、关键时刻救命"的数据来说性价比极高。
还有一个经常被忽略的安全要点: 备份文件本身的防篡改和防删除保护。 如果备份存储设备跟生产服务器处于同一个内部网络网段中,勒索病毒在感染生产服务器后通常会扫描内网中的其他设备并将找到的共享存储上的备份文件一并加密 , 这样连最后的恢复希望都被摧毁了。比较有效的防御手段包括:将备份存储部署在独立于生产的网络分段中、使用不同于生产域的认证体系(例如备份NAS不加入Windows Active Directory域)、或者采用不可变备份技术 , 备份文件一旦写入完成就被设置为不可修改和不可删除状态,只能等待预设的保留期到期后自动清理。
服务器的数据备份保护是一个需要持续投入管理精力的工作,绝对不是"买一套备份软件、设几个定时任务、然后就可以不管了"这么简单。
需要持续关注和管理的事情包括但不限于:选用了哪种备份方式和工具、备份执行的频率设置是否合理、备份文件存放在什么介质和位置、历史备份版本保留多久、每隔多久做一次恢复测试、备份失败的任务由谁来追踪处理和闭环 ……以上任何一个环节出现脱节或者疏忽,所谓的"备份体系"就可能退化成一个聊胜于无的心理安慰品。
建议今天就去做一件事:检查一下当前的备份系统状态,然后在测试环境中做一次真正的端到端恢复操作 , 不是翻看备份报告确认"上次备份状态为成功"就算完了,而是实实在在地从备份文件中还原出一个测试库,执行若干条SQL语句验证核心表的完整性和一致性,启动应用程序确认各项功能正常运行。如果能在预定的时间内让整套业务恢复正常运转,说明目前的备份体系是合格的。如果做不到 , 说明还有漏洞需要尽快修补。
数据来源参考:数据保护行业通用标准规范、GB/T 20988信息系统灾难恢复等级标准、多个容灾备份项目实践经验总结。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049680/viewspace-3178888/ ,如需转载,请注明出处,否则将追究法律责任。