1.数据备份简介
1.Linux服务器中哪些数据需要备份
1)Linux系统重要数据
/root/目录:/root目录是管理员的家目录
/home/目录:/home目录是普通用户家目录,如果是生产环境的服务器,这个目录中也会保存大量的重要数据,应该备份。
/etc/目录:系统重要的配置文件保存目录。
2)安装服务的数据
我们这里拿最常见的apache服务和mysql服务举例:
apache需要备份如下内容:
配置文件:RPM包安装了apache,需要备份/etc/httpd/conf/httpd.conf。源码包安装的apache则备份 /usr/local/apache2/conf/httpd.conf。
网页主目录:RPM包安装的apache需要备份/var/www/html/目录中所有数据。源码包安装的apache需要备份 /usr/local/apache2/htdocs/目录中所有数据。
日志文件:RPM包安装的apache需要备份/var/log/httpd/目录中所有日志。源码包安装的apache需要备份 /usr/local/apache2/logs/目录中所有日志。
2备份策略
2.1完全备份
完全备份就是指把所有需要备份的数据全部备份,当然完全备份可以备份整块硬盘,整个分区或某个具体的目录。完全备份的好处就是数据恢复方便,因为所有的数据都在同一个备份中,所以只要恢复完全备份,所有的数据就会被恢复。如果完全备份的是整块硬盘,那么甚至都不需要数据恢复,只要把备份硬盘安装上,服务器就会恢复正常。可是完全备份的缺点也很明显,那就是需要备份的数据量较大,备份时间较长,占用的空间较多,所以完全备份不可能每天执行。我们一般会对关键的服务器进行整盘完全备份,如果出现问题,可以很快的使用备份硬盘进行替换,从而减少损失。甚至会对关键服务器搭设一台一模一样的服务器,这样只要远程几个命令(或使用shell脚本自动检测,自动进行服务器替换。)备份服务器就会解体原本的服务器,使我们的故障响应时间缩短为最短。
2.2增量备份
完全备份随着数据量的加大,备份耗费的时间和占用的空间会越来越多,所以完全备份不会也不能每天进行。这时增量备份的作用就体现出来了。增量备份是指先进行一次完全备份,服务器运行一段时间之后,比较当前系统和完全备份数据之间的差异,只备份有差异的数据而已。服务器继续运行,再经过一段时间运行之后,进行第二次增量备份,第二次增量备份时,当前系统是和第一次增量备份的数据进行比较,也是只备份有差异的数据。而第三次增量备份是和第二次增量备份的数据进行比较,以此类推。
2.3差异备份
差异备份也要先进行依次完全备份,但是和增量备份不同的地方是,每次差异备份都是备份和原始的完全备份不同的数据,也就是说差异备份每次备份的参照物是原始的完全备份,而不是上一次的差异备份。
3.备份工具dd
命令格式:dd if=“输入文件” of=“输出文件” bs=“数据块” count=“数量”
参数:
if:定义输入数据的文件,也可以是输入设备。
of:定义输出数据的文件,也可以是输出设备。
bs:指定数据块的大小,也就是定义一次性读取或写入多少字节。默认数据块大小是512字节。
count:指定bs的数量。
1)只备份文件:dd if=/etc/httpd/conf/httpd.conf of=/tmp/httpd.bak
2)备份分区为一个文件:dd if=/dev/sda1 of=/tmp/boot.bak
#如果需要进行恢复,执行此命令即可:dd if=/tmp/boot.bak of=/dev/sda1
3)备份分区到另一个新分区:dd if=/dev/sda1 of=/dev/sdb1
#如果需要恢复,只要把输入项和输出项反过来即可
4)整盘备份:dd if=/dev/sda of=/dev/sdb
注:dd备份缺点,就是复制的时间比较长
网络复制工具,如rsync和scp等
4.xfs文件系统的备份与恢复原理及实战
xfs文件系统支持备份功能,使用xfsdump命令和xfsrestore可以完成备份与恢复。xfsdump实现了针对文件系统进行备份的功能centos7中默认选用的文件系统xfs。
XFS文件系统备份:
xfs文件系统的备份不光通过xfsdump可以进行完整备份。而且还可以进行增量备份。
XFSdump使用注意事项:
xfsdump不支持对没有挂载的文件系统进行备份,需要备份请挂载之后备份。
xfsdump必须使用root身份才能够有权限执行。
xfsdump只能备份xfs文件系统。
xfsdump备份过的数据只能被xfsrestore解析。
xfsdump默认只支持备份文件系统,并不支持特定某个目录的备份。
xfsdump是通过文件系统的UUID来辨别各个备份文件,因此不能备份两个具有相同UUID的文件系统(UUID重复的概率 无限接近于0,可以忽略不记)。
xfsdump:对xfs文件系统进行备份。
选项:
-L:xfsdump会记录每次备份的说明标签。
-M:指定存储媒介的说明标签。
-l:指定备份的级别(0-9),0级别是完整备份。1-9是增量备份。
-f:指定转储的目的地。转储的目的地可以是路径设备、常规文件等。
-I:从/var/lib/xfsdump/inventory列出目前备份的信息状态(没有备份过没有此路径)。
实验流程:
第一步:使用新的分区,格式化分区,并进行挂载
[root@localhost ~]# mkfs.xfs /dev/sdb1
[root@localhost ~]#mkdir /test #创建挂载点
[root@localhost ~]#mount /dev/sdb1 /test #挂载
准备备份测试文件
[root@localhost ~]# cd /test/
[root@localhost test]# cp /etc/passwd ./
[root@localhost test]# mkdir ./linux
[root@localhost test]# touch ./linux/a
[root@localhost test]# tree /test/
/test/
├── passwd
└── linux
└── a
第二步:备份
1、备份整个分区。 (这个功能就像是虚拟机的快照,服务器被黑后,进行快速恢复)
xfsdump -f 备份文件存放位置 被备份路径或设备文件
注意:被备份的路径可以写/dev/sdb1 或/test ,但是不能写成/test/ ,即 test后不能有/
[root@localhost test]# xfsdump -f /opt/dump_sdb1 /dev/sdb1
dump_sdb1 #指定备份标签.
2、指定备份时免交互操作,方便后期做定时备份
[root@localhost sdb1]# xfsdump -f /opt/dump_2 /test -L dump_2 -M sdb1
-L : #每次备份的 session 标签,这里写此次备份的描述
-M : #媒体标签,这里写对哪个设备进行备份
排错:
改:xfsdump -f /opt/dump_2 /test/ -L dump_2 -M sdb1
为:xfsdump -f /opt/dump_2 /test -L dump_2 -M sdb1 #test后,不要有/
3、指定只备份分区中某个目录
参数:-s 文件路径 只对指定的文件进行备份,-s指定时,路径写的是相对路径(-s可以是文件或目录)例:对/test/xuegod 目录进行备份
[root@localhost opt]# xfsdump -f /opt/dump_linux -s linux /test -L
dump_linux -M sdb1
4、查看备份信息与内容
备份成功后,我们就可以在/var/lib/xfsdump/inventory目录下看到生成的档案信息
[root@localhost opt]# xfsdump -I(字母大写i)
测试恢复:先删除之前创建的内容
[root@localhost opt]# cd /test/
[root@localhost test]# ls
passwd linux
[root@localhost sdb1]# rm -rf ./*
第三步:文件系统恢复
格式:xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件的路径
[root@localhost opt]# xfsrestore -f /opt/dump_sdb1 /test/
[root@localhost ~]# ls /test/ #查看恢复情况
恢复单个文件如下:
[root@localhost test]# mkdir /tmp/test
[root@localhost test]# xfsrestore -f /opt/dump_sdb1 -s passwd /tmp/test/
#恢复单个文件
[root@localhost test]# xfsrestore -f /opt/dump_sdb1 -s linux /tmp/test/
#恢复目录
5.增量备份文件系统实战
(1)准备一个备份目录进行备份
[root@localhost test]# tree /test/
/test/
├── passwd
└── linux
└── a
(2)对上面的内容进行第一次全备
[root@localhost test]# xfsdump -f /opt/test-full /test -L test-full -M sdb1
(3)增加一些内容,然后进行第1次增量备份
[root@localhost test]# touch /test/1.txt /test/2.txt
[root@localhost test]# xfsdump -l 1 -f /opt/test-back1 /test -L test-bak1 -M sdb1
-l 做一个等级为1的备份
(4)再次增加内容,然后进行level 2级别的增量备
[root@localhost test]# touch /test/linux/a.txt /test/xuegod/b.txt
[root@localhost test]# xfsdump -l 2 -f /opt/test-back2 /test -L test-bak2 -M sdb1
[root@localhost ~]# rm -rf /test/* #删除所有数据
现在进行恢复,要想恢复全部全部数据,包括新添加的文件,如何恢复?
实验步骤:
1、先恢复完全备份
2、情况1: 恢复最后一次增量备份(如果两次增量备份都是1级的,所以只需要恢复最后一个增量就可以了。
3、情况2:如果你做的是第一次是1级备份,第二次是2级备份。在恢复时,需要先恢复完全备份,然后是1级备,最后是2级备)文章来源:https://www.toymoban.com/news/detail-459553.html
例:对做了完全备份,1级备份,2级备份的数据时行恢复文章来源地址https://www.toymoban.com/news/detail-459553.html
[root@localhost ~]# xfsrestore -f /opt/test-full /test/
[root@localhost ~]# xfsrestore -f /opt/test-back2 /test/ #故意先恢复back2,可以恢复成功,但是数据不全
[root@localhost ~]# tree /test/ #查看,发现没有1.txt ,2.txt
/sdb1/
├── passwd
└── test
├── a
├── a.txt
└── b.txt
[root@localhost ~]# xfsrestore -f /opt/test-back1 /test/
[root@localhost ~]# tree /test/ #到此,数据恢复成功了
/test/
├── 1.txt
├── 2.txt
├── passwd
└── xuegod
├── a
├── a.txt
└── b.txt
到了这里,关于Linux中文件的备份与恢复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!