xfs文件系統的備份和恢復


         xfs提供了xfsdump和xfsrestore工具,協助備份xfs文件系統中的數據。xfsdump按inode順序備份一個xfs文件系統

         在CentOS7中,xfs格式作為默認文件系統,不再使用以前的ext,但仍然支持ext4。xfs專為大數據產生,每個文件系統最大可以支持8eb,單個文件可以支持16tb,不僅數據量大,而且擴展性高。還可以通過xfsdump和xfsrestore來備份和恢復。原始備份數據方法:cp

         與傳統的UNIX文件系統不同,xfs不需要備份前卸載;對使用中的xfs文件系統做備份就可以保證鏡像的一致性。xfs的備份和恢復的過程是可以被中斷然后繼續的,無需凍結文件系統。xfsdump甚至特功了高性能的多線程備份操作——它把一次dump拆分成多個數據流,每個數據流可以被發往不同的目的地

         首先了解一下xfsdump的備份級別有以下兩種:0,代表完整備份;1~9,代表增量備份。默認為0(即完全備份)。

(1).環境

VMware12       系統CentOS7.6

添加一塊虛擬硬盤(准備一個測試分區),分區,格式化,掛載

1)添加完一塊虛擬硬盤后如何查看系統是否識別

[root@xuexi xf]# fdisk -l
磁盤 /dev/sda:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x000c83f7

   設備 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648    21383167    10485760   83  Linux
/dev/sda3        21383168    25577471     2097152   82  Linux swap / Solaris

磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
[root@xuexi xf]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb

2)分區,格式化,掛載可以參考以下文檔:

https://www.cnblogs.com/diantong/p/8855683.html

這里創建一個1G的sdb1分區,xfs格式化,並掛載到新建的文件夾/sdb1

3)准備一份備份的測試文件

[root@xuexi xf]# cd /sdb1/
[root@xuexi sdb1]# ls
[root@xuexi sdb1]# cp /etc/passwd ./
[root@xuexi sdb1]# mkdir test
[root@xuexi sdb1]# touch test/a
[root@xuexi sdb1]# tree /sdb1/
/sdb1/
├── passwd
└── test
    └── a
1 directory, 2 files

(2).完整備份

1)備份整個分區

xfsdump –f [備份存放路徑] [要備份的設備文件或掛載點]

注意:備份的路徑這里不能寫/sdb1/。可以寫成/dev/sdb1或/sdb1

[root@xuexi sdb1]# mkdir /dump
[root@xuexi sdb1]# xfsdump -f /dump/sdb1 /dev/sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
 ============================= dump label dialog ==============================
please enter label for this dump session (timeout in 300 sec)
 -> dump_sdb1_20181228		//指定備份會話標簽,就是對此文件系統的簡短描述
session label entered: "dump_sdb1_20181228"
 --------------------------------- end dialog ---------------------------------
xfsdump: level 0 dump of xuexi:/sdb1
xfsdump: dump date: Fri Dec 28 14:11:55 2018
xfsdump: session id: a1afa104-8f0c-42fa-be6e-594b674f13c7
xfsdump: session label: "dump_sdb1_20181228"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 25856 bytes
xfsdump: /var/lib/xfsdump/inventory created
 ============================= media label dialog =============================
please enter label for media in drive 0 (timeout in 300 sec)
 -> sdb1	//指定設備標簽,就是對要備份的設備做一個簡短描述
media label entered: "sdb1"
 --------------------------------- end dialog ---------------------------------
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 25552 bytes
xfsdump: dump size (non-dir files) : 2592 bytes
xfsdump: dump complete: 39 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /dump/sdb1 OK (success)
xfsdump: Dump Status: SUCCESS

2)指定備份時免交互操作,方便后期做定時備份

-L 指定備份會話標簽

-M 指定設備標簽

[root@xuexi sdb1]# xfsdump -f /dump/sdb1_v2 /sdb1 -L dump_sdb1_20181228_v2 -M sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsdump: level 0 dump of xuexi:/sdb1
xfsdump: dump date: Fri Dec 28 14:26:05 2018
xfsdump: session id: 5595618f-a3c3-4f4d-a5fc-0f6b86513400
xfsdump: session label: "dump_sdb1_20181228_v2"		//備份會話標簽
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 25856 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 25552 bytes
xfsdump: dump size (non-dir files) : 2592 bytes
xfsdump: dump complete: 0 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /dump/sdb1_v2 OK (success)
xfsdump: Dump Status: SUCCESS

3)指定只備份分區中某個目錄或文件

-s [文件路徑] 只對指定的文件或目錄進行備份,路徑是相對路徑

[root@xuexi sdb1]# ls /boot/grub2/
device.map  fonts  grub.cfg  grub.cfg.1544939406.rpmsave  grubenv  i386-pc  locale
[root@xuexi sdb1]# xfsdump -f /dump/grub2_grub.cfg -s grub2/grub.cfg /boot -L dump_grub2_grub.cfg_20181228 -M boot-sda1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsdump: level 0 dump of xuexi:/boot
xfsdump: dump date: Fri Dec 28 15:43:25 2018
xfsdump: session id: 6c2c5768-7389-46be-ab7b-11ceaf19c2b5
xfsdump: session label: "dump_grub2_grub.cfg_20181228"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 29632 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 28848 bytes
xfsdump: dump size (non-dir files) : 5152 bytes
xfsdump: dump complete: 0 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /dump/grub2_grub.cfg OK (success)
xfsdump: Dump Status: SUCCESS

4)查看備份信息和內容

備份成功后,我們可以在/var/lib/xfsdump/inventory目錄下看到生成的檔案信息

[root@xuexi sdb1]# ls /var/lib/xfsdump/inventory/	
02c76feb-497b-4167-8e72-f8b81a79dbf9.InvIndex  43384fc8-7ba5-4f18-b9f9-246e4992962b.StObj  fstab
1eccfe79-a9eb-4f09-83c1-f28aa64db1ce.InvIndex  afe37eaa-9e10-4243-ad45-36aadc180d58.StObj
[root@xuexi sdb1]# xfsdump –I(大寫的i)	//查看所有備份信息

注意:使用xfsdump時有以下幾個限制:

1.xfsdump不支持沒有掛載的文件系統備份!

2.xfsdump必須使用root權限才能操作(涉及文件系統的關系)

3.xfsdump只能備份xfs文件系統

4.xfsdump備份下來的數據(檔案或存儲媒體)只能讓xfsrestore解析

5.xfsdump是通過文件系統的UUID來分辨系統各個備份檔的,英雌不能備份兩個具有相同UUID的文件系統

(3).文件系統恢復

xfsrestore –f [指定需要恢復的備份文件路徑] [指定恢復后文件的存放路徑]

1)測試恢復:先刪除之前創建的內容

[root@xuexi sdb1]# ls
passwd  test
[root@xuexi sdb1]# pwd
/sdb1
[root@xuexi sdb1]# rm -rf ./*

2)恢復整個分區

[root@xuexi sdb1]# xfsrestore -f /dump/sdb1 /sdb1/
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description: 
xfsrestore: hostname: xuexi
xfsrestore: mount point: /sdb1
xfsrestore: volume: /dev/sdb1
xfsrestore: session time: Fri Dec 28 14:11:55 2018
xfsrestore: level: 0
xfsrestore: session label: "dump_sdb1_20181228"
xfsrestore: media label: "sdb1"
xfsrestore: file system id: 1eccfe79-a9eb-4f09-83c1-f28aa64db1ce
xfsrestore: session id: a1afa104-8f0c-42fa-be6e-594b674f13c7
xfsrestore: media id: 8db0ba63-465f-42ba-8581-7cc22a24b902
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 2 directories and 3 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore:   stream 0 /dump/sdb1 OK (success)
xfsrestore: Restore Status: SUCCESS
[root@xuexi sdb1]# ls /sdb1/
passwd  test
[root@xuexi sdb1]# tree /sdb1/
/sdb1/
├── passwd
└── test
    └── a
1 directory, 2 files

3)恢復單個文件

[root@xuexi sdb1]# ls
passwd  test
[root@xuexi sdb1]# xfsrestore -f /dump/grub2_grub.cfg -s grub2/grub.cfg /sdb1/
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description: 
xfsrestore: hostname: xuexi
xfsrestore: mount point: /boot
xfsrestore: volume: /dev/sda1
xfsrestore: session time: Fri Dec 28 15:43:25 2018
xfsrestore: level: 0
xfsrestore: session label: "dump_grub2_grub.cfg_20181228"
xfsrestore: media label: "boot-sda1"
xfsrestore: file system id: 02c76feb-497b-4167-8e72-f8b81a79dbf9
xfsrestore: session id: 6c2c5768-7389-46be-ab7b-11ceaf19c2b5
xfsrestore: media id: dc813998-6f28-4686-96c2-d844525cecff
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 2 directories and 24 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore:   stream 0 /dump/grub2_grub.cfg OK (success)
xfsrestore: Restore Status: SUCCESS
[root@xuexi sdb1]# ls
grub2  passwd  test
[root@xuexi sdb1]# tree /sdb1/
/sdb1/
├── grub2
│   └── grub.cfg
├── passwd
└── test
    └── a
2 directories, 3 files

注意:

[root@xuexi sdb1]# xfsrestore -f /dump/grub2_grub.cfg  -s grub2/grub.cfg /sdb1/

[root@xuexi sdb1]# xfsrestore -f /dump/grub2_grub.cfg  -s grub2 /sdb1/

這兩個命令相同效果

(4).增量備份

開始之前看一下備份目錄

[root@xuexi sdb1]# tree /sdb1/
/sdb1/
├── grub2
│   └── grub.cfg
├── passwd
└── test
    └── a
2 directories, 3 files

1)  進行第一次完整備份

[root@xuexi sdb1]# xfsdump -f /dump/full_backup /sdb1 -L full_backup_sdb1 -M sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsdump: level 0 dump of xuexi:/sdb1
xfsdump: dump date: Fri Dec 28 16:54:44 2018
xfsdump: session id: d3809f53-bc01-4138-afd1-98e436fbc48a
xfsdump: session label: "full_backup_sdb1"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 34688 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 32312 bytes
xfsdump: dump size (non-dir files) : 7744 bytes
xfsdump: dump complete: 0 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /dump/full_backup OK (success)
xfsdump: Dump Status: SUCCESS

2)  進行第一次增量備份

注意:-l [備份級別],設置備份級別

[root@xuexi sdb1]# touch /sdb1/{1.txt,2.txt}	//新增兩個文件
[root@xuexi sdb1]# tree /sdb1/
/sdb1/
├── 1.txt
├── 2.txt
├── grub2
│   └── grub.cfg
├── passwd
└── test
    └── a
2 directories, 5 files
[root@xuexi sdb1]# xfsdump -l 1 -f /dump/incremental_backup1 /sdb1 -L incremental_backup1_sdb1 -M sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsdump: level 1 incremental dump of xuexi:/sdb1 based on level 0 dump begun Fri Dec 28 16:54:44 2018
xfsdump: dump date: Fri Dec 28 16:59:54 2018
xfsdump: session id: 0dd47814-2901-4301-99dc-5203e9a3dac0
xfsdump: session label: "incremental_backup1_sdb1"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: pruning unneeded subtrees
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 21440 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 22704 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 0 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /dump/incremental_backup1 OK (success)
xfsdump: Dump Status: SUCCESS

3)  進行第二次增量備份

[root@xuexi sdb1]# touch /sdb1/test/a.txt /sdb1/b.txt
[root@xuexi sdb1]# tree /sdb1/
/sdb1/
├── 1.txt
├── 2.txt
├── b.txt
├── grub2
│   └── grub.cfg
├── passwd
└── test
    ├── a
    └── a.txt
2 directories, 7 files
[root@xuexi sdb1]# xfsdump -l 2 -f /dump/incremental_backup2 /sdb1 -L incremental_backup2_sdb1 -M sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsdump: level 2 incremental dump of xuexi:/sdb1 based on level 1 dump begun Fri Dec 28 16:59:54 2018
xfsdump: dump date: Fri Dec 28 17:05:21 2018
xfsdump: session id: 6d59a61c-5e5b-476d-ac8d-07b7610355ae
xfsdump: session label: "incremental_backup2_sdb1"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: pruning unneeded subtrees
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 21760 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 23400 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 0 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /dump/incremental_backup2 OK (success)
xfsdump: Dump Status: SUCCESS

4)  恢復

步驟:

1.先恢復完整備份

2.如果兩次備份都是1級的,那么只需要恢復最后一次增量備份;但如果第一次是1級備份,第二次是2級備份,那么需要先恢復完整備份,然后恢復1級備份,最后2級備份

實際操作:

刪除,測試恢復

[root@xuexi sdb1]# rm -rf /sdb1/*

先恢復完整備份

[root@xuexi sdb1]# xfsrestore -f /dump/full_backup  /sdb1/
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description: 
xfsrestore: hostname: xuexi
xfsrestore: mount point: /sdb1
xfsrestore: volume: /dev/sdb1
xfsrestore: session time: Fri Dec 28 16:54:44 2018
xfsrestore: level: 0
xfsrestore: session label: "full_backup_sdb1"
xfsrestore: media label: "sdb1"
xfsrestore: file system id: 1eccfe79-a9eb-4f09-83c1-f28aa64db1ce
xfsrestore: session id: d3809f53-bc01-4138-afd1-98e436fbc48a
xfsrestore: media id: 3f4eeb44-b277-4df8-a7ba-de162e8a5c3e
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 3 directories and 5 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore:   stream 0 /dump/full_backup OK (success)
xfsrestore: Restore Status: SUCCESS
[root@xuexi sdb1]# tree /sdb1/
/sdb1/
├── grub2
│   └── grub.cfg
├── passwd
└── test
    └── a
2 directories, 3 files

恢復1級備份

[root@xuexi sdb1]# xfsrestore -f /dump/incremental_backup1 /sdb1/
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description: 
xfsrestore: hostname: xuexi
xfsrestore: mount point: /sdb1
xfsrestore: volume: /dev/sdb1
xfsrestore: session time: Fri Dec 28 16:59:54 2018
xfsrestore: level: 1
xfsrestore: session label: "incremental_backup1_sdb1"
xfsrestore: media label: "sdb1"
xfsrestore: file system id: 1eccfe79-a9eb-4f09-83c1-f28aa64db1ce
xfsrestore: session id: 0dd47814-2901-4301-99dc-5203e9a3dac0
xfsrestore: media id: dc9c4bed-671c-4199-9660-31b6a3c560b7
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 1 directories and 5 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore:   stream 0 /dump/incremental_backup1 OK (success)
xfsrestore: Restore Status: SUCCESS
[root@xuexi sdb1]# tree /sdb1/
/sdb1/
├── 1.txt
├── 2.txt
├── grub2
│   └── grub.cfg
├── passwd
└── test
    └── a
2 directories, 5 files

恢復2級備份

[root@xuexi sdb1]# xfsrestore -f /dump/incremental_backup2 /sdb1/
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description: 
xfsrestore: hostname: xuexi
xfsrestore: mount point: /sdb1
xfsrestore: volume: /dev/sdb1
xfsrestore: session time: Fri Dec 28 17:05:21 2018
xfsrestore: level: 2
xfsrestore: session label: "incremental_backup2_sdb1"
xfsrestore: media label: "sdb1"
xfsrestore: file system id: 1eccfe79-a9eb-4f09-83c1-f28aa64db1ce
xfsrestore: session id: 6d59a61c-5e5b-476d-ac8d-07b7610355ae
xfsrestore: media id: daf6acdb-921f-437e-a33b-538e47c0ca1a
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 2 directories and 8 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore:   stream 0 /dump/incremental_backup2 OK (success)
xfsrestore: Restore Status: SUCCESS
[root@xuexi sdb1]# tree /sdb1/
/sdb1/
├── 1.txt
├── 2.txt
├── b.txt
├── grub2
│   └── grub.cfg
├── passwd
└── test
    ├── a
    └── a.txt
2 directories, 7 files

(5).擴展:

  完整備份:每次都將所有數據(不管自第一次備份以來有沒有修改過),進行一次完整的復制,備份后會清除文件的存檔屬性,方便日后增量備份或者差異備份進行版本比較。

  特點:占用空間大,備份速度慢,但恢復時一次恢復到位,恢復速度快。

 

  增量備份:在第一次完整備份之后,第二次開始每次都將添加了存檔屬性的文件進行備份,並且在備份之后再把這些存檔屬性清除。為什么要清除存檔屬性呢?這就是為了下一次備份的時候判斷是否有文件變化,因為用戶在每次備份以后修改這些被清除存檔屬性的文件,存檔屬性就會自動加上,相當於用戶告訴系統,這些文件有變化,你下一次就備份這些文件,其他沒有存檔屬性的就不需要備份,這就是增量備份的工作機制。

  類比:相當於機器人把地板打掃干凈了,你踩過,就會有腳印(增加標記),下次機器人就把腳印記錄下來,並且把腳印打掃干凈(清除標記),始終保持地板干凈。機器人每次記錄並打掃的腳印就相當於每次增量備份的內容

  特點:因每次僅備份自上一次備份(注意是上一次,不是第一次)以來有變化的文件,所  以備份體積小,備份速度快,但是恢復的時候,需要按備份時間順序,逐個備份版本進行恢復,恢復時間長。

 

  差異備份:在第一次完整備份之后,第二次開始每次都將所有文件與第一次完整備份的文件做比較,把自第一次完整備份以來所有修改過的文件進行備份,且以后每次備份都是和第一次完整備份進行比較(注意是第一次,不是上一次),備份自第一次完整備份以來所有的修改過的文件。因此,差異備份在備份完畢之后不需要清除文件的存檔屬性,因為這些文件和下一次備份沒有什么關系,它僅僅和第一次完整備份的數據進行比較(第一次完整備份之后是清除存檔屬性的)。

  類比:相當於第一次機器人把地板打掃干凈了,你踩過,就會有腳印,機器人就把腳印記錄下來,但不打掃,下次你又有踩臟的,機器人就把你這幾次所有踩臟的地方都記錄下來,始終不打掃,每次都這樣。機器人每次記錄的內容就相當於差異備份的內容

       特點:占用空間比增量備份大,比完整備份小,恢復時僅需要恢復第一個完整版本和最后一次的差異版本,恢復速度介於完整備份和增量備份之間。

 

  簡單的講,完整備份就是不管三七二十一,每次都把指定的備份目錄完整的復制一遍,不管目錄下的文件有沒有變化;增量備份就是每次將之前(第一次、第二次、直到前一次)做過備份之后有變化的文件進行備份;差異備份就是每次都將第一次完整備份以來有變化的文件進行備份。

 

舉例:

  假設指定備份目錄周一包含A、B、C三個文件。周一的時候,做了完整備份。周二新增了D文件,同時A文件發生變化,變成A1文件;周三新增了E文件,同時A文件變成了A2,B文件變成B1;周四新增了F文件,A2變成了A3,D變成了D1,同時刪掉了C文件。

  不同備份方式下的備份情況(假設每天做一次備份):

       完整備份:周一,備份ABC三個文件;周二,備份A1、B、C、D四個文件;周三,備份A2、B1、C、D、E五個文件;周四,備份A3、B1、D1、E、F五個文件。

  增量備份:周一,備份ABC三個文件,完整備份;周二,備份與周一相比有變化的文件,即備份A1和D兩個文件;周三,備份與之前所有版本相比有變化的文件,即備份A2,B1,E三個文件;周四,備份與之前所有版本相比有變化的文件,即備份A3,D1,F三個文件並刪除C。

  差異備份:周一,備份ABC三個文件,完整備份;周二,備份與周一相比有變化的文件,即備份A1和D兩個文件;周三,備份與周一相比有變化的文件,即備份A2、B1、D、E四個文件;周四,備份與周一相比有變化的文件,即備份A3、B1、D1、E、F五個文件並刪除C。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM