Переключение базы данных Служб Analysis Services между режимами только для чтения и чтения-записи

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

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

  • Интерактивное использование SQL Server Management Studio

  • Программное использование AMO

  • При помощи скрипта с использованием XMLA

Процедуры

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

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

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

    Это важно

    Как только база данных отсоединится, Management Studio больше не сможет помочь вам определить местоположение базы данных.

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

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

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

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

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

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

  9. Введите пароль, который использовался на шаге 3, и нажмите кнопку ОК , чтобы выполнить команду присоединения.

Переключение режима чтения и записи в базу данных программным способом с помощью AMO

  1. В приложении 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. Скомпилируйте и выполните код для перемещения базы данных.

Переключить режим чтения и записи в базе данных с помощью скрипта на XMLA

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

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

    Это важно

    Как только база данных будет отсоединена, Management Studio больше не сможет помочь вам получить расположение базы данных.

  3. Откройте новую вкладку XMLA в Management Studio.

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

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

<Object>

<DatabaseID>%dbName%</DatabaseID>

<Password>%password%</Password>

</Object>

</Detach>

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

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

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

<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. Выполните команду XMLA.

См. также

Attach*
Microsoft.AnalysisServices.Database.Detach*
Присоединение и отключение баз данных служб Analysis Services
Расположение хранилища базы данных
Database ReadWriteModes
Присоединить элемент
Открепить элемент
Элемент ReadWriteMode
Элемент DbStorageLocation