다른 컴퓨터로 보고서 서버 데이터베이스 이동

업데이트: 2006년 4월 14일

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

데이터베이스를 이동해도 보고서 서버 항목에 대해 현재 정의되어 있는 예약 작업에는 영향을 주지 않습니다. 보고서 서버 Windows 서비스를 처음으로 다시 시작하면 일정이 다시 만들어집니다. 구독, 캐시된 보고서 및 스냅숏은 이동된 데이터베이스에 그대로 유지됩니다. reportservertempdb에 저장된 임시 보고서와 사용자 세션 데이터는 해당 데이터베이스를 이동해도 유지됩니다.

SQL Server에서는 백업 후 복원, 분리 후 연결, 복사 등의 여러 가지 데이터베이스 이동 방법을 제공합니다. 기존 데이터베이스 위치를 새 서버 인스턴스로 다시 지정하는 데 이러한 방법이 모두 적합한 것은 아닙니다. 보고서 서버 데이터베이스를 이동할 때 사용하는 방법은 가동 시간과 관련된 요구 사항이 있는지 여부에 따라 달라집니다. 보고서 서버 데이터베이스를 이동하는 가장 쉬운 방법은 데이터베이스를 분리 후 연결하는 것입니다. 그러나 이 방법을 사용하려면 데이터베이스를 분리하는 동안 보고서 서버를 오프라인 상태로 설정해야 합니다. 서버 장애를 최소화하려면 백업 후 복원 방법을 사용하는 것이 가장 좋지만 이 경우 Transact-SQL 명령을 실행하여 작업을 수행해야 합니다. 데이터베이스 복사 마법사 등을 사용하여 데이터베이스를 복사할 경우에는 데이터베이스의 권한 설정이 유지되지 않으므로 이 방법은 사용하지 않는 것이 좋습니다.

ms156421.note(ko-kr,SQL.90).gif중요:
이 항목에 설명된 단계는 기존 설치에서 보고서 서버 데이터베이스를 재배치하는 작업만 수행하려는 경우에 사용하는 것이 좋습니다. 전체 Reporting Services 설치를 마이그레이션하려면, 즉 데이터베이스를 이동하고 해당 데이터베이스를 사용하는 보고서 서버 Windows 서비스의 ID를 변경하려면 연결을 다시 구성하고 암호화 키를 다시 설정해야 합니다. Reporting Services 설치를 마이그레이션하는 방법은 Reporting Services 마이그레이션을 참조하십시오.

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

보고서 서버를 오프라인 상태로 설정할 수 있는 경우 데이터베이스를 분리한 후 사용하려는 SQL Server 인스턴스로 이동할 수 있습니다. 이 방법을 사용하면 데이터베이스의 사용 권한이 유지됩니다. SQL Server 2005 데이터베이스를 사용할 경우 이 데이터베이스를 다른 SQL Server 2005 데이터베이스 엔진 인스턴스로 이동해야 합니다. 데이터베이스를 이동한 후에는 보고서 서버와 보고서 서버 데이터베이스의 연결을 다시 구성해야 합니다. 확장 배포를 실행하려면 배포 환경의 각 보고서 서버에 대한 보고서 서버 데이터베이스 연결을 다시 구성해야 합니다.

다음 단계에 따라 데이터베이스를 이동하십시오.

  1. 보고서 서버 Windows 서비스 및 웹 서비스를 중지합니다. 보고서 서버 웹 서비스를 중지하려면 이 서비스를 호스팅하는 응용 프로그램 풀을 중지합니다.
  2. SQL Server Management Studio를 시작하고 보고서 서버 데이터베이스를 호스팅하는 SQL Server 인스턴스에 대한 연결을 엽니다.
  3. 보고서 서버 데이터베이스를 마우스 오른쪽 단추로 클릭하고 작업을 가리킨 다음 분리를 클릭합니다. 보고서 서버 임시 데이터베이스에 대해 이 단계를 반복합니다.
  4. 사용하려는 SQL Server 인스턴스의 Data 폴더에 .mdf 및 .ldf 파일을 복사하거나 이동합니다. 두 개의 데이터베이스를 이동하고 있으므로 이동하거나 복사하는 파일이 모두 네 개인지 확인합니다.
  5. Management Studio에서 보고서 서버 데이터베이스를 호스팅할 새 SQL Server 인스턴스에 대한 연결을 엽니다.
  6. 데이터베이스 노드를 마우스 오른쪽 단추로 클릭한 다음 연결을 클릭합니다.
  7. 추가를 클릭하고 연결할 보고서 서버 데이터베이스 .mdf 및 .ldf 파일을 선택합니다. 보고서 서버 임시 데이터베이스에 대해 이 단계를 반복합니다.
  8. 데이터베이스가 연결되면 RSExecRole이 보고서 서버 데이터베이스와 임시 데이터베이스의 데이터베이스 역할인지 확인합니다. RSExecRole에는 보고서 서버 데이터베이스 테이블에 대한 선택, 만들기, 업데이트, 삭제 및 참조 권한과 저장 프로시저에 대한 실행 권한이 있어야 합니다.
  9. Reporting Services 구성 도구를 시작한 후 보고서 서버에 대한 연결을 엽니다.
  10. 데이터베이스 설치 페이지에서 새 SQL Server 인스턴스를 선택한 다음 연결을 클릭합니다.
  11. 방금 이동한 보고서 서버 데이터베이스를 선택한 다음 적용을 클릭합니다.
  12. 보고서 서버 Windows 서비스 및 웹 서비스를 다시 시작합니다.

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

보고서 서버를 오프라인으로 설정할 수 없는 경우 백업 후 복원 방법을 사용하여 보고서 서버 데이터베이스 위치를 다시 지정할 수 있습니다. Transact-SQL 문을 사용하여 백업 및 복원을 수행해야 합니다. SQL Server Management Studio에서는 복사 전용 백업을 지원하지 않습니다. 데이터베이스를 복원한 후에 새 서버 인스턴스의 데이터베이스를 사용하도록 보고서 서버를 구성해야 합니다. 자세한 내용은 이 항목의 마지막 부분에 있는 지침을 참조하십시오.

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

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

-- 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\MSSQL.1\MSSQL\BACKUP\ReportServerData.bak'

-- Create a logical backup device, ReportServerLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerLog', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\BACKUP\ReportServerTempDBData.bak'

-- Create a logical backup device, ReportServerTempDBLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\Data\ReportServer.mdf', 
      MOVE 'ReportServer_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\Data\ReportServer.mdf', 
      MOVE 'ReportServer_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf', 
      MOVE 'ReportServerTempDB_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\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\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf', 
      MOVE 'ReportServerTempDB_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\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. 데이터베이스 설치 페이지에서 현재 보고서 서버 데이터베이스를 호스팅하는 SQL Server를 선택하고 연결을 클릭합니다.
  3. 데이터베이스 이름에서 사용할 보고서 서버 데이터베이스를 선택한 다음 적용을 클릭합니다.

[!참고] Reporting Services를 설치하려면 SQL Server 데이터베이스 엔진 인스턴스에 RSExecRole이 포함되어 있어야 합니다. Reporting Services 구성 도구를 통해 보고서 서버 데이터베이스 연결을 설정하면 역할 만들기, 로그인 등록 및 역할 할당이 수행됩니다. rsconfig.exe 명령줄 유틸리티 등의 다른 방법을 사용하여 연결을 구성하는 경우 보고서 서버가 작동 중지 상태에 있게 됩니다. 이 경우 다른 스크립트를 실행하여 보고서 서버 데이터베이스를 사용할 수 있게 설정해야 할 수 있습니다. 자세한 내용은 배포 및 관리 작업 스크립팅을 참조하십시오.

참고 항목

개념

보고서 서버 Windows 서비스 시작 및 중지
무인 모드로 실행되는 보고서 처리를 위한 계정 구성
Reporting Services 구성 도구
암호화 키 관리
보고서 서버 데이터베이스

관련 자료

백업 개요(SQL Server)
복사 전용 백업
rsconfig 유틸리티

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 4월 14일

새로운 내용
  • 분리 후 연결 방법 사용에 대한 지침을 추가했습니다.
  • 백업 후 복원 방법 사용에 대한 예제 스크립트와 지침을 추가했습니다.