2007~2011/Windows Platform2010. 1. 21. 13:47
일반적으로 사용 중인 파일은 공유 위반으로 인해 삭제가 되지 않습니다. 간혹 특정 파일 삭제를 시도하였으나 사용 중으로 삭제가 되지 않는 경우가 있습니다. 이 때, 어떤 프로세스에 의해서 사용 중인지 모를 때가 있죠.

앞서 블로그에 소개했던 Unlocker 툴을 사용해서 사용 중인 프로세스를 확인하고 Lock 을 해제할 수 있는 방법이 있습니다만 설치를 해야 하는 부담이 있습니다. 그래서..... 보다 간단한 방법을 소개하고자 합니다.

자, Process Explorer 로 사용 중인 파일의 프로세스를 확인하는 방법에 대해서 아래와 같이 정리하였습니다.


[시나리오]
SQL Server 서비스를 시작하고 사용자 데이터베이스 LAIGO 의 데이터 파일 LAIGO.MDF 를 강제 삭제 시도해 봅니다.
파일 삭제를 시도할 경우 Windows Server 2003에서는 아래와 같은 오류가 발생합니다.

'laigo 항목을 삭제할 수 없습니다. 다른 사람이나 다른 프로그램에서 사용하고 있습니다.
사용 중인 파일을 닫고 다시 시도하십시오.'




[확인방법]
1. 관리자 권한으로 Process Explorer 를 실행합니다. 관리자 권한이 아닐 경우 Handle 정보가 나타나지 않을 수 있습니다.
2. 메뉴 Find - File Handle or DLL... (Ctrl + F) 를 선택합니다.
3. 아래 그림과 같이 'Handle or DLL substring' 값에 삭제 실패한 파일명을 입력하면 Process name과 PID 가 나타납니다.



간단하네요. Process Monitor 로 확인 가능한지 테스트 하였습니다만 삭제 시도 시 결과값으로 Access Denied, Sharing Violation 메시지를 얻을 수 있었지만 사용 중인 프로세스 이름을 얻진 못했습니다.

Windows 7 경우에는 LAIGO.MDF 파일을 삭제할 경우 아래와 같이 어떤 서비스에서 사용하고 있는지 친절히 알려주므로 위의 방법을 시도할 필요가 없겠습니다.




[참고자료]
Unlocker 보호된 파일 강제 삭제
http://laigo.kr/31

Process Explorer 다운로드 및 심볼 설정
http://laigo.kr/21


작성자 : Lai Go / 작성일자 : 2010.01.21
Posted by Lai Go