보고 데이터베이스 작성 또는 새로 고침

이 항목에서는 확장 가능 공유 데이터베이스로 사용할 보고 데이터베이스를 작성하거나 새로 고치는 방법에 대해 설명합니다. 보고 데이터베이스는 이 그림에서처럼 프로덕션 데이터베이스의 복사본이거나 하나 이상의 프로덕션 데이터베이스에서 가져온 보고 데이터를 포함할 수 있습니다. 새 보고 데이터베이스를 작성하는지 또는 유효하지 않은 보고 데이터베이스를 새로 고치는지에 따라 보고 데이터베이스를 작성하거나 새로 고치는 프로세스를 작성 단계 또는 새로 고침 단계라고 합니다.

확장 가능 공유 데이터베이스의 수명은 보고 볼륨 세트에서 새 보고 데이터베이스를 작성하는 것으로 시작됩니다. 보고 데이터가 너무 오래되어 더 이상 유용하지 않게 되면 해당 보고 데이터베이스를 유효하지 않은 데이터베이스라고 합니다. 유효하지 않은 보고 데이터베이스는 각 업데이트 주기의 일부로 새로 고쳐집니다. 유효하지 않은 보고 데이터베이스의 새로 고침 과정에는 해당 데이터를 업데이트하거나 완전히 새로운 버전의 데이터베이스를 작성하는 작업이 포함됩니다.

보고 데이터베이스를 작성하거나 새로 고치려면 데이터 또는 데이터베이스 복사를 위해 SQL Server에서 제공하는 데이터 복사 방법 중 하나를 사용할 수 있습니다. 자세한 내용은 뒤에 나오는 "보고 데이터베이스 작성 또는 새로 고침 방법"을 참조하십시오.

보고 데이터베이스 작성 또는 새로 고침 방법

[!참고]

보고 데이터베이스를 작성하거나 새로 고치기 전에 해당 보고 볼륨 세트를 프로덕션 서버에 마운트하고 각 볼륨을 읽기/쓰기 가능으로 표시해야 합니다. 이 프로세스의 모든 단계에 대한 자세한 내용은 이 항목의 뒤에 나오는 "데이터베이스 작성 또는 새로 고침 단계"를 참조하십시오.

SQL Server 2005 이후 버전에서는 다음의 보고 데이터베이스 작성 또는 새로 고침 방법을 지원합니다.

  • SSIS(SQL Server Integration Services)

    SSIS 패키지를 실행하고 SQL 실행 태스크 또는 데이터베이스 전송 태스크를 사용하여 데이터베이스를 만들거나 복사할 수 있습니다.

    • SQL 실행 태스크는 패키지에서 SQL 문이나 저장 프로시저를 실행합니다. SQL 실행 태스크를 사용하면 CREATE DATABASE 문을 실행하여 데이터베이스를 만든 후 하나 이상의 테이블 또는 뷰에 복사하여 데이터베이스를 채울 수 있습니다. 자세한 내용은 SSIS SQL 실행 태스크을 참조하십시오.

    • 데이터베이스 전송 태스크는 같은 서버 인스턴스 내에서 또는 두 인스턴스 간에 데이터베이스를 복사할 수 있습니다. 자세한 내용은 데이터베이스 전송 태스크을 참조하십시오.

    [!참고]

    SQL Server 가져오기 및 내보내기 마법사를 사용하여 데이터베이스를 만들 수도 있지만 테이블이나 뷰를 하나 이상 복사해야 합니다. 자세한 내용은 SQL Server 가져오기 및 내보내기 마법사를 사용하여 데이터 이동를 참조하십시오.

  • 백업 및 복원

    프로덕션 데이터베이스의 백업을 보고 볼륨으로 복원할 수 있습니다. 이 과정에는 전체 데이터베이스 백업을 보고 볼륨으로 복원 및 복구하는 작업이 포함됩니다.

    • 같은 드라이브 문자를 사용하는 경우 보고 볼륨을 다른 호스트에 마운트하고 여기서 서버 인스턴스에 연결하여 데이터베이스를 복원합니다.

    • 보고 볼륨과 프로덕션 볼륨에 서로 다른 드라이브 문자를 사용하는 경우 복원된 데이터베이스의 경로 이름에 보고 볼륨의 드라이브 문자를 지정하는 WITH MOVE 절을 RESTORE DATABASE 문에 추가해야 합니다.

    백업 및 복원을 사용하여 데이터베이스를 복사하는 방법은 백업 및 복원으로 데이터베이스 복사를 참조하십시오.

  • 프로덕션 데이터베이스 복사

    수동으로 데이터베이스를 복사하거나 데이터베이스 복사 마법사의 분리/연결 방법을 사용하려면 데이터베이스를 오프라인 상태로 설정하여 복사한 후 다시 온라인 상태로 설정해야 합니다. 그러나 데이터베이스 복사 마법사는 대체 방법으로 온라인 상태에서 데이터베이스를 복사하는 SMO 전송 방법을 제공합니다. SMO 전송 방법은 분리/연결 방법보다 속도가 느리지만 데이터베이스에 대한 활성 연결을 유지할 수 있다는 이점이 있습니다.

    자세한 내용은 데이터베이스 복사 마법사 사용을 참조하십시오.

[!참고]

보고 데이터베이스를 작성할 때는 항상 프로덕션 데이터베이스와 보고 데이터베이스에 같은 경로 이름을 사용하고, 가능한 경우 보고 서버에 마운트 시 프로덕션 볼륨과 보고 볼륨에 같은 드라이브 문자를 사용하는 것이 좋습니다.

예상 쿼리 작업에 대해 보고 데이터베이스를 최적화하는 것이 도움이 될 수 있습니다. 가능한 최적화 작업은 다음과 같습니다.

  • 필요한 경우 영향을 받는 테이블 및 인덱스에 대한 통계 업데이트 또는 다시 생성

  • 채우기 비율을 100으로 설정하여 인덱스 다시 작성

  • 보고 데이터베이스를 단순 복구 모드로 설정하고 검사점을 통해 트랜잭션 로그 잘림 수행 및 로그 공간 절약

[!참고]

보고 데이터베이스를 확장 가능 공유 데이터베이스로 사용하는 방법은 확장 가능 공유 데이터베이스에 대한 올바른 환경 유지을 참조하십시오.

데이터베이스가 준비되면 보고 볼륨을 읽기 전용으로 표시하고 프로덕션 서버에서 분리해야 합니다. 자세한 내용은 뒤에 나오는 "작성 또는 새로 고침 단계"를 참조하십시오.

작성 또는 새로 고침 단계

[!참고]

보고 데이터베이스를 새로 고치려면 해당 보고 볼륨 세트가 모든 보고 서버에서 분리되어 있어야 합니다. 자세한 내용은 확장 가능 공유 데이터베이스 분리를 참조하십시오.

보고 데이터베이스를 작성하거나 새로 고치려면 프로덕션 서버에서 다음을 수행합니다.

  1. 하드웨어 공급업체의 유틸리티를 사용하여 각 보고 볼륨에 해당하는 LUN(Logical Unit Number)의 마스크를 해제함으로써 프로덕션 서버에서 해당 볼륨에 액세스할 수 있게 합니다. 데이터베이스에 여러 개의 보고 볼륨이 사용되는 경우 각 볼륨에 대해 이 단계를 수행하십시오.

  2. 각 보고 볼륨을 마운트하고 읽기/쓰기 가능으로 표시합니다. 컴퓨터의 디스크와 볼륨을 모두 표시하는 DiskPart list volumes 명령은 볼륨 정보를 얻는 데 도움이 됩니다. DiskPart 유틸리티를 사용하여 볼륨을 마운트하려면 명령 프롬프트에서 다음 명령을 입력합니다.

    DiskPart

    DISKPART> select volume=<drive-number>

    DISKPART> assign letter=<drive-letter>

    DISKPART> attribute clear readonly

    DISKPART> exit

    여기서 <drive-number>는 Windows 운영 체제에서 할당한 볼륨 번호이고 <drive-letter>는 보고 볼륨에 할당된 문자입니다. 데이터베이스에 여러 개의 보고 볼륨이 사용되는 경우 각 볼륨에 대해 이 단계를 수행하십시오.

  3. 기존 보고 데이터베이스를 새로 고치는 경우 다음을 수행합니다.

  4. 데이터베이스를 작성하거나 새로 고칩니다.

    관리자는 보고 데이터베이스 작성 또는 새로 고침 방법 중 하나를 사용하여 데이터베이스를 작성하거나 새로 고칩니다. 보고 데이터베이스는 임의의 유효한 데이터베이스 이름을 사용할 수 있습니다. 자세한 내용은 이 항목의 앞에 나오는 "보고 데이터베이스 작성 또는 새로 고침 방법"을 참조하십시오.

    [!참고]

    보고 데이터베이스에서 PAGE_VERIFY를 기본값인 CHECKSUM으로 설정하는 것이 좋습니다. 자세한 내용은 ALTER DATABASE(Transact-SQL)를 참조하십시오.

  5. 프로덕션 서버 인스턴스에서 데이터베이스를 분리합니다.

    다음 Transact-SQL 문을 사용하여 이 작업을 수행할 수 있습니다.

    sp_detach_db @dbname='<database_name>'
    

    여기서 <database_name>은 데이터베이스 이름입니다.

    [!참고]

    기본적으로 sp_detach_db는 UPDATE STATISTICS를 실행하여 통계를 다시 샘플링합니다. 그러나 일부 구현에서는 FULL SCAN 옵션을 사용하여 UPDATE STATISTICS를 별도로 실행해야 할 수도 있습니다.

  6. 각 보고 볼륨을 읽기 전용으로 표시하고 프로덕션 서버에서 분리합니다.

    DiskPart 유틸리티를 사용하여 볼륨을 분리하려면 명령 프롬프트에서 다음 명령을 입력합니다.

    DiskPart

    DISKPART> select volume=<drive-number>

    DISKPART> attribute set readonly

    DISKPART> remove

    여기서 <drive-number>는 Windows 운영 체제에서 할당한 볼륨 번호이고 <drive-letter>는 보고 볼륨에 할당된 문자입니다. 데이터베이스에 여러 개의 보고 볼륨이 사용되는 경우 각 볼륨에 대해 이 단계를 수행하십시오.

    중요 정보중요

    프로덕션 서버에서 보고 볼륨을 분리하기 전에 읽기 전용으로 설정해야 합니다.

이제 보고 데이터베이스를 확장 가능 공유 데이터베이스로 사용할 수 있습니다. 자세한 내용은 보고 데이터베이스를 확장 가능 공유 데이터베이스로 연결을 참조하십시오.