Резервное копирование, восстановление и синхронизация баз данных (XMLA)

В XML для аналитики есть три команды для резервирования, восстановления и синхронизации баз данных:

  • Команда Backup резервирует базы данных служб MicrosoftSQL ServerAnalysis Services и сохраняет их в файлы резервных копий служб Analysis Services (.abf), как описано в разделе Резервное копирование баз данных.

  • Команда Restore восстанавливает базу данных служб Analysis Services из файла .abf, как описано в разделе Восстановление баз данных.

  • Команда Synchronize синхронизирует одну базу данных служб Analysis Services с данными и метаданными другой базы данных, как описано в разделе Синхронизация баз данных.

Резервирование баз данных

Как уже отмечалось, команда Backup выполняет резервное копирование указанной базы данных служб Analysis Services в файл резервной копии. Команда Backup имеет различные свойства, позволяющие указывать базу данных для резервирования, файл резервной копии, способ резервного копирования определений безопасности и удаленные секции для резервирования.

Примечание по безопасностиПримечание по безопасности

 Пользователь, выполняющий команду резервного копирования, должен иметь разрешение на запись в папку резервного копирования, указанной для каждого копируемого файла. Кроме того, пользователь должен входить в одну из следующих ролей: роль сервера для экземпляра служб Analysis Services или роль базы данных с разрешениями «Полный доступ (Администратор)» в базе данных, для которой создается резервная копия.

Задание базы данных и файла резервной копии

Чтобы указать базу данных для резервного копирования задается свойство Object команды Backup. Свойство Object должно содержать идентификатор объекта для базы данных, в противном случае возникнет ошибка.

Свойство File команды Backup задается, чтобы указать файл, который должен быть создан и использован для резервного копирования. Свойству File должен быть задан путь в формате UNC и имя для создаваемого файла резервной копии.

Помимо указания файла, в который будет произведено резервирование, для него также можно задать следующие параметры:

  • Если свойству AllowOverwrite задать значение TRUE, команда Backup перепишет файл резервной копии, если указанный файл уже существует. Если свойству AllowOverwrite задать значение FALSE, то в случае существования указанного файла резервной копии возникнет ошибка.

  • Если свойству ApplyCompression установить значение TRUE, то после создания файла резервной копии он будет сжат.

  • Если свойству Password будет задано любое непустое значение, файл резервной копии будет зашифрован при помощи указанного пароля.

    Примечание по безопасностиПримечание по безопасности

    Если свойства ApplyCompression и Password не заданы, то в файле резервной копии имена пользователей и пароли, содержащиеся в строках соединений, будут сохранены в виде открытого текста. Данные, хранящиеся в виде открытого текста, можно извлечь. Для обеспечения более высокого уровня безопасности используйте параметры ApplyCompression и Password, чтобы сжимать и шифровать файл резервной копии.

Резервное копирование параметров безопасности

Свойство Security определяет, будет ли команда Backup создавать резервные копии определений безопасности, таких, как роли и права доступа, определенные в базе данных служб Analysis Services. Свойство Security также определяет, будут ли учетные записи пользователей и группы Windows, определенные, как члены определений безопасности, включены в файл резервной копии.

Значением свойства Security может быть только одна из строк в следующей таблице.

Значение

Description

SkipMembership

Включает определения безопасности, но исключает сведения о членстве из файла резервной копии.

CopyAll

Включает определения безопасности и сведения о членстве в файл резервной копии.

IgnoreSecurity

Исключает определения безопасности из файла резервной копии.

Резервирование удаленных секций

Чтобы создавать резервные копии удаленных секций в базе данных служб Analysis Services свойству BackupRemotePartitions команды Backup задается значение TRUE. C этим параметром команда Backup создает удаленный файл резервной копии для каждого удаленного источника данных, который используется для хранения удаленных секций базы данных.

Соответствующий файл резервной копии для каждого резервируемого удаленного источника данных можно указать, включив элемент Location в свойство Locations команды Backup. Свойству File элемента Location следует задать путь в формате UNC и имя файла удаленного файла резервной копии, а свойству DataSourceID этого элемента — идентификатор удаленного источника данных, определенный в базе данных.

Восстановление баз данных

Команда Restore восстанавливает указанную базу данных служб Analysis Services из файла резервной копии. Команда Restore имеет различные свойства, позволяющие указывать базу данных для восстановления, файл резервной копии, метод восстановления определений безопасности, удаленные секции для хранения и перемещение реляционных объектов OLAP (ROLAP).

Примечание по безопасностиПримечание по безопасности

Пользователь, выполняющий команду восстановления, должен иметь разрешение на чтение из папки резервного копирования, указанной для каждого файла резервной копии. Чтобы восстановить базу данных служб Analysis Services, которая не установлена на сервере, пользователь также должен быть членом роли сервера для этого экземпляра служб Analysis Services. Чтобы перезаписать базу данных служб Analysis Services, пользователь должен входить в одну из следующих ролей: член роли сервера для экземпляра служб Analysis Services или член роли базы данных с разрешениями «Полный доступ (Администратор)» в восстанавливаемой базе данных.

ПримечаниеПримечание

После восстановления существующей базы данных пользователь, выполнявший восстановление, может утратить доступ к этой базе данных. Потеря доступа может произойти в случае, если на время создания резервной копии этот пользователь не был членом роли сервера и роли базы данных с разрешением «Полный доступ (Администратор)».

Задание базы данных и файла резервной копии

Свойство DatabaseName команды Restore должно содержать идентификатор объекта для базы данных, в противном случае возникнет ошибка. Если указанная база данных уже существует, свойство AllowOverwrite определяет, будет ли она переписана. Если свойство AllowOverwrite имеет значение FALSE, а указанная база данных уже существует, возникает ошибка.

Свойству File команды Restore следует задать путь в формате UNC и имя файла резервной копии, из которого будет восстановлена указанная база данных. Для выбранного файла резервной копии также можно задать свойство Password. Если свойство Password имеет любое непустое значение, файл резервной копии будет расшифрован при помощи указанного пароля. Если файл резервной копии не был расшифрован, либо если указанный пароль не совпадает с паролем, использованным для шифрования файла резервной копии, возникает ошибка.

Восстановление параметров безопасности

Свойство Security определяет, будет ли команда Restore восстанавливать определения безопасности, например роли и права доступа, определенные в базе данных служб Analysis Services. Свойство Security также определяет, будет ли команда Restore включать учетные записи пользователей и группы Windows, определенные, как члены определений безопасности, в процесс восстановления.

Значением этого элемента может быть только одна из строк в следующей таблице.

Значение

Description

SkipMembership

Включает определения безопасности, но исключает сведения о членстве из базы данных.

CopyAll

Включает определения безопасности и сведения о членстве в базу данных.

IgnoreSecurity

Исключает определения безопасности из базы данных.

Восстановление удаленных секций

Восстановить удаленную секцию, связанную с каждым удаленным файлом резервной копии, который был создан при выполнении предыдущей команды Backup, можно, включив элемент Location в свойство Locations команды Restore. Свойство DataSourceType для каждого элемента Location следует исключить, либо явно задать ему значение Remote.

По каждому элементу Location экземпляр служб Analysis Services связывается с удаленным источником данных, указанном в свойстве DataSourceID, чтобы восстановить секции, определенные в удаленном файле резервной копии, который указан в свойстве File. Помимо свойств DataSourceID и File для каждого элемента Location, используемого для восстановления удаленной секции, доступны следующие свойства:

  • Чтобы переопределить строку соединения для удаленного источника данных, указанного в свойстве DataSourceID, свойству ConnectionString элемента Location можно задать другую строку соединения. В этом случае команда Restore будет использовать строку соединения, содержащуюся в свойстве ConnectionString. Если свойство ConnectionString не задано, команда Restore будет использовать строку соединения, хранящуюся в файле резервной копии для указанного удаленного источника данных. Параметр ConnectionString можно использовать для перемещения удаленной секции в другой удаленный экземпляр. Однако использовать параметр ConnectionString для восстановления удаленной секции в тот же экземпляр, который содержит восстановленную базу данных, невозможно. Другими словами, свойство ConnectionString нельзя использовать для преобразования удаленной секции в локальную секцию.

  • Элемент Folder можно указать для каждой первоначальной папки, используемой для восстановления удаленных секций в удаленной источнике данных, чтобы указать новую папку, в которую должны быть восстановлены все удаленные секции, хранящиеся в первоначальной папке. Если элемент Folder не задан, команда Restore использует первоначальные папки, указанные для удаленных секций, содержащихся в удаленном файле резервной копии.

Перемещение объектов ROLAP

Команда Restore не может восстанавливать агрегаты или данные для объектов, использующих режим хранения ROLAP, поскольку такие сведения в базовом реляционном источнике данных хранятся в таблицах. Однако метаданные объектов ROLAP восстановить можно. Чтобы восстановить метаданные объекта ROLAP, команда Restore создает повторно в реляционном источнике данных структуру таблицы.

Элемент Location можно использовать в команде Restore для перемещения объектов ROLAP. Для каждого элемента Location, используемого для перемещения источника данных, необходимо явно установить свойство DataSourceType в значение Local. Также необходимо задать строку соединения для нового расположения в свойстве ConnectionString элемента Location. Во время восстановления команда Restore заменит строку соединения для источника данных, определенного свойством DataSourceID элемента Location, на значение свойства ConnectionString элемента Location.

Синхронизация баз данных

Команда Synchronize синхронизует данные и метаданные указанной базы данных служб Analysis Services с другой базой данных. Команда Synchronize имеет различные свойства, позволяющие указывать базу данных-источник, метод синхронизации определений безопасности, удаленные секции для синхронизации и синхронизацию объектов ROLAP.

ПримечаниеПримечание

Выполнять команду Synchronize могут только администраторы серверов и баз данных.

Указание базы данных-источника

Свойство Source команды Synchronize содержит два свойства, ConnectionString и Object. Свойство ConnectionString содержит сроку соединения экземпляра, в котором находится база данных-источник, а свойство Object содержит идентификатор объекта для базы данных-источника.

Целевой базой данных является текущая база данных в сеансе, в рамках которого выполняется команда Synchronize.

Если свойству ApplyCompression команды Synchronize задано значение TRUE, сведения, отправляемые из базы данных-источника в целевую, сжимаются перед отправкой.

Синхронизация параметров безопасности

Свойство SynchronizeSecurity определяет, будет ли команда Synchronize синхронизировать определения безопасности, например роли и права доступа, определенные в базе данных-источнике. Свойство SynchronizeSecurity также определяет, включает ли команда Sychronize учетные записи пользователей и группы Windows, определенные, как члены определений безопасности.

Значением этого элемента может быть только одна из строк в следующей таблице.

Значение

Description

SkipMembership

Включает определения безопасности, но исключает сведения о членстве из целевой базы данных.

CopyAll

Включает определения безопасности и сведения о членстве в целевую базу данных.

IgnoreSecurity

Исключает определения безопасности из целевой базы данных.

Синхронизация удаленных секций

Каждую удаленную секцию, связанную с каждым удаленным источником данных, существующим в базе данных-источнике, можно синхронизировать, включив элемент Location в свойство Locations команды Synchronize. Для каждого элемента Location свойство DataSourceType должно быть исключено, либо ему должно быть явно задано значение Remote.

Чтобы определить соединение с удаленным источником данных в целевой базе данных, команда Synchronize использует строку соединения, указанную в свойстве ConnectionString элемента Location. После этого команда Synchronize будет использовать свойство DataSourceID элемента Location для определения того, какие удаленные секции синхронизировать. Команда Synchronize синхронизирует удаленные секции в удаленном источнике данных, указанном в свойстве DataSourceID с базой данных-источником, с удаленным источником данных, указанном в свойстве DataSourceID целевой базы данных.

Кроме того, для каждой первоначальной папки, в которой хранятся удаленные секции в удаленном источнике данных базы данных-источника можно указать элемент Folder в элементе Location. Элемент Folder указывает новую папку для целевой базы данных, в которой следует синхронизировать все удаленные секции, хранящиеся в первоначальной папке в удаленном источнике данных. Если элемент Folder не задан, команда «Synchronize» будет использовать первоначальные папки, указанные для удаленных секций, содержащихся в базе данных-источнике.

Синхронизация объектов ROLAP

Команда Synchronize не может синхронизировать агрегаты или данные для объектов, использующих режим хранения ROLAP, поскольку такие сведения хранятся в таблицах в базовом реляционном источнике данных. Однако метаданные объектов ROLAP синхронизировать можно. Чтобы синхронизировать метаданные, команда Synchronize создает повторно структуру таблицы в реляционном источнике данных.

Элемент Location можно использовать в команде «Synchronize» для синхронизации объектов ROLAP. Для каждого элемента Location, используемого для перемещения источника данных, необходимо явно установить свойство DataSourceType в значение Local. . Также необходимо задать строку соединения для нового расположения в свойстве ConnectionString элемента Location. Во время синхронизации команда Synchronize заменит строку соединения для источника данных, определенного свойством DataSourceID элемента Location, на значение свойства ConnectionString элемента Location.