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


Переключение базы данных служб 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

  1. В обозреватель объектов щелкните правой кнопкой мыши базу данных и выберите Свойства.

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

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

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

  4. В обозреватель объектов щелкните правой кнопкой мыши папку Базы данных и выберите Подключить...

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

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

  7. Введите пароль и нажмите кнопку ОК , чтобы выполнить команду присоединения.

Программное изменение режима чтения и записи базы данных с помощью объектов 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.

  1. В обозреватель объектов щелкните правой кнопкой мыши базу данных и выберите Свойства.

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

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

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

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

    <Detach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">  
       <Object>  
          <DatabaseID>%dbName%</DatabaseID>  
          <Password>%password%</Password>  
       </Object>  
    </Detach>  
    
  5. Замените шаблон %dbName% именем базы данных, а шаблон %password% — соответствующим паролем. Символы «%» являются частью шаблона, и поэтому их необходимо удалить.

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

  7. Скопируйте следующий шаблон скрипта 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>  
    
  8. Замените шаблон %dbFolder% полным путем к папке базы данных в формате UNC, шаблон %ReadOnlyMode% — соответствующим значением ( ReadOnly или ReadWrite), а шаблон %password% — паролем. Символы «%» являются частью шаблона, и поэтому их необходимо удалить.

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

См. также:

Высокий уровень доступности и масштабируемость в службах Analysis Services
Присоединение и отсоединение баз данных служб Analysis Services
Место хранения базы данных
Режимы ReadWriteModes базы данных
Элемент Attach
Элемент Detach
Элемент ReadWriteMode
Элемент DbStorageLocation