Переключение базы данных служб Analysis Services между режимами ReadOnly и ReadWrite
Нередки ситуации, когда администратору базы данных (dba) служб Analysis Services необходимо изменить режим чтения-записи табличной или многомерной базы данных. Часто это связано с тем, что организации для повышения эффективности обслуживания пользователей необходимо использовать одну базу данных для пула серверов служб Analysis Services.
Существует много способов изменения режима работы базы данных. В этом документе описаны следующие распространенные сценарии:
интерактивно с помощью среды Среда SQL Server Management Studio;
программным способом с помощью объектов AMO;
с помощью скриптов, используя XML для аналитики.
Процедуры
Интерактивное изменение режима чтения-записи базы данных с помощью среды Management Studio
Найдите на левой или правой панели среды Среда Management Studio базу данных для переключения.
Щелкните базу данных правой кнопкой мыши и выберите пункт Свойства. Найдите папку с базой данных и запишите ее расположение. Пустое место хранения для базы данных означает, что папка базы данных находится в папке данных сервера.
Важно! После отсоединения базы данных ее расположение будет невозможно определить при помощи среды Среда Management Studio.
Щелкните правой кнопкой мыши базу данных и выберите команду Отсоединить....
Назначьте пароль отсоединяемой базе данных и нажмите кнопку ОК, чтобы выполнить команду отсоединения.
Найдите папку Базы данных на левой или правой панели среды Среда Management Studio.
Щелкните правой кнопкой мыши папку Базы данных и выберите команду Присоединить....
В текстовое поле папка впечатайте начальное местоположение папки базы данных. Выяснить расположение папки базы данных можно также при помощи кнопки обзора (…).
Выберите режим чтения/записи для базы данных.
Введите пароль, который использовался в шаге 3, и нажмите кнопку ОК, чтобы выполнить команду присоединения.
Программное изменение режима чтения/записи базы данных с помощью объектов AMO
- В приложении на C# проведите адаптацию следующего образца кода и выполните указанные задачи.
private void SwitchReadWrite(Server server, string dbName,
ReadWriteMode dbReadWriteMode)
{
if (server.Databases.ContainsName(dbName))
{
Database db;
string databaseLocation;
db = server.Databases[dbName];
databaseLocation = db.DbStorageLocation;
if (databaseLocation == null)
{
string dataDir = server.ServerProperties["DataDir"].Value;
String[] possibleFolders = Directory.GetDirectories(dataDir, string.Concat(dbName,"*"), SearchOption.TopDirectoryOnly);
if (possibleFolders.Length > 1)
{
List<String> sortedFolders = new List<string>(possibleFolders.Length);
sortedFolders.AddRange(possibleFolders);
sortedFolders.Sort();
databaseLocation = sortedFolders[sortedFolders.Count - 1];
}
else
{
databaseLocation = possibleFolders[0];
}
}
db.Detach();
server.Attach(databaseLocation, dbReadWriteMode);
}
}
В приложении на C# вызовите метод SwitchReadWrite(), указав необходимые параметры.
Скомпилируйте и выполните код для перемещения базы данных.
Изменение режима чтения/записи базы данных с помощью скрипта XML для аналитики
Найдите на левой или правой панели среды Среда Management Studio базу данных для переключения.
Щелкните базу данных правой кнопкой мыши и выберите пункт Свойства. Найдите папку с базой данных и запишите ее расположение. Пустое место хранения для базы данных означает, что папка базы данных находится в папке данных сервера.
Важно! После отсоединения базы данных ее расположение будет невозможно определить при помощи среды Среда Management Studio.
Откройте новую вкладку XML для аналитики в среде Среда Management Studio.
Скопируйте следующий шаблон скрипта XML для аналитики.
<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>%dbName%</DatabaseID>
<Password>%password%</Password>
</Object>
</Detach>
Замените шаблон %dbName% именем базы данных, а шаблон %password% — соответствующим паролем. Символы «%» являются частью шаблона, и поэтому их необходимо удалить.
Выполните команду XML для аналитики.
Скопируйте следующий шаблон скрипта XML для аналитики в новую вкладку XML для аналитики.
<Attach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Folder>%dbFolder%</Folder>
<ReadWriteMode xmlns="https://schemas.microsoft.com/analysisservices/2008/engine/100">%ReadOnlyMode%</ReadWriteMode>
</Attach>
Замените шаблон %dbFolder% полным путем к папке базы данных в формате UNC, шаблон %ReadOnlyMode% — соответствующим значением (ReadOnly или ReadWrite), а шаблон %password% — паролем. Символы «%» являются частью шаблона, и поэтому их необходимо удалить.
Выполните команду XML для аналитики.
См. также
Справочник
Attach