백업 파일 복원과 3241 오류 (Microsoft® SQL Server® Backup to Microsoft Azure®Tool 사용)
· Version : SQL Server 2008R2, Azure VM
온프레미스 환경의 SQL Server 2008R2에서 Microsoft® SQL Server® Backup to Microsoft Azure®Tool을 사용하여 데이터베이스를 백업하고 Azure VM(동일한 2008R2 빌드 버전)에서 복원을 시도하였으나 아래와 같은 오류가 발생 하였다.
Msg 3241, Level 16, State 0, Line 4 |
SQL Server 2012 버전 이상은 Azure blob 저장소로 백업하고 복원할 수 있는 기능이 내장되어 있기 때문에 Microsoft® SQL Server® Backup to Microsoft Azure®Tool은 SQL 2008 R2 이하 버전에서만 사용해야 한다.
Microsoft SQL Azure Tool to Microsoft Azure Tool서비스를 중지하고 복원하면 성공적으로 복원이 되었고, 서비스를 다시 시작하고 백업과 복원을 진행하면 오류가 발생하였다.
백업 도구는 기본적으로 SQL Server가 파일에 액세스하려고 할 때 구성한 특정 확장명의 파일을 감시하는 필터 드라이버이다.
1. SQL Server에서 백업을 수행하면 백업 도구가 파일을 Azure blob 저장소로 리다이렉션하고 로컬 컴퓨터에 작은 스텁 파일을 생성한다.
2. SQL Server가 복원을 수행하면 백업 도구는 Azure 블로그에서 동일한 파일에 액세스하여 SQL Server에 제공하려고 시도 한다.
즉, 사용자가 온프레미스 환경에서 백업 후(.bak) Azure VM으로 직접 복사하였을때, Azure blob 저장소에서는 해당 백업 파일이 없다. 이 백업 도구는 SQL Server에 콘텐츠를 제공하는 파일을 찾을 수 없으로 오류와 함께 복원이 실패하는 것이다.
이러한 문제를 해결한 방법은 전체 컴퓨터를 보지 않고 특정 경로로만 파일을 보도록 규칙을 구성하는 것이다. 기본적으로 로컬 시스템의 모든 경로가 검사된다. 하지만 여러 경로를 추가하여 시청할 수 있다. 이렇게 하면 원격 컴퓨터에서 복사한 백업 (백업 도구로 감시한 서버의 백업에 속하지 않음)을 다른 폴더에 저장하고 복원을 수행 하기만 하면 된다.
또 다른 방법은 다른 시스템에서 복사한 백업을 복원할 때 이 도구를 중지하는 것이다. 이러한 방법은 원격 컴퓨터에서 복사한 파일에 다른 파일 확장자를 사용하여도 복원을 할 수 있다.
[참고자료]
· https://blogs.msdn.microsoft.com/psssql/2017/04/12/unable-to-restore-a-backup-msg-3241/
· Microsoft® SQL Server® Backup to Microsoft Azure®Tool : https://www.microsoft.com/en-us/download/details.aspx?id=40740