증분 백업을 복원하려면 먼저 전체 백업을 복원한 후 동일한 순서로 증분 백업을 복원하고 삭제된 파일을 삭제해야 합니다. 파일을 복구하고 삭제하는 것은 아무 소용이 없으며 대용량 파일의 경우 시간 낭비입니다. 그것을 사용하지 않는 방법이 있습니까 tar
?
답변1
특정 파일 추출을 건너뛰려면 해당 파일을 추출하기 전에 해당 파일의 이름을 알아야 합니다.
이를 위해서는 내용을 분석하기 위해 사전에 모든 테이프를 완전히 읽어야 합니다. 즉, 복구 시간이 두 배로 늘어납니다. 요즘 일반적인 파일 시스템 백업 복구에 하루 이상이 걸린다는 점을 고려하면 이는 유용한 대안이 아닌 것 같습니다.
월요일에 어떤 파일이 화요일에 삭제될지 알고 있으면 백업이 더 효율적일 수 있지만, 월요일 백업에는 월요일의 정보만 포함됩니다.
백업의 효율성은 메타데이터 세트에 따라 달라지며 GNU tar는 매우 적은 양의 메타데이터를 저장합니다. GNU tar는 아카이브 디렉토리에 있는 모든 파일의 이름만 알고 있습니다.
일반적인 백업 유틸리티는 GNU tar보다 더 많은 메타데이터를 저장합니다. GNU tar 아카이브에서 누락된 중요한 정보 중 하나는 모든 파일의 inode 번호 목록입니다. 백업에 inode 번호가 있으면 파일 이름 변경을 추적할 수 있습니다. GNU tar는 메타데이터 부족으로 인해 이름 변경을 추적할 수 없습니다.
충분한 메타데이터를 저장하는 백업 프로그램이 있는 경우 증분 백업을 복원하는 최신 방법은 다음과 같습니다.
빈 대상 파일 시스템으로 시작
초기 전체 덤프를 대상 파일 시스템으로 추출하고 어떤 파일이 디렉터리이고 어떤 파일이 디렉터리가 아닌지, 그리고 백업 파일 시스템의 원래 inode 번호와 파일 시스템에서 사용된 새 inode 번호를 기억하는 데이터베이스를 유지합니다. 회복이 일어나는 곳.
증분 후속 백업은 생성된 순서대로 추출됩니다.
복원된 현재 증분의 각 파일 및 디렉토리에 대해 해당 데이터베이스의 inode 번호를 확인하여 연관된 새 inode 번호를 얻습니다. 데이터베이스에 새 inode 번호가 없으면 이는 새 파일이고, 데이터베이스에 이미 새 inode 번호가 있고 현재 파일 이름이 다른 경우 파일 이름은 현재 이름으로 변경됩니다.
디렉터리와 해당 내용이 델타 아카이브에서 추출되고 파일/디렉터리가 더 이상 디렉터리의 새 상태가 아닌 경우 디렉터리 이름을 바꾸고 임시 이름을 기억하십시오.
현재 증분을 완전히 복원하고 임시로 이름이 변경된 파일이 있는 디렉터리에 파일이 남아 있는 경우 해당 파일은 원래 파일 시스템에서 삭제된 파일이므로 새 대상 파일 시스템에서 삭제해야 합니다.
이러한 이유로 항상 소스 파일 시스템보다 새 대상 파일 시스템에 더 많은 데이터를 저장할 수 있어야 합니다. GNU tar 백업에는 메타데이터가 거의 포함되어 있지 않기 때문에 GNU tar는 더 많은 메타데이터 공간을 저장하는 솔루션보다 증분 백업에 더 많은 공간이 필요하고 대상 파일 시스템에 더 많은 추가 공간이 필요한 경향이 있습니다.