데이터베이스 백업, 복원 및 동기화(XMLA)

XML for Analysis에는 데이터베이스를 백업, 복원 및 동기화하는 세 개의 명령이 있습니다.

데이터베이스 백업

앞에서 설명한 대로 Backup 명령은 지정된 SQL Server Analysis Services 데이터베이스를 백업 파일에 백업합니다. Backup 명령에는 백업할 데이터베이스, 사용할 백업 파일, 보안 정의를 백업하는 방법 및 백업할 원격 파티션을 지정할 수 있는 다양한 속성이 있습니다.

중요

Analysis Services 서비스 계정에는 각 파일에 대해 지정한 백업 위치에 쓸 수 있는 권한이 있어야 합니다. 또한 사용자에게는 SQL Server Analysis Services 인스턴스의 관리자 역할 또는 백업할 데이터베이스에 대한 모든 권한(관리자) 권한이 있는 데이터베이스 역할의 멤버 중 하나가 있어야 합니다.

데이터베이스 및 백업 파일 지정

백업할 데이터베이스를 지정하려면 Backup 명령의 Object 속성을 설정합니다. Object 속성은 데이터베이스에 대한 개체 식별자를 포함해야 합니다. 그렇지 않으면 오류가 발생합니다.

백업 프로세스에서 만들고 사용할 파일을 지정하려면 Backup 명령의 File 속성을 설정합니다. File 속성을 만들 백업 파일의 UNC 경로 및 파일 이름으로 설정해야 합니다.

백업에 사용할 파일을 지정하는 것 외에도 지정된 백업 파일에 대해 다음과 같은 옵션을 설정할 수 있습니다.

  • AllowOverwrite 속성을 true로 설정하면 지정된 파일이 이미 있는 경우 Backup 명령이 백업 파일을 덮어씁니다. AllowOverwrite 속성을 false로 설정하면 지정된 백업 파일이 이미 있는 경우 오류가 발생합니다.

  • ApplyCompression 속성을 true로 설정하면 파일을 만든 후 백업 파일이 압축됩니다.

  • Password 속성을 비어 있지 않은 값으로 설정하면 지정된 암호를 사용하여 백업 파일이 암호화됩니다.

    중요

    ApplyCompression암호 속성을 지정하지 않으면 백업 파일은 연결 문자열에 포함된 사용자 이름과 암호를 명확한 텍스트로 저장합니다. 일반 텍스트로 저장된 데이터는 검색될 수 있으므로 보안을 강화하려면 ApplyCompression암호 설정을 사용하여 백업 파일을 압축하고 암호화합니다.

보안 설정 백업

보안 속성은 Backup 명령이 SQL Server Analysis Services 데이터베이스에 정의된 역할 및 권한과 같은 보안 정의를 백업하는지 여부를 결정합니다. 또한 보안 속성은 백업 파일에 보안 정의의 멤버로 정의된 Windows 사용자 계정 및 그룹이 포함되어 있는지 여부를 결정합니다.

Security 속성 값은 다음 표에 나열된 문자열 중 하나로 제한됩니다.

설명
SkipMembership 백업 파일에 보안 정의는 포함되지만 멤버 정보는 제외됩니다.
CopyAll 백업 파일에 보안 정의와 멤버 정보가 포함됩니다.
IgnoreSecurity 백업 파일에서 보안 정의가 제외됩니다.

원격 파티션 백업

SQL Server Analysis Services 데이터베이스에서 원격 파티션을 백업하려면 Backup 명령의 BackupRemotePartitions 속성을 true로 설정합니다. 이 설정으로 인해 Backup 명령은 데이터베이스에 대한 원격 파티션을 저장하는 데 사용되는 각 원격 데이터 원본에 대한 원격 백업 파일을 만듭니다.

백업할 각 원격 데이터 원본에 대해 Backup 명령의 Locations 속성에 Location 요소를 포함하여 해당 백업 파일을 지정할 수 있습니다. Location 요소에는 해당 File 속성이 원격 백업 파일의 UNC 경로 및 파일 이름으로 설정되고 DataSourceID 속성은 데이터베이스에 정의된 원격 데이터 원본의 식별자로 설정되어야 합니다.

데이터베이스 복원

복원 명령은 백업 파일에서 지정된 SQL Server Analysis Services 데이터베이스를 복원합니다. 복원 명령에는 복원할 데이터베이스, 사용할 백업 파일, 보안 정의를 복원하는 방법, 저장할 원격 파티션 및 ROLAP(재배치 관계형 OLAP) 개체를 지정할 수 있는 다양한 속성이 있습니다.

중요

복원 명령을 실행하는 사용자는 각 백업 파일에 대해 지정한 백업 위치에서 읽을 수 있는 권한을 가져야 합니다. 서버에 설치되지 않은 SQL Server Analysis Services 데이터베이스를 복원하려면 사용자도 해당 SQL Server Analysis Services 인스턴스에 대한 서버 역할의 멤버여야 합니다. SQL Server Analysis Services 데이터베이스를 덮어쓰려면 사용자에게 SQL Server Analysis Services 인스턴스에 대한 서버 역할의 멤버 또는 복원할 데이터베이스에 대한 모든 권한(관리자) 권한이 있는 데이터베이스 역할의 멤버 중 하나가 있어야 합니다.

참고

기존 데이터베이스를 복원한 다음에는 해당 데이터베이스를 복원한 사용자가 보유하고 있는 복원된 데이터베이스 액세스 권한이 손실될 수 있습니다. 이러한 액세스 권한 손실은 백업 수행 당시에 사용자가 서버 역할의 멤버가 아니었거나 모든 권한(관리자)이 있는 데이터베이스 역할의 멤버가 아니었던 경우 발생할 수 있습니다.

데이터베이스 및 백업 파일 지정

복원 명령의 DatabaseName 속성은 데이터베이스에 대한 개체 식별자를 포함해야 합니다. 그렇지 않으면 오류가 발생합니다. 지정된 데이터베이스가 이미 있는 경우 AllowOverwrite 속성은 기존 데이터베이스를 덮어쓸지 여부를 결정합니다. AllowOverwrite 속성이 false로 설정되어 있고 지정된 데이터베이스가 이미 있는 경우 오류가 발생합니다.

복원 명령의 File 속성을 UNC 경로로 설정하고 백업 파일을 지정된 데이터베이스로 복원할 파일 이름으로 설정해야 합니다. 지정된 백업 파일의 Password 속성을 설정할 수도 있습니다. Password 속성이 비어 있지 않은 값으로 설정된 경우 지정된 암호를 사용하여 백업 파일의 암호가 해독됩니다. 백업 파일이 암호화되지 않았거나 지정된 암호가 백업 파일을 암호화하는 데 사용된 암호와 일치하지 않으면 오류가 발생합니다.

보안 설정 복원

보안 속성은 복원 명령이 SQL Server Analysis Services 데이터베이스에 정의된 역할 및 권한과 같은 보안 정의를 복원하는지 여부를 결정합니다. 또한 보안 속성은 복원 명령이 복원 프로세스의 일부로 보안 정의의 멤버로 정의된 Windows 사용자 계정 및 그룹을 포함하는지 여부를 결정합니다.

이 요소의 값은 다음 표에 나열된 문자열 중 하나로 제한됩니다.

설명
SkipMembership 데이터베이스에 보안 정의는 포함되지만 멤버 정보는 제외됩니다.
CopyAll 데이터베이스에 보안 정의와 멤버 정보가 포함됩니다.
IgnoreSecurity 데이터베이스에서 보안 정의가 제외됩니다.

원격 파티션 복원

이전 Backup 명령 중에 만든 각 원격 백업 파일에 대해 복원 명령의 Locations 속성에 Location 요소를 포함하여 연결된 원격 파티션을 복원할 수 있습니다. 각 Location 요소에 대한 DataSourceType 속성을 제외하거나 명시적으로 원격으로 설정해야 합니다.

지정된 각 Location 요소에 대해 SQL Server Analysis Services 인스턴스는 DataSourceID 속성에 지정된 원격 데이터 원본에 연결하여 File 속성에 지정된 원격 백업 파일에 정의된 파티션을 복원합니다. DataSourceID파일 속성 외에도 원격 파티션을 복원하는 데 사용되는 각 Location 요소에 대해 다음 속성을 사용할 수 있습니다.

  • DataSourceID에 지정된 원격 데이터 원본에 대한 연결 문자열을 재정의하려면 Location 요소의 ConnectionString 속성을 다른 연결 문자열로 설정할 수 있습니다. 그런 다음 Restore 명령은 ConnectionString 속성에 포함된 연결 문자열을 사용합니다. ConnectionString을 지정하지 않으면 복원 명령은 지정된 원격 데이터 원본에 대한 백업 파일에 저장된 연결 문자열을 사용합니다. ConnectionString 설정을 사용하여 원격 파티션을 다른 원격 인스턴스로 이동할 수 있습니다. 그러나 ConnectionString 설정을 사용하여 복원된 데이터베이스를 포함하는 동일한 인스턴스로 원격 파티션을 복원할 수는 없습니다. 즉, ConnectionString 속성을 사용하여 로컬 파티션에 원격 파티션을 만들 수 없습니다.

  • 원격 데이터 원본에 원격 파티션을 저장하는 데 사용되는 각 원본 폴더에 대해 원래 폴더 에 저장된 모든 원격 파티션을 복원할 새 폴더를 나타내는 Folder 요소를 지정할 수 있습니다. Folder 요소를 지정하지 않으면 복원 명령은 원격 백업 파일에 포함된 원격 파티션에 대해 지정된 원래 폴더를 사용합니다.

ROLAP 개체 재배치

이러한 정보는 기본 관계형 데이터 원본의 테이블에 저장되므로 복원 명령은 ROLAP 스토리지를 사용하는 개체에 대한 집계 또는 데이터를 복원할 수 없습니다. 하지만 ROLAP 개체의 메타데이터는 복원할 수 있습니다. ROLAP 개체에 대한 메타데이터를 복원하기 위해 Restore 명령은 관계형 데이터 원본에 테이블 구조를 다시 만듭니다.

복원 명령에서 Location 요소를 사용하여 ROLAP 개체를 재배치할 수 있습니다. 데이터 원본을 재배치하는 데 사용되는 각 Location 요소에 대해 DataSourceType 속성을 명시적으로 Local으로 설정해야 합니다. Location 요소의ConnectionString 속성을 새 위치의 연결 문자열로 설정해야 합니다. 복원하는 동안 복원 명령은 Location 요소의 DataSourceID 속성으로 식별된 데이터 원본의 연결 문자열을 Location 요소의 ConnectionString 속성 값으로 바꿉습니다.

데이터베이스 동기화

동기화 명령은 지정된 SQL Server Analysis Services 데이터베이스의 데이터와 메타데이터를 다른 데이터베이스와 동기화합니다. Synchronize 명령에는 원본 데이터베이스, 보안 정의를 동기화하는 방법, 동기화할 원격 파티션 및 ROLAP 개체의 동기화를 지정할 수 있는 다양한 속성이 있습니다.

참고

동기화 명령은 서버 관리자 및 데이터베이스 관리자만 실행할 수 있습니다. 원본 데이터베이스와 대상 데이터베이스의 데이터베이스 호환성 수준이 같아야 합니다.

원본 데이터베이스 지정

동기화 명령의 Source 속성에는 ConnectionString과 Object의 두 가지 속성이 포함되어 있습니다. ConnectionString 속성은 원본 데이터베이스를 포함하는 인스턴스의 연결 문자열을 포함하고 Object 속성에는 원본 데이터베이스에 대한 개체 식별자가 포함됩니다.

대상 데이터베이스는 Synchronize 명령이 실행되는 세션의 현재 데이터베이스입니다.

Synchronize 명령의 ApplyCompression 속성이 true로 설정된 경우 원본 데이터베이스에서 대상 데이터베이스로 전송된 정보는 전송되기 전에 압축됩니다.

보안 설정 동기화

SynchronizeSecurity 속성은 Synchronize 명령이 원본 데이터베이스에 정의된 역할 및 권한과 같은 보안 정의를 동기화하는지 여부를 결정합니다. SynchronizeSecurity 속성은 또한 Sychronize 명령에 보안 정의의 멤버로 정의된 Windows 사용자 계정 및 그룹을 포함하는지 여부를 결정합니다.

이 요소의 값은 다음 표에 나열된 문자열 중 하나로 제한됩니다.

설명
SkipMembership 대상 데이터베이스에 보안 정의만 포함되고 멤버 정보는 제외됩니다.
CopyAll 대상 데이터베이스에 보안 정의와 멤버 정보가 포함됩니다.
IgnoreSecurity 대상 데이터베이스에서 보안 정의가 제외됩니다.

원격 파티션 동기화

원본 데이터베이스에 있는 각 원격 데이터 원본에 대해 Synchronize 명령의 Locations 속성에 Location 요소를 포함하여 연결된 각 원격 파티션을 동기화할 수 있습니다. 각 Location 요소에 대해 DataSourceType 속성을 제외하거나 명시적으로 Remote로 설정해야 합니다.

동기화 명령은 대상 데이터베이스의 원격 데이터 원본을 정의하고 연결하기 위해 Location 요소의 ConnectionString 속성에 정의된 연결 문자열을 사용합니다. 그런 다음 동기화 명령은 Location 요소의 DataSourceID 속성을 사용하여 동기화할 원격 파티션을 식별합니다. 동기화명령은 원본 데이터베이스의 DataSourceID 속성에 지정된 원격 데이터 원본의 원격 파티션을 대상 데이터베이스의 DataSourceID 속성에 지정된 원격 데이터 원본과 동기화합니다.

원본 데이터베이스의 원격 데이터 원본에 원격 파티션을 저장하는 데 사용되는 각 원본 폴더에 대해 Location 요소에 Folder 요소를 지정할 수도 있습니다. Folder 요소는 원격 데이터 원본의 원래 폴더에 저장된 모든 원격 파티션을 동기화할 대상 데이터베이스의 새 폴더를 나타냅니다. Folder 요소를 지정하지 않으면 Synchronize 명령은 원본 데이터베이스에 포함된 원격 파티션에 지정된 원래 폴더를 사용합니다.

ROLAP 개체 동기화

이러한 정보는 기본 관계형 데이터 원본의 테이블에 저장되므로 Synchronize 명령은 ROLAP 스토리지를 사용하는 개체에 대한 집계 또는 데이터를 동기화할 수 없습니다. 하지만 ROLAP 개체의 메타데이터는 동기화할 수 있습니다. 메타데이터를 동기화하기 위해 Synchronize 명령은 관계형 데이터 원본에서 테이블 구조를 다시 만듭니다.

Synchronize 명령에서 Location 요소를 사용하여 ROLAP 개체를 동기화할 수 있습니다. 데이터 원본을 재배치하는 데 사용되는 각 Location 요소에 대해 DataSourceType 속성을 명시적으로 Local으로 설정해야 합니다. . Location 요소의ConnectionString 속성을 새 위치의 연결 문자열로 설정해야 합니다. 동기화하는 동안 Synchronize 명령은 Location 요소의 DataSourceID 속성으로 식별되는 데이터 원본의 연결 문자열을 Location 요소의 ConnectionString 속성 값으로 바꿉 있습니다.

참고 항목

Backup 요소(XMLA)
Restore 요소(XMLA)
Synchronize 요소(XMLA)
Analysis Services 데이터베이스 백업 및 복원