Поделиться через


Переключение базы данных служб Analysis Services между режимами ReadOnly и ReadWrite

Нередки ситуации, когда администратору базы данных (dba) служб Analysis Services необходимо изменить режим чтения-записи табличной или многомерной базы данных. Часто это связано с тем, что организации для повышения эффективности обслуживания пользователей необходимо использовать одну базу данных для пула серверов служб Analysis Services.

Существует много способов изменения режима работы базы данных. В этом документе описаны следующие распространенные сценарии:

  • интерактивно с помощью среды Среда SQL Server Management Studio;

  • программным способом с помощью объектов AMO;

  • с помощью скриптов, используя XML для аналитики.

Процедуры

Интерактивное изменение режима чтения-записи базы данных с помощью среды Management Studio

  1. Найдите на левой или правой панели среды Среда Management Studio базу данных для переключения.

  2. Щелкните базу данных правой кнопкой мыши и выберите пункт Свойства. Найдите папку с базой данных и запишите ее расположение. Пустое место хранения для базы данных означает, что папка базы данных находится в папке данных сервера.

    Важное примечаниеВажно!

    После отсоединения базы данных ее расположение будет невозможно определить при помощи среды Среда Management Studio.

  3. Щелкните правой кнопкой мыши базу данных и выберите команду Отсоединить....

  4. Назначьте пароль отсоединяемой базе данных и нажмите кнопку ОК, чтобы выполнить команду отсоединения.

  5. Найдите папку Базы данных на левой или правой панели среды Среда Management Studio.

  6. Щелкните правой кнопкой мыши папку Базы данных и выберите команду Присоединить....

  7. В текстовое поле папка впечатайте начальное местоположение папки базы данных. Выяснить расположение папки базы данных можно также при помощи кнопки обзора ().

  8. Выберите режим чтения/записи для базы данных.

  9. Введите пароль, который использовался в шаге 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);

}

}

  1. В приложении на C# вызовите метод SwitchReadWrite(), указав необходимые параметры.

  2. Скомпилируйте и выполните код для перемещения базы данных.

Изменение режима чтения/записи базы данных с помощью скрипта XML для аналитики

  1. Найдите на левой или правой панели среды Среда Management Studio базу данных для переключения.

  2. Щелкните базу данных правой кнопкой мыши и выберите пункт Свойства. Найдите папку с базой данных и запишите ее расположение. Пустое место хранения для базы данных означает, что папка базы данных находится в папке данных сервера.

    Важное примечаниеВажно!

    После отсоединения базы данных ее расположение будет невозможно определить при помощи среды Среда Management Studio.

  3. Откройте новую вкладку XML для аналитики в среде Среда Management Studio.

  4. Скопируйте следующий шаблон скрипта XML для аналитики.

<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<Object>

<DatabaseID>%dbName%</DatabaseID>

<Password>%password%</Password>

</Object>

</Detach>

  1. Замените шаблон %dbName% именем базы данных, а шаблон %password% — соответствующим паролем. Символы «%» являются частью шаблона, и поэтому их необходимо удалить.

  2. Выполните команду XML для аналитики.

  3. Скопируйте следующий шаблон скрипта 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>

  1. Замените шаблон %dbFolder% полным путем к папке базы данных в формате UNC, шаблон %ReadOnlyMode% — соответствующим значением (ReadOnly или ReadWrite), а шаблон %password% — паролем. Символы «%» являются частью шаблона, и поэтому их необходимо удалить.

  2. Выполните команду XML для аналитики.

См. также

Справочник

Элемент Attach

Элемент Detach

Элемент ReadWriteMode

Элемент DbStorageLocation

Attach

Detach

Основные понятия

Подключение и отключение баз данных служб Analysis Services

Место хранения базы данных

Режимы ReadWriteModes базы данных