다음을 통해 공유


Azure에 SQL Server 관리 백업 문제 해결

이 항목에서는 Microsoft Azure에 관리되는 백업을 SQL Server 동안 발생할 수 있는 오류를 해결하는 데 사용할 수 있는 작업 및 도구에 대해 설명합니다.

개요

SQL Server Microsoft Azure에 대한 Managed Backup은 검사 및 문제 해결을 기본 제공하므로 대부분의 경우 Microsoft Azure 프로세스에 Managed Backup을 SQL Server 내부 오류를 처리합니다.

이러한 경우 중 하나는 백업 파일을 삭제하여 복구 가능성에 영향을 주는 로그 체인의 중단을 초래하는 경우입니다. SQL Server Microsoft Azure에 대한 관리되는 백업은 로그 체인의 중단을 식별하고 백업을 즉시 수행하도록 예약합니다. 그러나 상태를 모니터링하여 수동 작업이 필요한 오류를 해결하는 것이 좋습니다.

Microsoft Azure에 Managed Backup을 SQL Server 시스템 저장 프로시저, 시스템 뷰 및 확장 이벤트를 사용하여 이벤트 및 오류를 기록합니다. 시스템 뷰 및 저장 프로시저는 Microsoft Azure에 대한 SQL Server 관리되는 백업 구성 정보, 백업 예약된 백업 상태 및 확장 이벤트에서 캡처한 오류를 제공합니다. Microsoft Azure에 대한 SQL Server 관리되는 백업은 확장 이벤트를 사용하여 문제 해결에 사용할 오류를 캡처합니다. 이벤트 기록 외에도 SQL Server 스마트 관리 정책은 오류 및 문제 또는 알림을 제공하는 전자 메일 알림 작업에 사용되는 상태를 제공합니다. 자세한 내용은 Azure에 SQL Server 관리되는 백업 모니터링을 참조하세요.

SQL Server Microsoft Azure에 대한 관리되는 백업은 Azure Storage에 수동으로 백업할 때 사용되는 것과 동일한 로깅도 사용합니다(URL에 백업 SQL Server). URL에 백업 관련 문제에 대한 자세한 내용은 URL에 백업 모범 사례 및 문제 해결 SQL Server 문제 해결 섹션을 참조하세요.

일반 문제 해결 단계

  1. 오류 및 경고에 대한 전자 메일을 수신하도록 전자 메일 알림을 설정하십시오.

    또는 주기적으로 smart_admin.fn_get_health_status를 실행하여 집계된 오류 및 개수를 확인할 수도 있습니다. 예를 들어 number_of_invalid_credential_errors는 스마트 백업에서 백업을 시도했지만 잘못된 자격 증명 오류가 발생한 횟수입니다. Number_of_backup_loopsnumber_of_retention_loops는 오류가 아니지만 백업 스레드와 보존 스레드가 데이터베이스 목록을 검색한 횟수를 나타냅니다. 일반적으로 및 @end_time 가 제공되지 않은 경우 @begin_time 함수는 지난 30분 동안의 정보를 표시합니다. 그러면 일반적으로 이러한 두 열에 대해 0이 아닌 값이 표시됩니다. 두 열의 값이 0이면 오버로드된 시스템이나 응답하지 않는 시스템을 의미합니다. 자세한 내용은 이 항목의 뒷부분에 있는 시스템 문제 해결 섹션을 참조하세요.

  2. 오류 및 기타 관련 이벤트에 대한 자세한 내용을 보려면 확장 이벤트 로그를 검토하십시오.

  3. 문제를 해결하려면 로그의 정보를 사용하십시오. 시스템 문제 또는 오류의 경우 서비스나 SQL Server 에이전트를 다시 시작해야 할 수 있습니다.

오류의 일반적인 원인

다음은 오류를 일으키는 일반적인 원인 목록입니다.

  1. SQL 자격 증명 변경 내용: Microsoft Azure에 대한 SQL Server Managed Backup에서 사용하는 자격 증명의 이름이 변경되거나 삭제된 경우 Microsoft Azure에 대한 관리되는 백업을 SQL Server 백업을 수행할 수 없습니다. 변경 내용은 Microsoft Azure 구성 설정에 대한 관리되는 백업을 SQL Server 적용해야 합니다.

  2. 스토리지 액세스 키 값 변경: Azure 계정에 대한 스토리지 키 값이 변경되었지만 SQL 자격 증명이 새 값으로 업데이트되지 않으면 스토리지에 인증할 때 Microsoft Azure에 대한 관리되는 백업이 실패하고 이 계정을 사용하도록 구성된 데이터베이스를 백업하지 못하는 SQL Server.

  3. Azure Storage 계정 변경 내용: SQL 자격 증명을 변경하지 않고 스토리지 계정을 삭제하거나 이름을 변경하면 Microsoft Azure에 SQL Server Managed Backup이 실패하고 백업이 수행되지 않습니다. 스토리지 계정을 삭제한 경우에는 데이터베이스가 올바른 스토리지 계정 정보로 다시 구성되었는지 확인하십시오. 스토리지 계정의 이름이 바뀌거나 키 값이 변경된 경우 이러한 변경 내용이 Microsoft Azure에 관리되는 백업을 SQL Server 사용하는 SQL 자격 증명에 반영되었는지 확인합니다.

  4. 데이터베이스 속성 변경 내용: 복구 모델을 변경하거나 이름을 변경하면 백업이 실패할 수 있습니다.

  5. 복구 모델에 대한 변경 내용: 데이터베이스의 복구 모델이 전체 또는 대량 로그에서 단순으로 변경되면 백업이 중지되고 Microsoft Azure에 Managed Backup을 SQL Server 데이터베이스를 건너뜁니다. 자세한 내용은 Azure에 대한 관리되는 백업 SQL Server: 상호 운용성 및 공존을 참조하세요.

가장 일반적인 오류 메시지 및 해결 방법

  1. Microsoft Azure에 SQL Server Managed Backup을 사용하거나 구성할 때 발생하는 오류:

    오류: "스토리지 URL에 액세스하지 못했습니다.... 유효한 SQL 자격 증명을 제공합니다..." : SQL 자격 증명을 참조하는 이 오류 및 기타 유사한 오류가 표시될 수 있습니다. 이러한 경우 제공한 SQL 자격 증명의 이름과 SQL 자격 증명에 저장된 정보(스토리지 계정 이름 및 스토리지 액세스 키)를 검토하고 현재 및 유효한지 확인합니다.

    오류: "... 데이터베이스를 구성할 수 없습니다. 시스템 데이터베이스이므로": 시스템 데이터베이스에 대해 Microsoft Azure에 SQL Server Managed Backup을 사용하도록 설정하려고 하면 이 오류가 표시됩니다. SQL Server Microsoft Azure에 대한 관리되는 백업은 시스템 데이터베이스에 대한 백업을 지원하지 않습니다. 시스템 데이터베이스에 대한 백업을 구성하려면 유지 관리 계획 등 다른 SQL Server 백업 기술을 사용하십시오.

    오류:" ... 보존 기간을 제공합니다...." : 데이터베이스에 대한 보존 기간을 지정하지 않았거나 이러한 값을 처음으로 구성할 때 instance 보존 기간에 대한 오류가 표시될 수 있습니다. 1-30 이외의 값을 지정한 경우에도 오류가 발생할 수 있습니다. 보존 기간에 대해 허용된 값은 1-30의 숫자입니다.

  2. 전자 메일 알림 오류

    오류: "데이터베이스 메일 사용할 수 없습니다..." - 전자 메일 알림을 사용하도록 설정했지만 데이터베이스 메일 instance 구성되지 않은 경우 이 오류가 표시됩니다. Microsoft Azure에 대한 SQL Server Managed Backup의 상태 상태 알림을 받을 수 있도록 instance 데이터베이스 메일 구성해야 합니다. 데이터베이스 메일을 사용하도록 설정하는 방법에 대한 자세한 내용은 데이터베이스 메일 구성을 참조하세요. 또한 알림에 데이터베이스 메일을 사용하도록 SQL Server 에이전트를 설정해야 합니다. 자세한 내용은 시작하기 전에를 참조하세요.

    다음은 전자 메일 알림과 관련하여 표시될 수 있는 오류 번호의 목록입니다.

    • ErrorNumber: 45209

    • ErrorNumber: 45210

    • ErrorNumber: 45211

  3. 연결 오류:

    • SQL 연결과 관련된 오류: 이러한 오류는 SQL Server instance 연결하는 데 문제가 있을 때 발생합니다. 확장 이벤트는 관리 채널을 통해 이러한 유형의 오류를 노출합니다. 다음은 이러한 유형의 연결 문제와 관련된 오류에 대해 표시될 수 있는 두 가지 확장 이벤트입니다.

      event_type = SqlError인 FileRetentionAdminXEvent. 이 오류에 대한 자세한 내용은 해당 이벤트의 error_code, error_message 및 stack_trace를 참조하십시오. error_code SqlException의 오류 번호입니다.

      다음 메시지/메시지 접두사가 포함된 SmartBackupAdminXevent:

      "instance 대한 Azure 기본 설정으로 SQL Server Managed Backup을 구성하는 동안 내부 오류가 발생했습니다. 일시적인 오류일 수 있습니다."

      "SQL Server에서 연결 문제가 발생한 것 같습니다. 현재 반복에서 데이터베이스를 건너뜁니다."

      "로그 사용 정보를 쿼리하지 못했습니다. 일시적인 실패일 수 있습니다. 현재 반복에서 데이터베이스를 건너뜁니다."

      "SSMBackup2WA 에이전트 메타데이터를 로드하는 동안 SQL 예외가 발생했습니다. 일시적인 실패일 수 있습니다. 작업을 다시 시도합니다."

      "SSMBackup2WA에서 동안 SQL 예외가 발생했습니다. "

    • 저장소 계정 연결 오류:

      event_type = XstoreError인 FileRetentionAdminXEvent에서 스토리지 예외가 보고됩니다. 이 오류에 대한 자세한 내용은 해당 이벤트의 error_message 및 stack_trace를 참조하십시오.

      SQL Server 관리되는 백업이 URL에 대한 백업 기술을 기반으로 하므로 스토리지 연결과 관련된 오류는 두 기능에 모두 적용됩니다. 문제 해결 단계에 대한 자세한 내용은 URL에 백업 모범 사례 및 문제 해결 문서의 SQL Server 문제 해결섹션을 참조하세요.

시스템 문제 해결

다음은 시스템(SQL Server, SQL Server 에이전트)에 문제가 있고 Microsoft Azure에 SQL Server Managed Backup에 미치는 영향이 있는 경우의 몇 가지 시나리오입니다.

  • Sqlservr.exe Microsoft Azure에 SQL Server 대한 관리되는 백업이 실행 중일 때 응답을 중지하거나 작동을 중지합니다. SQL Server 작동이 중지되면 SQL 에이전트가 정상적으로 종료되고 Microsoft Azure에 SQL Server 대한 관리되는 백업도 중지되고 이벤트가 SQL Agent.out 파일에 기록됩니다.

    SQL Server가 응답하지 않는 경우 이벤트가 관리 채널에 기록됩니다. 이벤트 로그의 예:

    Sql 오류(엔진이 응답하지 않거나 sqlException을 가져옵니다. SqlException:
    오류 코드, 메시지 및 스택 추적이 다음과 같은 추가 정보와 함께 관리 채널 xevent에 표시됩니다.
    "SQL Server에서 연결 문제가 발생한 것 같습니다. 현재 반복에서 데이터베이스를 건너뜁니다."

  • Microsoft Azure에 SQL Server 관리되는 백업이 실행 중일 때 SQL 에이전트가 응답을 중지하거나 작동을 중지합니다.

    SQL 에이전트의 작동이 중지되면 Microsoft Azure에 대한 관리되는 백업 SQL Server 중지되고 이벤트가 관리 채널에 기록됩니다. 이는 SQL Server가 응답하지 않는 시나리오와 유사합니다.

    SQL 에이전트가 응답을 중지하면 Microsoft Azure에 대한 SQL Server 관리되는 백업은 백업 작업을 계속할 수 없으며 이벤트는 관리 채널에 기록됩니다. 이벤트 로그의 예:

    작업 중단: 관리자 채널 xevents 참조
    데이터베이스 백업에 대한 "+ Constants.DBBackupInfoMsgMaxWaitTime + " 시간 이상의 SQL Server 진행률 업데이트를 받지 못했습니다. SSM 클라우드 백업이 계속 대기합니다."

전자 메일 알림을 사용하도록 설정한 경우 백업 루프 수보존 루프 수가 포함된 알림을 받게 됩니다. 이러한 두 열 중 하나나 둘 다에 대해 알림에서 반환되는 값이 0인 경우 시스템이 응답하지 않음을 나타낼 수도 있습니다.

경고

보고서에 대한 결과를 생성하는 내부 프로세스에서는 엔진 진단 로그가 SQL 에이전트 오류 로그와 동일한 위치에 있는 것으로 가정합니다. 이 로그는 기본적으로 SQL Server 인스턴스의 오류 로그와 같은 폴더에 있습니다. 엔진 진단 로그가 SQL 에이전트 오류 로그 위치가 아닌 위치로 이동하는 경우 시스템에서 스마트 백업 진단 로그를 찾을 수 없으므로 전자 메일 알림의 보고서가 올바르지 않을 수 있습니다. 예를 들어 백업 루프 수 및 보존 루프 수를 비롯한 모든 필드에 0 값이 보고될 수도 있습니다. 진단 로그를 다른 위치로 이동하는 이 경우에 시스템이 응답하지 않는 것이 아니라 시스템에서 진단 로그를 찾지 못하는 것일 수 있습니다. 먼저 진단 로그와 SQL 에이전트 오류 로그가 동일한 위치에 있는지 확인하십시오. 진단 로그의 현재 위치를 확인하려면 sys.dm_os_server_diagnostics_log_configurations 사용할 수 있습니다. 열은 path 엔진 진단 로그의 현재 위치를 반환합니다. SQL 에이전트 오류 로그와 동일한 폴더에 있어야 합니다. dbo.sp_get_sqlagent_properties 저장 프로시저를 사용하여 SQL 에이전트 오류 로그 경로를 가져올 수 있습니다.

오류의 세부 정보를 보려면 확장 이벤트 로그를 확인하십시오. 오류를 수정하거나 SQL Server 에이전트를 다시 시작하여 상황을 해결하십시오.