Linux备份的3种策略(新手必看)
在 Linux 环境进行数据备份时,可以采用不同的备份策略。主要的备份策略一般分为完全备份、增量备份和差异备份,下面分别来介绍。
完全备份的好处是数据恢复方便,因为所有的数据都在同一个备份中,所以只要恢复完全备份,所有的数据都会恢复。如果在完全备份时备份的是整块硬盘,那么甚至不需要进行数据恢复,只要把备份硬盘安装上,服务器就会恢复正常。
但是,完全备份的缺点也很明显,那就是需要备份的数据量较大,备份时间较长,占用的空间较大,因此不可能每天执行。
我们一般会对关键服务器进行整盘完全备份,如果出现问题,就可以很快地使用备份硬盘进行替换,从而减少损失。我们甚至会针对关键服务器搭设一台一模一样的服务器,这样只要远程设置几个命令(或使用 shell 脚本自动检测,自动进行服务器替换),备份服务器就会接替原本的服务器,使故障响应时间大大缩短。
增量备份是指先进行一次完全备份,在服务器运行一段时间之后,比较当前系统和完全备份的数据之间的差异,只备份有差异的数据。而后服务器继续运行,再经过一段时间,进行第二次增量备份。
在进行第二次增量备份时,当前系统和第一次增量备份的数据进行比较,也是只备份有差异的数据。第三次增量备份是和第二次增量备份的数据进行比较,以此类推。
我们画一张示意图,如下图所示:

图 1 增量备份
假设我们在第一天进行一次完全备份。在第二天进行增量备份时,只会备份第二天和第一天之间的差异数据,但是第二天的总备份数据是完全备份加第一次增量备份的数据。在第三天进行增量备份时,只会备份第三天和第二天之间的差异数据,但是第三天的总备份数据是完全备份加第一次增量备份的数据,再加第二次增量备份的数据。
当然,在第四天进行增量备份时,只会备份第四天和第三天之间的差异数据,但是第四天的总备份数据是完全备份加第一次增量备份的数据,加第二次增量备份的数据,再加第三次增量备份的数据。
这种备份的好处是在每次备份时需要备份的数据较少,耗时较短,占用的空间较小;坏处是数据恢复比较麻烦,如果是图 1 中的例子,那么在进行数据恢复时,就要先恢复完全备份的数据,再依次恢复第一次增量备份的数据、第二次增量备份的数据和第三次增量备份的数据,最终才能恢复所有的数据。
我们也画一张示意图,如下图所示:

图 2 差异备份
假设我们在第一天进行一次完全备份。在第二天进行差异备份时,会备份第二天和第一天之间的差异数据,而第二天的备份数据是完全备份加第一次差异备份的数据。在第三天进行差异备份时,仍和第一天的原始数据进行对比,把第二天和第三天所有的数据都备份在第二次差异备份中,第三天的备份数据是完全备份加第二次差异备份的数据。在第四天进行差异备份时,仍和第一天的原始数据进行对比,把第二天、第三天和第四天所有不同的数据都备份到第三次差异备份中,第四天的备份数据是完全备份加第三次差异备份的数据。
相较而言,差异备份既不像完全备份一样把所有数据都进行备份,也不像增量备份在进行数据恢复时那么麻烦,只要先恢复完全备份的数据,再恢复差异备份的数据即可。
不过,随着时间的增加,和完全备份相比,变动的数据越来越多,差异备份也可能会变得数据量庞大、备份速度缓慢、占用空间较大。
完全备份
完全备份是指把所有需要备份的数据全部备份。当然,完全备份可以备份整块硬盘、整个分区或某个具体的目录。完全备份的好处是数据恢复方便,因为所有的数据都在同一个备份中,所以只要恢复完全备份,所有的数据都会恢复。如果在完全备份时备份的是整块硬盘,那么甚至不需要进行数据恢复,只要把备份硬盘安装上,服务器就会恢复正常。
但是,完全备份的缺点也很明显,那就是需要备份的数据量较大,备份时间较长,占用的空间较大,因此不可能每天执行。
我们一般会对关键服务器进行整盘完全备份,如果出现问题,就可以很快地使用备份硬盘进行替换,从而减少损失。我们甚至会针对关键服务器搭设一台一模一样的服务器,这样只要远程设置几个命令(或使用 shell 脚本自动检测,自动进行服务器替换),备份服务器就会接替原本的服务器,使故障响应时间大大缩短。
增量备份
随着数据量的增多,完全备份在备份时耗费的时间和占用的空间会越来越多,因此完全备份不会也不能每天进行。这时,增量备份的作用就体现了出来。增量备份是指先进行一次完全备份,在服务器运行一段时间之后,比较当前系统和完全备份的数据之间的差异,只备份有差异的数据。而后服务器继续运行,再经过一段时间,进行第二次增量备份。
在进行第二次增量备份时,当前系统和第一次增量备份的数据进行比较,也是只备份有差异的数据。第三次增量备份是和第二次增量备份的数据进行比较,以此类推。
我们画一张示意图,如下图所示:

图 1 增量备份
假设我们在第一天进行一次完全备份。在第二天进行增量备份时,只会备份第二天和第一天之间的差异数据,但是第二天的总备份数据是完全备份加第一次增量备份的数据。在第三天进行增量备份时,只会备份第三天和第二天之间的差异数据,但是第三天的总备份数据是完全备份加第一次增量备份的数据,再加第二次增量备份的数据。
当然,在第四天进行增量备份时,只会备份第四天和第三天之间的差异数据,但是第四天的总备份数据是完全备份加第一次增量备份的数据,加第二次增量备份的数据,再加第三次增量备份的数据。
这种备份的好处是在每次备份时需要备份的数据较少,耗时较短,占用的空间较小;坏处是数据恢复比较麻烦,如果是图 1 中的例子,那么在进行数据恢复时,就要先恢复完全备份的数据,再依次恢复第一次增量备份的数据、第二次增量备份的数据和第三次增量备份的数据,最终才能恢复所有的数据。
差异备份
差异备份也要先进行一次完全备份,但是和增量备份不同的是,每次差异备份都备份和原始的完全备份不同的数据。也就是说,差异备份在每次备份时的参照物都是原始的完全备份,而不是上一次的差异备份。我们也画一张示意图,如下图所示:

图 2 差异备份
假设我们在第一天进行一次完全备份。在第二天进行差异备份时,会备份第二天和第一天之间的差异数据,而第二天的备份数据是完全备份加第一次差异备份的数据。在第三天进行差异备份时,仍和第一天的原始数据进行对比,把第二天和第三天所有的数据都备份在第二次差异备份中,第三天的备份数据是完全备份加第二次差异备份的数据。在第四天进行差异备份时,仍和第一天的原始数据进行对比,把第二天、第三天和第四天所有不同的数据都备份到第三次差异备份中,第四天的备份数据是完全备份加第三次差异备份的数据。
相较而言,差异备份既不像完全备份一样把所有数据都进行备份,也不像增量备份在进行数据恢复时那么麻烦,只要先恢复完全备份的数据,再恢复差异备份的数据即可。
不过,随着时间的增加,和完全备份相比,变动的数据越来越多,差异备份也可能会变得数据量庞大、备份速度缓慢、占用空间较大。