보고서 서버 데이터베이스를 다른 컴퓨터로 이동(SSRS 기본 모드)

SQL Server DB 엔진 설치에 사용되는 보고서 서버 데이터베이스를 다른 컴퓨터에 있는 인스턴스로 이동할 수 있습니다. reportserver 데이터베이스와 reportservertempdb 데이터베이스를 모두 이동하거나 함께 복사해야 합니다. Reporting Services 설치에는 두 데이터베이스가 모두 필요합니다. 이름으로 데이터베이스를 reportservertempdb 이동 중인 주 reportserver 데이터베이스와 연결해야 합니다.

적용 대상: Reporting Services 기본 모드.

데이터베이스를 이동해도 현재 보고서 서버 항목에 대해 정의된 예약된 작업은 변경되지 않습니다.

  • 보고서 서버 서비스를 처음 다시 시작할 때 일정이 다시 만들어집니다.

  • 일정을 트리거하는 데 사용되는 SQL Server 에이전트 작업은 새 데이터베이스 인스턴스에서 다시 만들어집니다. 작업을 새 컴퓨터로 이동할 필요는 없지만 더 이상 사용되지 않는 컴퓨터에서 작업을 삭제할 수 있습니다.

  • 구독, 캐시된 보고서 및 스냅샷 이동된 데이터베이스에 유지됩니다. 데이터베이스를 이동한 후 스냅샷 새로 고친 데이터를 선택하지 않는 경우 스냅샷 옵션을 선택 취소합니다. 그런 다음 적용을 선택하여 변경 내용을 저장하고 일정을 다시 만든 다음 적용을 다시 선택하여 변경 내용을 저장합니다.

  • 저장되는 reportservertempdb 임시 보고서 및 사용자 세션 데이터는 해당 데이터베이스를 이동할 때 유지됩니다.

SQL Server는 백업 및 복원, 연결 및 분리 및 복사를 포함하여 데이터베이스를 이동하기 위한 여러 가지 방법을 제공합니다. 모든 방법이 기존 데이터베이스를 새 서버 인스턴스로 재배치하는 데 적합한 것은 아닙니다. 보고서 서버 데이터베이스를 이동하는 데 사용해야 하는 방법은 시스템 가용성 요구 사항에 따라 달라집니다. 보고서 서버 데이터베이스를 이동하는 가장 쉬운 방법은 데이터베이스를 연결하고 분리하는 것입니다. 그러나 이 방법을 사용하려면 데이터베이스를 분리하는 동안 보고서 서버를 오프라인으로 전환해야 합니다. 서비스 중단을 최소화하려면 백업 및 복원 작업을 선택하는 것이 좋지만 Transact-SQL 명령을 실행하여 작업을 수행해야 합니다. 특히 데이터베이스 복사 마법사를 사용하여 데이터베이스를 복사하는 것은 권장되지 않습니다. 데이터베이스의 사용 권한 설정은 유지되지 않습니다.

Important

이 문서에 제공된 단계는 보고서 서버 데이터베이스의 재배치가 기존 설치를 변경하는 유일한 경우 권장됩니다. 전체 Reporting Services 설치를 마이그레이션하려면 연결 재구성 및 암호화 키 재설정이 필요합니다. 예를 들어 데이터베이스를 이동하고 데이터베이스를 사용하는 보고서 서버 Windows 서비스의 ID를 변경할 때 이 구성이 필요합니다.

보고서 서버 데이터베이스 분리 및 연결

보고서 서버를 오프라인으로 전환할 수 있는 경우 데이터베이스를 분리하여 사용하려는 SQL Server 인스턴스로 이동할 수 있습니다. 이 방법은 데이터베이스의 사용 권한을 유지합니다. SQL Server 데이터베이스를 사용하는 경우 다른 SQL Server 인스턴스로 이동해야 합니다. 데이터베이스를 이동한 후 보고서 서버 연결을 보고서 서버 데이터베이스로 다시 구성해야 합니다. 스케일 아웃 배포를 실행하는 경우 배포의 각 보고서 서버에 대한 보고서 서버 데이터베이스 연결을 다시 구성해야 합니다.

다음 단계를 사용하여 데이터베이스를 이동합니다.

  1. 이동하려는 보고서 서버 데이터베이스에 대한 암호화 키를 백업합니다. Reporting Services 구성 도구를 사용하여 키를 백업할 수 있습니다.

  2. 보고서 서버 서비스를 중지합니다. Reporting Services 구성 도구를 사용하여 서비스를 중지할 수 있습니다.

  3. SQL Server Management Studio를 시작하고 보고서 서버 데이터베이스를 호스트하는 SQL Server 인스턴스에 대한 연결을 엽니다.

  4. 보고서 서버 데이터베이스를 마우스 오른쪽 단추로 클릭하고 작업을 가리킨 다음 분리를 선택합니다. 보고서 서버 임시 데이터베이스에 대해 이 단계를 반복합니다.

  5. .mdf 및 .ldf 파일을 사용하려는 SQL Server 인스턴스의 데이터 폴더로 복사하거나 이동합니다. 두 개의 데이터베이스를 이동 중이므로 네 개의 파일을 모두 이동하거나 복사해야 합니다.

  6. Management Studio에서 보고서 서버 데이터베이스를 호스트하는 새 SQL Server 인스턴스에 대한 연결을 엽니다.

  7. 데이터베이스 노드를 마우스 오른쪽 단추로 클릭한 다음 연결을 선택합니다.

  8. 추가를 선택하여 첨부할 보고서 서버 데이터베이스 .mdf 및 .ldf 파일을 선택합니다. 보고서 서버 임시 데이터베이스에 대해 이 단계를 반복합니다.

  9. 데이터베이스가 연결되면 RSExecRole보고서 서버 데이터베이스 및 임시 데이터베이스의 데이터베이스 역할인지 확인합니다. RSExecRole 에는 보고서 서버 데이터베이스 테이블에 대한 선택, 삽입, 업데이트, 삭제 및 참조 권한과 저장 프로시저에 대한 실행 권한이 있어야 합니다. 자세한 내용은 RSExecRole 만들기를 참조하세요.

  10. Reporting Services 구성 도구를 시작하고 보고서 서버에 대한 연결을 엽니다.

  11. 데이터베이스 페이지에서 새 SQL Server 인스턴스를 선택한 다음, 커넥트 선택합니다.

  12. 방금 이동한 보고서 서버 데이터베이스를 선택한 다음 적용을 선택합니다.

  13. 암호화 키 페이지에서 복원을 선택합니다. 키의 백업 복사본이 포함된 파일과 파일 잠금을 해제할 암호를 지정합니다.

  14. 보고서 서버 서비스를 다시 시작합니다.

보고서 서버 데이터베이스 백업 및 복원

보고서 서버를 오프라인으로 전환할 수 없는 경우 백업 및 복원을 사용하여 보고서 서버 데이터베이스를 재배치할 수 있습니다. 백업 및 복원을 수행하려면 Transact-SQL 문을 사용해야 합니다. 데이터베이스를 복원한 후에는 새 서버 인스턴스에서 데이터베이스를 사용하도록 보고서 서버를 구성해야 합니다. 자세한 내용은 이 문서의 끝부분에 있는 지침을 참조하세요.

BACKUP 및 COPY_ONLY 사용하여 보고서 서버 데이터베이스 백업

데이터베이스를 백업할 때 인수를 COPY_ONLY 설정합니다. 두 데이터베이스와 로그 파일을 모두 백업해야 합니다.

-- To permit log backups, before the full database backup, alter the database   
-- to use the full recovery model.  
USE master;  
GO  
ALTER DATABASE ReportServer  
   SET RECOVERY FULL  
  
-- If the ReportServerData device does not exist yet, create it.   
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerData',   
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\BACKUP\ReportServerData.bak'  
  
-- Create a logical backup device, ReportServerLog.  
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerLog',   
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\BACKUP\ReportServerLog.bak'  
  
-- Back up the full ReportServer database.  
BACKUP DATABASE ReportServer  
   TO ReportServerData  
   WITH COPY_ONLY  
  
-- Back up the ReportServer log.  
BACKUP LOG ReportServer  
   TO ReportServerLog  
   WITH COPY_ONLY  
  
-- To permit log backups, before the full database backup, alter the database   
-- to use the full recovery model.  
USE master;  
GO  
ALTER DATABASE ReportServerTempdb  
   SET RECOVERY FULL  
  
-- If the ReportServerTempDBData device does not exist yet, create it.   
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBData',   
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\BACKUP\ReportServerTempDBData.bak'  
  
-- Create a logical backup device, ReportServerTempDBLog.  
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog',   
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\BACKUP\ReportServerTempDBLog.bak'  
  
-- Back up the full ReportServerTempDB database.  
BACKUP DATABASE ReportServerTempDB  
   TO ReportServerTempDBData  
   WITH COPY_ONLY  
  
-- Back up the ReportServerTempDB log.  
BACKUP LOG ReportServerTempDB  
   TO ReportServerTempDBLog  
   WITH COPY_ONLY  

RESTORE 및 MOVE를 사용하여 보고서 서버 데이터베이스 재배치

데이터베이스를 복원할 때 경로를 지정할 수 있도록 MOVE 인수를 포함해야 합니다. 인수를 NORECOVERY 사용하여 초기 복원을 수행합니다. 이 인수는 데이터베이스를 RESTORING 상태로 유지하므로 로그 백업을 검토하여 복원할 데이터베이스를 결정할 시간을 제공합니다. 마지막 단계에서는 인수를 사용하여 RESTORE 작업을 반복합니다 RECOVERY .

인수는 MOVE 데이터 파일의 논리적 이름을 사용합니다. 논리 이름을 찾으려면 다음 문을 RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';실행합니다.

다음 예제에서는 복원할 로그 파일의 파일 위치를 지정할 수 있도록 인수를 포함합니다 FILE . 파일 위치를 찾으려면 다음 문을 RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';실행합니다.

데이터베이스 및 로그 파일을 복원할 때 각 RESTORE 작업을 개별적으로 실행해야 합니다.

-- Restore the report server database and move to new instance folder   
RESTORE DATABASE ReportServer  
   FROM DISK='C:\ReportServerData.bak'  
   WITH NORECOVERY,   
      MOVE 'ReportServer' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf',   
      MOVE 'ReportServer_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer_Log.ldf';  
GO  
  
-- Restore the report server log file to new instance folder   
RESTORE LOG ReportServer  
   FROM DISK='C:\ReportServerData.bak'  
   WITH NORECOVERY, FILE=2  
      MOVE 'ReportServer' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf',   
      MOVE 'ReportServer_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer_Log.ldf';  
GO  
  
-- Restore and move the report server temporary database  
RESTORE DATABASE ReportServerTempdb  
   FROM DISK='C:\ReportServerTempDBData.bak'  
   WITH NORECOVERY,   
      MOVE 'ReportServerTempDB' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf',   
      MOVE 'ReportServerTempDB_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\REportServerTempDB_Log.ldf';  
GO  
  
-- Restore the temporary database log file to new instance folder   
RESTORE LOG ReportServerTempdb  
   FROM DISK='C:\ReportServerTempDBData.bak'  
   WITH NORECOVERY, FILE=2  
      MOVE 'ReportServerTempDB' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf',   
      MOVE 'ReportServerTempDB_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\REportServerTempDB_Log.ldf';  
GO  
  
-- Perform final restore  
RESTORE DATABASE ReportServer  
   WITH RECOVERY  
GO  
  
-- Perform final restore  
RESTORE DATABASE ReportServerTempDB  
   WITH RECOVERY  
GO  

보고서 서버 데이터베이스 연결을 구성하는 방법

  1. Reporting Services 구성 관리자를 시작하고 보고서 서버에 대한 연결을 엽니다.

  2. 데이터베이스 페이지에서 데이터베이스 변경을 선택합니다. 다음을 선택합니다.

  3. 기존 보고서 서버 데이터베이스 선택을 선택합니다. 다음을 선택합니다.

  4. 이제 보고서 서버 데이터베이스를 호스트하는 SQL Server를 선택하고 테스트 커넥트 선택합니다. 다음을 선택합니다.

  5. 데이터베이스 이름에서 사용할 보고서 서버 데이터베이스를 선택합니다. 다음을 선택합니다.

  6. 자격 증명에서 보고서 서버가 보고서 서버 데이터베이스에 연결하는 데 사용하는 자격 증명을 지정합니다. 다음을 선택합니다.

  7. 다음을 선택한 다음 마침을 선택합니다.

참고 항목

Reporting Services를 설치하려면 SQL Server 데이터베이스 엔진 인스턴스에 RSExecRole 역할이 포함되어야 합니다. 역할 만들기, 로그인 등록 및 역할 할당은 Reporting Services 구성 도구를 통해 보고서 서버 데이터베이스 연결을 설정할 때 발생합니다. rsconfig.exe 명령 프롬프트 유틸리티를 사용하는 등 다른 방법을 사용하여 연결을 구성하면 보고서 서버가 작동 상태에 있지 않게 됩니다. 보고서 서버를 사용할 수 있도록 WMI 코드를 작성해야 할 수 있습니다. 자세한 내용은 Reporting Services WMI 공급자 액세스를 참조하세요.

RSExecRole 만들기
보고서 서버 서비스 시작 및 중지
Report Server 데이터베이스 연결 구성
무인 실행 계정 구성
보고서 서버 구성 관리자
rsconfig 유틸리티
암호화 키 구성 및 관리
보고서 서버 데이터베이스

추가 질문이 있으신가요? Reporting Services 포럼에서 질문하기