오류 3313, 3314, 3414 또는 3456 문제 해결(SQL Server)

SQL Server 데이터베이스에서 다시 실행, 실행 취소 또는 복구 작업 중 오류가 발생하면 데이터베이스가 SUSPECT 상태로 됩니다. 이러한 오류에는 3313(로그 다시 실행 오류), 3314(로그 실행 취소 오류), 3414(데이터베이스가 다시 시작되지 않도록 하는 복구 오류) 및 3456(기록된 트랜잭션의 다시 실행 오류) 오류가 포함됩니다.

설명

주 파일 그룹과 가능한 다른 파일 그룹도 주의 대상이며 손상될 수 있으므로 다시 실행, 실행 취소 또는 복구 오류가 발생하면 데이터베이스가 SUSPECT 상태로 됩니다. 이 경우 데이터베이스를 사용할 수 없으므로 문제를 해결하기 위한 사용자 동작이 필요합니다.

[!참고]

tempdb에 대해 이 오류가 발생하면 SQL Server 인스턴스가 종료됩니다.

사용자 동작

다시 실행, 실행 취소 또는 복구 오류는 일시적인 상태나 데이터베이스를 시작하려고 할 때마다 발생하는 영구적인 문제에 의해 발생할 수 있습니다.

3313, 3314, 3414 또는 3456 오류가 발생하는 원인에 대한 자세한 내용을 보려면 Windows 이벤트 로그에서 특정 문제를 나타내는 이전 오류를 확인하십시오. 적절한 사용자 동작은 SQL Server 오류가 일시적인 상태에 의해 발생했는지 영구적인 문제에 의해 발생했는지를 나타내는 Windows 이벤트 로그의 정보에 따라 달라집니다.

[!참고]

이러한 오류 상태가 발생하면 SQL Server에서는 일반적으로 SQL ServerLOG 폴더에 세 개의 파일을 생성합니다. SQLDumpnnnn.txt 파일에는 트랜잭션에 대한 세부 정보와 문제가 발생한 페이지를 비롯하여 오류와 관련된 고급 진단 정보가 포함됩니다. 이 정보는 일반적으로 제품 지원 팀에서 오류 원인을 분석하는 데 사용됩니다.

일시적인 상태의 경우:

  1. 다음 ALTER DATABASETransact-SQL 문을 실행하여 데이터베이스를 온라인 상태로 설정해 봅니다.

    ALTER DATABASE <database name> SET ONLINE;
    
  2. 복구가 제대로 완료되었으며 데이터베이스가 온라인 상태로 설정되었는지 확인하려면 SQL Server 오류 로그sys.databases 카탈로그 뷰를 확인합니다.

  3. 데이터베이스가 온라인 상태이면 DBCC CHECKDBTransact-SQL 문을 실행하여 데이터베이스의 일관성을 확인합니다.

영구적인 문제의 경우:

SQL Server 오류 로그에서 문제를 해결 중인 오류(3313, 3314, 3414 또는 3356)를 찾고 앞의 메시지를 검토하여 이 오류를 수동으로 해결할 수 있는지 확인합니다. 이전 오류를 해결할 수 있는 경우 다음 절차 중 하나를 수행합니다.

  • 다음과 같이 데이터베이스를 복원 및 확인합니다(권장 절차).

    1. 비상 로그 백업을 수행합니다.

    2. RESTORE …WITH NORECOVERY Transact-SQL 문을 사용하여 전체 데이터베이스 백업에서 데이터베이스를 복원하고 필요한 경우 차등 데이터베이스 백업에서도 데이터베이스를 복원합니다.

    3. 전체 복구 모델을 사용하는 데이터베이스의 경우 RESTORE LOG … WITH NORECOVERY를 사용하여 오류 지점까지 전체 또는 차등 백업을 복원한 이후에 발생한 모든 트랜잭션 로그 백업을 적용합니다.

    4. 데이터베이스가 오류 지점에 최대한 가깝게 복원되었으면 RESTORE DATABASE <database_name> WITH RECOVERY를 사용하여 데이터베이스를 복구합니다.

    5. 데이터베이스가 온라인 상태가 되면 DBCC CHECKDBTransact-SQL 문을 실행하여 데이터베이스의 일관성을 확인합니다.

  • 이 섹션 앞부분에서 일시적인 오류의 경우에 대해 설명한 단계를 통해 데이터베이스를 온라인으로 설정합니다.

  • 다음과 같이 응급 모드를 사용합니다.

    1. 다음 ALTER DATABASETransact-SQL 문을 실행하여 데이터베이스를 EMERGENCY 상태로 전환합니다.

      ALTER DATABASE <database_name> SET EMERGENCY; 
      
    2. ALTER DATABASE 문과 SQL Server 오류 로그의 출력을 검토합니다.

    3. sys.databases 카탈로그 뷰에서 데이터베이스의 상태를 확인합니다.

    4. DBCC CHECKDB 문을 사용해 데이터베이스에 대해 일관성 검사를 수행하여 손상의 특성과 범위를 파악합니다.

    5. DBCC CHECKDB의 출력을 평가한 후에 REPAIR_ALLOW_DATA_LOSS 옵션으로 DBCC CHECKDB를 실행할 수 있습니다.

      주의 사항주의

      이 옵션을 사용하기 전에 SQL Server 온라인 설명서의 DBCC CHECKDB(Transact-SQL) 항목에서 데이터베이스 응급 모드의 오류를 해결하는 방법에 대한 정보를 주의 깊게 검토하십시오.

[!참고]

오류 3313, 3314, 3414 또는 3356과 관련된 하드웨어 문제에 대한 대처 방법은 MSSQLSERVER_824를 참조하십시오.

이 오류를 방지하기 위한 단계

이러한 상황이 다시 발생하지 않도록 하려면 다음을 수행합니다.

  1. SQL Server 오류 로그 및 Windows 이벤트 로그에서 이 오류의 원인일 수 있는 시스템 차원 문제를 검토합니다.

  2. 제품에서 이 상태를 유발하는 것으로 알려진 문제가 발생하지 않도록 현재 보유한 SQL Server 버전의 최신 누적 업데이트를 적용합니다.