%EA%B0%80%20%EB%82%98%ED%83%80%EB%82%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
프로덕션 데이터베이스 서버는 BACKUP TO URL
SQL Server 2014 Standard의 명령을 사용하여 야간에 Azure Blob Storage에 데이터베이스를 백업하고 있습니다. 이제 Azure에 설정한 새 SQL Server VM(역시 SQL Server 2014 Standard를 실행 중)으로 해당 백업을 복원하려고 합니다. 다음 SQL 명령을 실행하고 있습니다.
RESTORE DATABASE Example FROM URL = 'https://exampleaccount.blob.core.windows.net/livedbbackups/ExampleBackup-2015-10-15T01-13-08.bak';
WITH CREDENTIAL = 'AzureBackupCredential',
MOVE 'Example' TO 'C:\Databases\Example.mdf',
MOVE 'Example_log' TO 'C:\Databases\Example.ldf',
STATS = 5;
이 작업을 수행하면 복원이 10분 이상 실행되고 SQL Server Management Studio의 "메시지" 창에서 진행 상황을 볼 수 있습니다. 그런데 100% 완료 직전에 아래와 같은 오류 메시지가 출력됩니다.
Windows NT 6.3(빌드 9600: )(하이퍼바이저)에서 Microsoft SQL Server 2014 - 12.0.4213.0(X64) Standard Edition(64비트)을 실행하는 Azure VM의 출력:
85 percent processed.
90 percent processed.
95 percent processed.
Msg 3013, Level 16, State 1, Line 5
RESTORE DATABASE is terminating abnormally.
"SQL Server 오류 3013" 또는 "SQL Server 복원 데이터베이스가 비정상적으로 종료됨"에 대해 인터넷 검색을 하면 내 데이터베이스 파일이 손상되었음을 나타내는 많은 페이지가 생성됩니다. 하지만 그렇지는 않을 것 같아요. 왜냐하면 나는 달릴 수 있으니까요.똑같은 SQLSQL Server 2014 Express를 실행하는 랩톱에서 다음과 같은 출력을 얻습니다.
Windows NT 6.3(빌드 10240: )(하이퍼바이저)에서 Microsoft SQL Server 2014 - 12.0.2269.0(X64) Express Edition(64비트)을 실행하는 노트북의 출력:
85 percent processed.
90 percent processed.
95 percent processed.
100 percent processed.
Processed 233600 pages for database 'Example', file 'Example' on file 1.
Processed 5 pages for database 'Example', file 'Example_log' on file 1.
RESTORE DATABASE successfully processed 233605 pages in 205.802 seconds (8.867 MB/sec).
이 두 복원 문은 모두 변경되지 않은 동일한 백업 파일을 사용하여 정확히 동일한 URL에 대해 실행되었습니다. SQL Server Express의 로컬 복사본에서 올바르게 복원되면 손상될 수 없습니다. 그렇죠?
제가 배제하려고 노력한 다른 가능한 원인은 다음과 같습니다.
- 버전 불일치- Microsoft SQL Server 2014 - 12.0.2269.0(X64) Standard Edition(64비트)을 실행하는 서버에서 백업이 실행되었습니다. 복원은 Microsoft SQL Server 2014 - 12.0.4213.0(X64) Standard Edition(64비트)을 실행하는 서버에서 실행되었습니다. 이러한 버전 번호는
SELECT @@VERSION
각 서버에서 실행되어 결정되었습니다 . - 권한 오류- 둘 다 데이터베이스를 복원하지 않는 Azure VM에서 올바르게 작동합니다
RESTORE HEADERONLY
.RESTORE FILELISTONLY
- 자유 공간- Azure VM의 C: 드라이브에 80GB 이상의 여유 공간이 있습니다.
- 네트워크 연결- 광범위한 테스트를 해본 적은 없지만 SQL Server를 실행하는 VM이 Azure 내부에서 실행되고 있고 백업 파일도 Azure에 있다는 점을 고려하면 꽤 안정적이라고 생각합니다. 브라우저를 통한 파일 다운로드 및 간단한 테스트를 통해 연결이 안정적이고 빠른 것으로 나타났습니다.
문제의 데이터베이스는 복원 시 약 2GB이며 로그 파일은 5GB입니다. Azure에 동일한 데이터베이스의 다른 백업이 저장되어 있고 그 중 하나를 복원하려고 하면 동일한 결과가 나타납니다(로컬 SQL Server Express 2014에서 작동하고 Azure VM SQL Server Standard 2014에서는 실패함).
이 문제의 원인과 해결 방법에 대한 아이디어가 있습니까?
답변1
이 스레드는 약간 오래되었지만 오늘도 같은 문제에 직면했습니다. 얼마 전에 Blob Storage에서 복원을 수행했는데 모든 것이 제대로 작동했습니다. 일주일 후 동일한 복원에서 "RESTORE DATABASE TERMINATED ABNORMALLY" 오류가 반환되었습니다. 그래서 백업 파일을 다른 컨테이너로 옮겼더니 제대로 작동했습니다.
이 해결 방법이 다른 사람에게 도움이 되기를 바랍니다.