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


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

Часто возникают ситуации, когда администратору баз данных служб Службы 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 для аналитики.