다음을 통해 공유


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

SQL Server DB 엔진 설치에 사용되는 보고서 서버 데이터베이스를 다른 컴퓨터에 있는 인스턴스로 이동할 수 있습니다. reportserverreportservertempdb 데이터베이스를 모두 이동하거나 함께 복사해야 합니다. 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. 사용하려는 SQL Server 인스턴스의 데이터 폴더로 .mdf 및 .ldf 파일을 복사하거나 이동합니다. 두 개의 데이터베이스를 이동 중이므로 네 개의 파일을 모두 이동시키거나 복사해야 합니다.

  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 상태로 유지하므로 로그 백업을 검토하여 복원할 데이터베이스를 결정할 시간을 제공합니다. 마지막 단계에서는 RECOVERY 인수를 사용하여 RESTORE 작업을 반복합니다.

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 공급자 액세스를 참조하세요.