독까의 이야기

# Windows Server 2012 이상 버전의 가장 오래된 VSS 백업 복사본 삭제 / 2008 이하는 안 됨


1) 백업 복사본이 여러 파티션에 저장되는 경우 / 저장 영역의 볼륨을 지정

CMD 

WBADMIN DELETE BACKUP -backupTarget:f: -deleteOldest 


2) 백업 복사본이 단일 파티션에 저장되는 경우

CMD 

WBADMIN DELETE BACKUP -deleteOldest


# 스케쥴러 등록시 

위 명령어 실행시 'y' 를 입력해야 정상 작동 되므로 스케쥴러에 등록시에는 아래와 같이 한다. 

1) 배치 파일 생성

oldest_vss_del.cmd

@echo off

echo y| wbadmin delete backup -deleteoldest 


2) 작업 스케쥴러 등록

설정에 맞게 알아서 등록



# 정해진 복사본 수량만 남기고 전부 삭제 / 백업 복사본이 여러 파티션에 저장되어 있어도 설정한 값의 복사본 수량만 남기고 전부 삭제 됨

백업 복사본이 과하게 저장된 서버의 경우 아래 명령어 실행

CMD

WBADMIN DELETE BACKUP -keepVersions:30




# 기타

vssadmin 의 delete 명령어를 이용해서 백업 복사본 리스트 삭제 가능한데, 아래와 같이 오류 메시지 출력하면서 안되는 경우가 있다. 

vssadmin delete shadows /for=H: /Oldest


 


이렇게 되면 

DiskShadow 툴을 이용해서 백업 복사본 삭제를 해야 하는데, 이 프로그램으로 삭제 진행하면 백업 복사본 리스트에 등록 된 항목은 삭제되지 않는다. 

삭제 된 백업 복사본이 사용한 만큼의 디스크 공간은 확보가 되는데, 리스트에는 삭제 된 백업 복사본 항목이 호출 된다. 

CMD

diskshadow

delete shadows oldest H:


스케쥴러에 등록해서 사용시에는 아래와 같이 한다.

1) 스크립트 파일 생성

oldest_vss_del.txt

delete shadows oldest H:


2) 작업 스케쥴러 등록

diskshadow.exe -s h:\oldest_vss_del.txt


카탈로그 전체를 날릴게 아니라면 그냥 이런 방식이라도 사용해야 한다. 

파워쉘로 가능할 것 같은데........테스트 후 추가 해야 할 것 같다.