다음을 통해 공유


MSSQLSERVER_912

적용 대상: SQL Server 2019(15.x) 이상 - Windows만 해당

세부 사항

attribute
제품 이름 SQL Server
이벤트 ID 912
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 DB_RUNSCRIPTUPGRADE_STEP_FAILED
메시지 텍스트 업그레이드 단계 '%.*ls'에 %d, 상태 %d, 심각도 %d 오류가 발생하여 데이터베이스 '%.*ls'에 대한 스크립트 수준 업그레이드가 실패했습니다. 이는 정기적인 작업을 방해할 수 있는 심각한 오류 조건이며 데이터베이스가 오프라인으로 전환됩니다. 'master' 데이터베이스를 업그레이드하는 동안 오류가 발생하면 전체 SQL Server 인스턴스가 시작되지 않습니다. 이전 오류 로그 항목에서 오류를 검사하고, 적절한 조치를 취한 후 데이터베이스를 다시 시작하여 스크립트 업그레이드 단계를 완료하세요.

설명

오류 912는 데이터베이스 스크립트가 실행되지 않았고 데이터베이스를 서버에 필요한 최신 수준으로 업그레이드하지 못했음을 나타냅니다. 실패한 업그레이드 스크립트에 대한 참조와 실패한 스크립트에 발생한 오류가 포함된 일반적인 오류 메시지입니다.

SQL Server가 업그레이드되거나 누적 업데이트가 적용되면 처음에는 이진 파일만 업그레이드됩니다. 데이터베이스와 해당 개체는 수정되지 않은 상태로 유지됩니다. 이진 파일이 새 버전으로 대체되고 서비스가 처음으로 다시 시작되면 데이터베이스 업그레이드가 시작됩니다. 실행할 업그레이드 스크립트는 C:\Program Files\Microsoft SQL Server\MSSQLXX.YYYY\MSSQL\Install 아래에 있습니다.

업그레이드 프로세스에서 스크립트 수준 업그레이드 오류(오류 912)가 발생하면 다른 오류가 발생할 수 있습니다. 예를 들어 이러한 오류는 오류 912와 함께 제공되어 오류를 자세히 설명하는 데 도움이 될 수 있습니다.

Error: 1101, Severity: 17, State: 1.
Could not allocate a new page for database 'tempdb' because of insufficient disk space in filegroup 'PRIMARY'. Create the necessary space by dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'xxx.sql' encountered error <Error Number>, state <Error State>, severity <Error Severity>. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.

Error: 3417, Severity: 21, State: 3.
Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.

일반적으로 설치 프로세스가 실패하면 마법사를 사용하여 설치가 수동으로 수행된 경우 GUI에서 다음 오류가 표시 될 수 있습니다. 이 오류는 다양한 설치 문제로 발생할 수 있습니다. 그러나 모든 경우에 SQL Server 오류 로그에서 자세한 내용을 확인하도록 지시합니다.

Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.

upgrade failure in the GUI

사용자 작업

문제의 원인을 찾으려면 다음 단계를 수행합니다.

  1. SQL Server Errorlog를 찾아 엽니다.
  2. 오류 912 직전에 발생한 오류에 대한 로그를 검사하고 오류 912 메시지에서 참조된 오류 문제를 해결하는 데 집중합니다.
  3. Microsoft 고객이 보고 한 몇 가지 일반적인 시나리오의 경우 "데이터베이스 엔진 복구 핸들 대기 실패" 및 "912" 및 "3417" 오류
  4. 경우에 따라 프로세스의 일부로 추적 플래그 902사용하여 SQL Server 서비스를 시작해야 할 수 있습니다(아래 단계 참조). T902로 서비스를 시작하면 서비스가 시작 중에 업그레이드 스크립트 실행을 건너뛸 수 있습니다. 이렇게 하면 기본 문제를 조사하고 해결할 수 있습니다.
  5. 설치 프로세스가 업그레이드 스크립트 실행 단계를 다시 시작할 수 있도록 문제를 해결한 후 추적 플래그를 제거해야 합니다.

추적 플래그 902를 사용하여 SQL Server를 시작하는 단계

Configuration Manager 사용

  1. SQL Server 구성 관리자를 시작합니다.
  2. SQL Server 서비스에서 SQL Server 인스턴스 선택합니다.
  3. 인스턴스를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다.
  4. 시작 매개 변수 탭을 선택합니다.
  5. 시작 매개 변수 지정 필드를 사용하여 추적 플래그를 추가합니다. "-T902"(따옴표 없이)를 입력하고 추가를 클릭합니다.
  6. 확인을 선택하고 인스턴스 속성을 닫습니다.
  7. SQL Server 서비스를 시작합니다.

시작 옵션을 구성하는 방법에 대한 자세한 내용은 SQL Configuration Manager 서비스 - 서버 시작 옵션 구성을 참조 하세요.

참고 항목

문제를 해결한 후에는 구성에서 -T902를 제거해야 합니다.

sqlservr.exe를 사용하는 명령 프롬프트

  1. 관리자 권한으로 명령 프롬프트를 열고 디렉터리를 SQL Server Binn 디렉터리로 변경합니다(예: C:\Program Files\Microsoft SQL Server\MSSQLXX.YYYY\MSSQL\Binn).

  2. 다음을 실행합니다. sqlservr.exe -s <instance> -T902

    기본 인스턴스:

    cd \Program Files\Microsoft SQL Server\MSSQL<version>\MSSQL\Binn
    sqlservr.exe -s MSSQLSERVER  -T902
    

    명명된 인스턴스입니다. 여기서 "sql2016"은 인스턴스 이름의 예입니다.

    cd \Program Files\Microsoft SQL Server\MSSQL<version>.<instance name>\MSSQL\Binn
    sqlservr.exe -s sql2016  -T902
    
  3. 완료 시 인스턴스를 중지하려면 CTRL+CY를 차례로 누릅니다.

net start를 사용하는 명령 프롬프트

기본 인스턴스:

NET START MSSQLSERVER /T902 

명명된 인스턴스:

NET START MSSQL$INSTANCENAME  /T902