Always On 가용성 그룹이 있는 Reporting Services(SQL Server)
적용 대상: SQL Server
이 문서에서는 SQL Server에서 Always On 가용성 그룹(AG)과 함께 작동하도록 Reporting Services를 구성하는 방법에 대한 정보를 제공합니다. Reporting Services 및 Always On 가용성 그룹 사용의 세 가지 시나리오는 보고서 데이터 원본 데이터베이스, 보고서 서버 데이터베이스, 보고서 디자인입니다. 세 가지 시나리오에서 지원되는 기능과 필요한 구성은 서로 다릅니다.
Reporting Services 데이터 원본에 Always On 가용성 그룹을 사용할 경우의 중요한 이점 중 하나는 읽기 가능한 보조 복제본을 보고 데이터 원본으로 사용하는 것과 동시에 보조 복제본이 주 데이터베이스에 대한 장애 조치(Failover) 기능을 제공할 수 있다는 점입니다.
Always On 가용성 그룹에 대한 일반적인 내용은 SQL Server 2012의 Always On FAQ(../../../sql-server/index.yml)를 참조하세요.
Reporting Services 및 Always On 가용성 그룹 사용을 위한 요구 사항
SQL Server Reporting Services 및 Power BI Report Server는 .NET Framework 4.0을 사용하며 데이터 원본과 함께 사용할 Always On 가용성 그룹 연결 문자열 속성을 지원합니다.
Reporting Services 2014 이전 버전과 함께 Always On 가용성 그룹을 사용하려면 .NET 3.5 SP1 핫픽스를 다운로드하고 설치해야 합니다. 핫픽스는 AG 기능에 대한 SQL 클라이언트 지원과 ApplicationIntent 및 MultiSubnetFailover 연결 문자열 속성 지원을 추가합니다. 보고서 서버를 호스팅하는 각 컴퓨터에 핫픽스가 설치되어 있지 않으면, 보고서를 미리 보려는 사용자에게 다음과 유사한 오류 메시지가 표시되고 오류 메시지가 보고서 서버 추적 로그에 기록됩니다.
오류 메시지: "키워드가 지원되는 'applicationintent'가 아닙니다."
이 메시지는 Reporting Services 연결 문자열에 Always On 가용성 그룹 속성 중 하나를 포함했지만 서버에서 이러한 속성이 인식되지 않는 경우에 발생합니다. 위에 언급한 오류 메시지는 Reporting Services 사용자 인터페이스에서 '연결 테스트' 단추를 선택할 때 그리고 원격 오류가 보고서 서버에 설정된 경우 보고서를 미리 볼 때 표시됩니다.
필요한 핫픽스에 대한 자세한 내용은 KB 2654347A – SQL Server 2012의 Always On 기능에 대한 지원을 .NET Framework 3.5 SP1에 도입하는 핫픽스를 참조하세요.
다른 Always On 가용성 그룹 요구 사항에 대한 자세한 내용은 Always On 가용성 그룹 사전 요구 사항, 제한 사항 및 권장 사항(SQL Server)을 참조하세요.
참고 항목
RSreportserver.config와 같은 Reporting Services 구성 파일은 Always On 가용성 그룹 기능의 일부로 지원되지 않습니다. 보고서 서버 중 하나에서 구성 파일을 수동으로 변경할 경우 복제본을 수동으로 업데이트해야 합니다.
보고서 데이터 원본 및 가용성 그룹
Always On 가용성 그룹을 기반으로 하는 Reporting Services 데이터 원본의 동작은 관리자가 AG 환경을 구성한 방법에 따라 다를 수 있습니다.
보고서 데이터 원본 연결 문자열을 구성하는 데 필요한 보고서 데이터 원본에 대해 Always On 가용성 그룹을 활용하려면 가용성 그룹 수신기 DNS 이름을 사용합니다. 지원되는 데이터 원본은 다음과 같습니다.
SQL Native Client를 사용하는 ODBC 데이터 원본입니다.
.NET 핫픽스가 보고서 서버에 적용된 SQL 클라이언트입니다.
연결 문자열 읽기 전용 보고에 보조 복제본을 사용하도록 보고서 쿼리 요청을 구성하는 새 Always On 연결 속성을 포함할 수도 있습니다. 요청을 보고하는 데 보조 복제본을 사용하면 읽기/쓰기 기본 복제본에 대한 부하가 줄어듭니다. 다음 그림은 Reporting Services 데이터 원본 연결 문자열이 ApplicationIntent=ReadOnly로 구성된 세 개의 복제본 AG 구성 예입니다. 이 예시에서 보고서 쿼리 요청은 기본 복제본이 아닌 보조 복제본에 전송됩니다.
다음은 [AvailabilityGroupListenerName]이 복제본을 만들 때 구성된 리스너 DNS 이름 인 연결 문자열의 예입니다.
Data Source=[AvailabilityGroupListenerName];Initial Catalog = AdventureWorks2022; ApplicationIntent=ReadOnly
Reporting Services 사용자 인터페이스에서 연결 테스트 단추는 연결을 설정할 수 있는지에 대한 유효성을 검사하지만 AG 구성의 유효성은 검사하지 않습니다. 예를 들어 AG에 속하지 않은 서버에 대한 연결 문자열에 ApplicationIntent를 포함하는 경우, 추가 매개 변수는 무시되고 연결 테스트 단추는 지정된 서버에 대한 연결을 설정할 수 있는지만 확인합니다.
보고서를 만들고 게시하는 방법에 따라 연결 문자열을 편집할 위치가 결정됩니다.
기본 모드: 기본 모드 보고서 서버에 이미 게시된 공유 데이터 원본 및 보고서에 웹 포털을 사용합니다.
SharePoint 모드: SharePoint 서버에 이미 게시된 보고서에 대한 문서 라이브러리 내에서 SharePoint 구성 페이지를 사용합니다.
보고서 디자인: 새 보고서를 만들 경우 보고서 작성기 또는 SSDT(SQL Server Data Tools)입니다. 이 문서의 '보고서 디자인' 섹션 또는 추가 정보를 참조하세요.
추가 리소스:
사용 가능한 연결 문자열 속성에 대한 자세한 내용은 SQL Server Native Client에서 연결 문자열 키워드 사용을 참조하세요.
가용성 그룹 수신기에 대한 자세한 내용은 가용성 그룹 수신기 만들기 또는 구성(SQL Server)을 참조하세요.
고려 사항: 일반적으로 보조 복제본에 기본 복제본의 데이터 변경 내용이 수신되는 데 지연이 발생합니다. 다음 요소는 주 복제본과 보조 복제본 간의 업데이트 대기 시간에 영향을 줄 수 있습니다.
보조 복제본 수. 구성에 보조 복제본이 추가될 때마다 지연이 증가합니다.
주 복제본과 보조 복제본 사이의 지리적 위치 및 거리. 예를 들어 보조 복제본이 기본 복제본과는 다른 데이터 센터에 있는 경우에는 동일한 건물에 있는 경우보다 일반적으로 지연이 더 큽니다.
각 복제본의 가용성 모드 구성. 가용성 모드는 보조 복제본이 트랜잭션을 디스크에 쓸 때까지 기본 복제본이 데이터베이스에서 트랜잭션을 커밋하기 위해 기다리는지 여부를 결정합니다. 자세한 내용은 Always On 가용성 그룹 개요(SQL Server)의 '가용성 모드' 섹션을 참조하세요.
읽기 전용 보조 복제본을 Reporting Services 데이터 원본으로 사용할 경우 데이터 업데이트 지연 시간이 보고서 사용자의 요구를 충족시킬 수 있는지 확인해야 합니다.
보고서 디자인 및 가용성 그룹
보고서 작성기에서 보고서를 디자인하거나 SQL Server에서 보고서 프로젝트를 디자인할 때 사용자는 Always On 가용성 그룹에서 제공되는 새로운 연결 속성을 포함하도록 보고서 데이터 원본 연결 문자열을 구성할 수 있습니다. 새 연결 속성에 대한 지원은 사용자가 보고서를 미리 보는 위치에 따라 달라집니다.
로컬 미리 보기: 보고서 작성기 및 SQL Server Data Tools(SSDT)는 .NET Framework 4.0을 사용하고 Always On 가용성 그룹 연결 문자열 속성을 지원합니다.
원격 또는 서버 모드 미리 보기: 보고서를 보고서 서버에 게시한 후 또는 보고서 작성기에서 미리 보기를 사용한 후 다음과 비슷한 오류가 표시되면 보고서를 미리 보려고 시도한 보고서 서버에 Always On 가용성 그룹에 대한 .NET Framework 3.5 SP1 핫픽스가 설치되지 않았기 때문입니다.
오류 메시지: "키워드가 지원되는 'applicationintent'가 아닙니다."
보고서 서버 데이터베이스 및 가용성 그룹
Reporting Services 및 Power BI Report Server는 보고서 서버 데이터베이스에 Always On 가용성 그룹을 사용하는 데 있어서 제한적인 지원을 제공합니다. 보고서 서버 데이터베이스를 AG에서 복제본의 일부로 구성할 수 있지만 장애 조치(Failover)가 발생했을 때 Reporting Services가 보고서 서버 데이터베이스에 다른 복제본을 자동으로 사용하지는 않습니다. MultiSubnetFailover를 보고서 서버 데이터베이스와 함께 사용하는 것은 지원되지 않습니다.
수작업 또는 사용자 지정 자동화 스크립트를 사용하여 장애 조치 및 복구를 완료해야 합니다. 이러한 작업을 완료할 때까지는 Always On 가용성 그룹 장애 조치(Failover) 후 보고서 서버의 일부 기능이 올바르게 작동하지 않을 수 있습니다.
참고 항목
보고서 서버 데이터베이스의 장애 조치(failover) 및 재해 복구를 계획할 때는 항상 보고서 서버 암호화 키의 복사본을 백업하는 것이 좋습니다.
SharePoint 기본 모드의 차이점
이 단원에서는 SharePoint 모드와 기본 모드의 보고서 서버가 Always On 가용성 그룹과 상호 작용하는 방법상의 차이점을 요약합니다.
SharePoint 보고서 서버는 사용자가 만드는 각 Reporting Services 서비스 애플리케이션에 대해 3개의 데이터베이스를 만듭니다. SharePoint 모드의 보고서 서버 데이터베이스에 대한 연결은 서비스 응용 프로그램을 만들 때 SharePoint 중앙 관리에서 구성됩니다. 데이터베이스의 기본 이름에는 서비스 응용 프로그램을 나타내는 GUID가 포함됩니다. 다음은 SharePoint 모드 보고서 서버에 대한 데이터베이스의 이름 예입니다.
ReportingService_85c08ac3c8e64d3cb400ad06ed5da5d6
ReportingService_85c08ac3c8e64d3cb400ad06ed5da5d6TempDB
ReportingService_85c08ac3c8e64d3cb400ad06ed5da5d6_Alerting
기본 모드 보고서 서버는 2 개의 데이터베이스를 사용합니다. 다음은 기본 모드 보고서 서버에 대한 데이터베이스의 이름 예입니다.
ReportServer
ReportServerTempDB
기본 모드에서는 경고 데이터베이스 및 관련 기능을 지원하거나 사용하지 않습니다. 기본 모드 보고서 서버는 Reporting Services 구성 관리자에서 구성합니다. SharePoint 모드의 경우 서비스 애플리케이션 데이터베이스 이름을 SharePoint 구성 중에 만든 "클라이언트 액세스 지점"의 이름으로 구성합니다. Always On 가용성 그룹에서 SharePoint 구성에 대한 자세한 내용은 SharePoint Server용 SQL Server 가용성 그룹 구성 및 관리(/previous-versions/office/sharepoint-server-2010/hh913923(v=office.14))를 참조하세요.
참고 항목
SharePoint 모드 보고서 서버는 Reporting Services 서비스 애플리케이션 데이터베이스와 SharePoint 콘텐츠 데이터베이스 사이의 동기화 프로세스를 사용합니다. 보고서 서버 데이터베이스와 콘텐츠 데이터베이스를 함께 유지 관리하는 것이 중요합니다. 하나의 세트로 장애 조치(failover) 및 복구되도록 동일한 가용성 그룹에 구성하는 것이 좋습니다. 다음 시나리오를 살펴 보십시오.
- 보고서 서버 데이터베이스가 수신한 것과 동일한 최근 업데이트가 아직 수신되지 않은 콘텐츠 데이터베이스의 복사본을 복원 또는 장애 조치(Failover)합니다.
- Reporting Services 동기화 프로세스에서 콘텐츠 데이터베이스 및 보고서 서버 데이터베이스에 있는 항목 목록 간에 불일치가 발견된 경우
- 동기화 프로세스로 콘텐츠 데이터베이스에 있는 항목이 삭제되거나 업데이트되는 경우
가용성 그룹의 보고서 서버 데이터베이스 준비
보고서 서버 데이터베이스를 준비하고 Always On 가용성 그룹에 추가하는 기본 단계는 다음과 같습니다.
가용성 그룹을 만들고 수신기 DNS 이름을 구성합니다.
기본 복제본: 단일 가용성 그룹에 포함할 보고서 서버 데이터베이스를 구성하고 보고서 서버 데이터베이스를 모두 포함하는 기본 복제본을 만듭니다.
보조 복제본: 하나 이상의 보조 복제본을 만듭니다. 기본 복제본의 데이터베이스를 보조 복제본으로 복사하는 일반적인 방법은 'RESTORE WITH NORECOVERY'를 사용하여 각 보조 복제본에 데이터베이스를 복원하는 것입니다. 보조 복제본을 만들고 데이터 동기화가 작동하는지 확인하는 방법은 Always On 보조 데이터베이스에서 데이터 이동 시작(SQL Server)을 참조하세요.
보고서 서버 자격 증명: 주 복제본에서 만든 보조 복제본에 적절한 보고서 서버 자격 증명을 만들어야 합니다. 정확한 단계는 Window Reporting Services 서비스 계정, Windows 사용자 계정 또는 SQL Server 인증 등 Reporting Services 환경에서 사용 중인 인증 유형에 따라 달라집니다. 자세한 내용은 보고서 서버 데이터베이스 연결 구성(SSRS 구성 관리자)을 참조하세요.
수신기 DNS 이름을 사용하도록 데이터베이스 연결을 업데이트합니다. 기본 모드 보고서 서버의 경우 Reporting Services 구성 관리자에서 보고서 서버 데이터베이스 이름을 변경합니다. SharePoint 모드의 경우에는 Reporting Services 서비스 애플리케이션의 데이터베이스 서버 이름을 변경합니다.
보고서 서버 데이터베이스의 재해 복구 완료 단계
보조 복제본으로 Always On 가용성 그룹을 장애 조치(Failover)한 후에는 다음과 같은 단계를 완료해야 합니다.
Reporting Services 데이터베이스를 호스팅하는 주 데이터베이스 엔진에서 사용 중이던 SQL 에이전트 서비스의 인스턴스를 중지합니다.
새 기본 복제본 컴퓨터에서 SQL Agent 서비스를 시작합니다.
보고서 서버 서비스를 중지합니다.
보고서 서버가 기본 모드인 경우 Reporting Services 구성 관리자를 사용하여 보고서 서버 Windows 서버를 중지합니다.
보고서 서버가 SharePoint 모드로 구성된 경우 SharePoint 중앙 관리에서 Reporting Services 공유 서비스를 중지합니다.
보고서 서버 서비스 또는 Reporting Services SharePoint 서비스를 시작합니다.
새 기본 복제본에 대해 보고서를 실행할 수 있는지 확인합니다.
장애 조치(Failover) 발생 시 보고서 서버 동작
보고서 서버 데이터베이스 장애 조치(failover)를 수행하고 새 기본 복제본을 사용하도록 보고서 서버 환경을 업데이트한 경우, 장애 조치(failover) 및 복구 프로세스로 인해 몇 가지 운영 문제가 발생합니다. 이러한 문제로 인한 영향은 Always On 가용성 그룹이 보조 복제본으로 장애 조치(Failover)를 수행하고 보고서 서버 관리자가 새 기본 복제본을 사용하도록 보고 환경을 업데이트하는 데 걸리는 시간뿐만 아니라 장애 조치(Failover) 발생 시의 Reporting Services 부하에 따라 달라집니다.
재시도 논리로 인해 그리고 장애 조치(Failover) 기간 중 보고서 서버가 예약된 작업을 완료로 표시할 수 없어서 백그라운드 처리에 대한 실행이 두 번 이상 수행될 수도 있습니다.
SQL Server 에이전트 보고서 서버 데이터베이스에 데이터를 쓸 수 없고 이 데이터가 새 기본 복제본에 동기화되지 않기 때문에, 일반적으로 장애 조치(failover) 기간 동안 실행되도록 트리거된 후순위 처리의 실행은 발생하지 않습니다.
데이터베이스 장애 조치(failover)가 완료되고 보고서 서버 서비스가 다시 시작되고 나면 SQL Server 에이전트 작업이 자동으로 다시 만들어집니다. SQL 에이전트 작업이 다시 만들어질 때까지 SQL Server 에이전트 작업과 연결된 모든 후순위 실행이 처리되지 않습니다. 여기에는 Reporting Services 구독, 예약 및 스냅샷이 포함됩니다.