Переключение базы данных служб Analysis Services между режимами ReadOnly и ReadWrite
Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
SQL Server Analysis Services администраторы баз данных могут изменить режим чтения и записи табличной или многомерной базы данных в рамках более широких усилий, которые распределяют рабочую нагрузку запросов между несколькими серверами только для запросов.
Существует несколько способов изменения режима работы базы данных. В этом документе описаны следующие распространенные сценарии:
Интерактивное использование SQL Server Management Studio
программным способом с помощью объектов AMO;
с помощью скриптов XMLA или TMSL.
Интерактивное изменение режима чтения и записи базы данных с помощью среды Management Studio
В обозреватель объектов щелкните правой кнопкой мыши базу данных и выберите Свойства.
Запишите расположение. Пустое место хранения для базы данных означает, что папка базы данных находится в папке данных сервера.
Щелкните правой кнопкой мыши базу данных и выберите Команду Отсоединить...
Назначьте пароль отсоединяемой базе данных и нажмите кнопку ОК , чтобы выполнить команду отсоединения.
В обозреватель объектов щелкните правой кнопкой мыши папку Базы данных и выберите Подключить...
В текстовом поле папка введите начальное местоположение папки базы данных. Кроме того, можно использовать кнопку обзора (...), чтобы найти папку базы данных.
Выберите режим чтения/записи для базы данных.
Введите пароль и нажмите кнопку ОК , чтобы выполнить команду присоединения.
Программное изменение режима чтения и записи базы данных с помощью объектов AMO
В приложении на C# вызовите метод SwitchReadWrite()
, указав необходимые параметры. Скомпилируйте и выполните код для перемещения базы данных.
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 dataDir = server.ServerProperties["DataDir"].Value;
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);
}
}
Изменение режима чтения и записи базы данных с помощью скрипта XMLA
Следующие инструкции применяются к многомерным и табличным базам данных в режиме совместимости 1050, 1100 или 1103.
В обозреватель объектов щелкните правой кнопкой мыши базу данных и выберите Свойства.
Запишите расположение. Пустое место хранения для базы данных означает, что папка базы данных находится в папке данных сервера.
Щелкните правой кнопкой мыши базу данных и выберите Команду Отсоединить...
Откройте новую вкладку XMLA в Среде Management Studio.
Скопируйте следующий шаблон скрипта XML для аналитики.
<Detach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Object> <DatabaseID>%dbName%</DatabaseID> <Password>%password%</Password> </Object> </Detach>
Замените шаблон
%dbName%
именем базы данных, а шаблон%password%
— соответствующим паролем. Символы «%» являются частью шаблона, и поэтому их необходимо удалить.Выполните команду XML для аналитики.
Скопируйте следующий шаблон скрипта XML для аналитики в новую вкладку XML для аналитики.
<Attach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Folder>%dbFolder%</Folder> <ReadWriteMode xmlns="http://schemas.microsoft.com/analysisservices/2008/engine/100">%ReadOnlyMode%</ReadWriteMode> </Attach>
Замените шаблон
%dbFolder%
полным путем к папке базы данных в формате UNC, шаблон%ReadOnlyMode%
— соответствующим значением ( ReadOnly или ReadWrite), а шаблон%password%
— паролем. Символы «%» являются частью шаблона, и поэтому их необходимо удалить.Выполните команду XML для аналитики.
См. также:
Высокий уровень доступности и масштабируемость в службах Analysis Services
Присоединение и отсоединение баз данных служб Analysis Services
Место хранения базы данных
Режимы ReadWriteModes базы данных
Элемент Attach
Элемент Detach
Элемент ReadWriteMode
Элемент DbStorageLocation