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


Службы аналитических сервисов с группами доступности Always On

Группа доступности AlwaysOn — это предопределенная коллекция реляционных баз данных SQL Server, которая совместно выполняет отработку отказа при срабатывании соответствующих условий в любой из баз данных, перенаправляя запросы на зеркальную базу данных в другом экземпляре в той же группе доступности. Если вы используете группы доступности в качестве решения высокого уровня доступности, можно использовать базу данных в этой группе в качестве источника данных в табличном или многомерном решении служб Analysis Services. Все следующие операции служб Analysis Services работают должным образом при использовании базы данных доступности: обработка или импорт данных, запрос реляционных данных напрямую (в режиме ROLAP или DirectQuery) и обратная запись.

Обработка и запросы — это рабочие нагрузки, доступные только для чтения. Вы можете повысить производительность, выгрузив эти рабочие нагрузки на доступную для чтения вторичную реплику. Для этого сценария требуется дополнительная конфигурация. Используйте контрольный список в этом разделе, чтобы убедиться, что вы выполните все действия.

Предпосылки

Для всех реплик необходимо иметь имя входа SQL Server. Необходимо быть системным администратором для настройки групп доступности, прослушивателей и баз данных, но пользователям требуется только db_datareader разрешения на доступ к базе данных из клиента служб Analysis Services.

Используйте поставщик данных, поддерживающий протокол TDS версии 7.4 или более поздней версии, например собственный клиент SQL Server 11.0 или поставщик данных для SQL Server в .NET Framework 4.02.

(Для рабочих нагрузок только для чтения). Роль вторичной реплики должна быть настроена для подключений только для чтения, группа доступности должна иметь список маршрутизации, а подключение в источнике данных служб Analysis Services должно указывать прослушиватель группы доступности. Инструкции приведены в этом разделе.

Контрольный список. Использование вторичной реплики для операций только для чтения

Если решение служб Analysis Services не включает обратную запись, можно настроить подключение к источнику данных для использования доступной для чтения вторичной реплики. Если у вас есть быстрое сетевое подключение, вторичная реплика имеет очень низкую задержку данных, предоставляя практически идентичные данные в качестве основной реплики. Используя вторичную реплику для операций служб Analysis Services, можно уменьшить конфликт между операциями чтения и записи на первичной реплике и улучшить эффективность использования вторичных реплик в группе доступности.

По умолчанию разрешен доступ к первичной реплике как для чтения, так и с намерением записи, а подключения к вторичным репликам по умолчанию не разрешены. Дополнительная конфигурация необходима для настройки подключения клиента только для чтения к вторичной реплике. Для настройки требуются свойства параметров вторичной реплики и выполнение скрипта T-SQL, который определяет список маршрутизации только для чтения. Используйте следующие процедуры, чтобы убедиться, что выполнены оба шага.

Замечание

В следующих шагах предполагается существующая группа доступности AlwaysOn и базы данных. Если вы настраиваете новую группу, используйте мастер создания группы доступности и присоединения к базам данных. Мастер проверяет предварительные требования, предоставляет рекомендации для каждого шага и выполняет начальную синхронизацию. Дополнительные сведения см. в разделе "Использование мастера группы доступности" (SQL Server Management Studio).

Шаг 1. Настройка доступа в реплике доступности

  1. В обозревателе объектов подключитесь к экземпляру сервера, на котором размещена первичная реплика, и разверните дерево сервера.

    Замечание

    Эти шаги взяты из документа "Настройка Read-Only доступа на реплике доступности (SQL Server)", содержащего дополнительные сведения и альтернативные инструкции по выполнению этой задачи.

  2. Разверните узел Высокой доступности AlwaysOn и узел групп доступности .

  3. Щелкните группу доступности, реплика которой требуется изменить. Разверните реплики доступности.

  4. Щелкните правой кнопкой мыши вторичную реплику и выберите пункт "Свойства".

  5. В диалоговом окне "Свойства реплики доступности " измените доступ к подключению для вторичной роли следующим образом:

    • В списке дополнительного раскрывающегося списка с возможностью чтения выберите только намерение чтения.

    • В раскрывающемся списке Подключения в основных ролях выберите Разрешить все подключения. Это значение по умолчанию.

    • При необходимости в раскрывающемся списке режима доступности выберите синхронную фиксацию. Этот шаг не является обязательным, но он гарантирует, что между первичной и вторичной репликой есть четность данных.

      Это свойство также является требованием для плановой отказоустойчивости. Если вы хотите выполнить плановую отработку отказа вручную для тестирования, задайте для режима доступностисинхронную фиксацию как для первичной, так и для вторичной реплики.

Шаг 2. Настройка маршрутизации только для чтения

  1. Подключитесь к первичной реплике.

    Замечание

    Эти шаги взяты из Настройка маршрутизации Read-Only для группы доступности (SQL Server), которая предоставляет дополнительные сведения и альтернативные инструкции для выполнения этой задачи.

  2. Откройте окно запроса и вставьте следующий скрипт. Этот скрипт выполняет три действия: включает доступные для чтения подключения к вторичной реплике (которая отключена по умолчанию), задает URL-адрес маршрутизации только для чтения и создает список маршрутизации, определяющий направление запросов на подключение. Первая инструкция, разрешающая удобочитаемые подключения, является избыточной, если свойства уже заданы в Management Studio, но включены для полноты.

    ALTER AVAILABILITY GROUP [AG1]  
     MODIFY REPLICA ON  
    N'COMPUTER01' WITH   
    (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));  
    
    ALTER AVAILABILITY GROUP [AG1]  
     MODIFY REPLICA ON  
    N'COMPUTER01' WITH   
    (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER01.contoso.com:1433'));  
    
    ALTER AVAILABILITY GROUP [AG1]  
     MODIFY REPLICA ON  
    N'COMPUTER02' WITH   
    (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));  
    
    ALTER AVAILABILITY GROUP [AG1]  
     MODIFY REPLICA ON  
    N'COMPUTER02' WITH   
    (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER02.contoso.com:1433'));  
    
    ALTER AVAILABILITY GROUP [AG1]   
    MODIFY REPLICA ON  
    N'COMPUTER01' WITH   
    (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER02','COMPUTER01')));  
    
    ALTER AVAILABILITY GROUP [AG1]   
    MODIFY REPLICA ON  
    N'COMPUTER02' WITH   
    (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER01','COMPUTER02')));  
    GO  
    
  3. Измените скрипт, заменив заполнители значениями, которые являются допустимыми для вашего развертывания.

    • Замените "Computer01" именем экземпляра сервера, на котором размещена первичная реплика.

    • Замените Computer02 именем экземпляра сервера, на котором размещена вторичная реплика.

    • Замените "contoso.com" именем домена или опустите его из скрипта, если все компьютеры находятся в одном домене. Сохраните номер порта, если прослушиватель использует порт по умолчанию. Порт, который фактически используется прослушивателем, указан на странице свойств в Management Studio.

  4. Выполните скрипт.

    Затем создайте источник данных в модели служб Analysis Services, которая использует базу данных из только что настроенной группы.

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

В этом разделе рассматривается, как создать источник данных службы Analysis Services, который подключается к базе данных в группе доступности. Эти инструкции можно использовать для настройки подключения к первичной реплике (по умолчанию) или доступной для чтения вторичной реплики, настроенной на основе шагов в предыдущем разделе. Параметры конфигурации AlwaysOn, а также свойства подключения, заданные в клиенте, определяют, используется ли первичная или вторичная реплика.

  1. В SQL Server Data Tools в проекте модели многомерной и модели интеллектуального анализа данных в проектах служб Analysis Services щелкните правой кнопкой мыши Источники данных и выберите Новый источник данных. Нажмите кнопку "Создать" , чтобы создать новый источник данных.

    Кроме того, для проекта табличной модели щелкните меню "Модель" и выберите команду "Импорт из источника данных".

  2. В диспетчере соединений в поставщике выберите поставщика, поддерживающий протокол табличного потока данных (TDS). Sql Server Native Client 11.0 поддерживает этот протокол.

  3. В диспетчере соединений, в поле имени сервера, введите имя прослушивателя группы доступности, а затем выберите базу данных, которая доступна в этой группе.

    Прослушиватель группы доступности перенаправляет подключение клиента к первичной реплике для запросов на чтение и запись или в вторичную реплику при указании намерения чтения в строке подключения. Поскольку роли реплики изменяются во время процесса переключения при отказе (где главный становится подчиненным, а подчиненный становится главным), всегда следует указывать слушатель, чтобы подключение клиента перенаправлялось корректно.

    Чтобы определить имя прослушивателя группы доступности, можно попросить администратора базы данных или подключиться к экземпляру в группе доступности и просмотреть конфигурацию доступности AlwaysOn. На снимке экрана ниже прослушиватель группы доступности — AdventureWorks2.

    Папка доступности AlwaysOn в Management Studio

  4. По-прежнему в диспетчере соединений щелкните "Все " в области навигации слева, чтобы просмотреть сетку свойств поставщика данных.

    При настройке подключения клиента только для чтения к вторичной реплике задайте Application Intent на READONLY. В противном случае сохраните значение по умолчанию READWRITE , чтобы перенаправить подключение к первичной реплике.

  5. В разделе "Сведения олицетворения" выберите "Использовать определенное имя пользователя и пароль Windows", а затем введите учетную запись пользователя домена Windows с минимальными разрешениями db_datareader в базе данных.

    Не выбирайте использовать учетные данные текущего пользователя или наследовать. Вы можете выбрать использовать учетную запись службы, но только в том случае, если у этой учетной записи есть разрешения на чтение в базе данных.

    Закончите работу с источником данных и закройте мастер настройки.

  6. Добавьте MultiSubnetFailover=Да в строку подключения, чтобы обеспечить быстрое обнаружение и подключение к активному серверу. Дополнительные сведения об этом свойстве см. в статье SQL Server Native Client Support for High Availability, Аварийное восстановление.

    Это свойство не отображается в сетке свойств. Чтобы добавить свойство, щелкните правой кнопкой мыши источник данных и выберите "Просмотреть код". Добавьте MultiSubnetFailover=Yes в строку подключения.

Теперь определяется источник данных. Теперь можно перейти к созданию модели, начиная с представления источника данных или в случае табличных моделей, создавая связи. Когда вы находитесь в момент, когда данные должны быть получены из базы данных доступности (например, когда вы готовы к обработке или развертыванию решения), можно проверить конфигурацию, чтобы проверить доступ к данным из вторичной реплики.

Тестирование конфигурации.

После настройки вторичной реплики и создания подключения к источнику данных в службах Analysis Services можно убедиться, что команды обработки и запроса перенаправляются на вторичную реплику. Вы также можете выполнить плановое переключение вручную, чтобы проверить план восстановления для этого сценария.

Шаг 1. Подтверждение перенаправления подключения источника данных к вторичной реплике

  1. Запустите SQL Server Profiler и подключитесь к экземпляру SQL Server, на котором размещена вторичная реплика.

    Во время выполнения трассировки события SQL:BatchStarting и SQL:BatchCompleting покажут запросы, отправленные службами Analysis Services и выполняемые в экземпляре СУБД. Эти события выбраны по умолчанию, поэтому все, что необходимо сделать, — запустить трассировку.

  2. В SQL Server Data Tools откройте проект или решение служб Analysis Services, содержащее подключение к источнику данных, которое требуется проверить. Убедитесь, что источник данных указывает на слушатель группы доступности, а не на экземпляр в группе.

    Это важный шаг. Маршрутизация на вторичную реплику не произойдет, если указать имя экземпляра сервера.

  3. Расположите окна приложений, чтобы просмотреть SQL Server Profiler и SQL Server Data Tools параллельно.

  4. Разверните решение и по завершении остановите трассировку.

    В окне трассировки должны отображаться события из приложения Microsoft SQL Server Analysis Services. Вы должны увидеть SELECT инструкции, извлекающие данные из базы данных на сервере, где размещена вторичная реплика, подтверждая, что подключение было выполнено через прослушиватель к вторичной реплике.

Шаг 2. Выполните запланированную аварийную отработку для проверки конфигурации

  1. В Management Studio проверьте первичные и вторичные реплики, чтобы убедиться, что обе реплики настроены на режим синхронной фиксации и в настоящее время синхронизированы.

    В следующих шагах предполагается, что вторичная реплика настроена для синхронного подтверждения.

    Чтобы проверить синхронизацию, откройте подключение к каждому экземпляру, на котором размещены первичные и вторичные реплики, разверните папку "Базы данных" и убедитесь, что база данных ( синхронизирована) и (синхронизация) добавлена к его имени в каждой реплике.

    Замечание

    Эти шаги взяты из Выполнение плановой ручной отработки отказа группы доступности (SQL Server), которая предоставляет дополнительные сведения и альтернативные инструкции по выполнению этой задачи.

  2. В SQL Server Profiler запустите трассировки для каждой реплики и просмотрите трассировки параллельно. В следующих шагах вы сравните трассировки, убедившись, что SQL-запросы, используемые для обработки или запроса из служб Analysis Services, переключаются с одной реплики на другую.

  3. Выполните команду обработки или запроса из служб Analysis Services. Поскольку вы настроили источник данных для подключения в режиме только чтения, вы должны увидеть, как команда выполняется на вторичной реплике.

  4. В Management Studio подключитесь к вторичной реплике.

  5. Разверните узел Высокой доступности AlwaysOn и узел групп доступности .

  6. Щелкните правой кнопкой мыши на группе доступности для отработки отказа и выберите команду Отработка отказа. Это откроет мастер группы доступности для автономного переключения. Используйте мастер для выбора реплики для создания новой первичной реплики.

  7. Убедитесь, что переключение на резервный сервер выполнено успешно:

    • В Management Studio разверните группы доступности, чтобы просмотреть обозначения (первичные) и (вторичные). Экземпляр, который ранее был первичной репликой, теперь должен быть вторичной репликой.

    • Просмотрите панель мониторинга, чтобы определить, обнаружены ли проблемы со работоспособностью. Щелкните правой кнопкой мыши группу доступности и выберите "Показать панель мониторинга".

  8. Подождите одну или две минуты завершения отработки отказа на серверной части.

  9. Повторите команду обработки или запроса в решении Служб Analysis Services, а затем просмотрите трассировки параллельно в SQL Server Profiler. Вы должны увидеть признаки обработки на другом экземпляре, который теперь является новой вторичной репликой.

Что происходит после срабатывания отказа

Во время отказоустойчивости вторичная реплика переходит к роли первичной, а бывшая первичная реплика переходит на роль вторичной. Все клиентские подключения завершаются, управление слушателем группы доступности перемещается вместе с ролью первичной реплики в новый экземпляр SQL Server, и точка подключения слушателя присоединяется к виртуальным IP-адресам и TCP-портам нового экземпляра. Дополнительные сведения см. в разделе о доступе клиента к репликам доступности (SQL Server).

В случае переключения на резерв во время обработки в среде Analysis Services возникает следующая ошибка в файле журнала или окне вывода: "Ошибка OLE DB: OLE DB или ODBC ошибка: Ошибка канала связи; 08S01; Поставщик TPC: существующее подключение было принудительно закрыто удаленным узлом. ; 08S01".

Эта ошибка должна разрешиться, если вы подождете минуту и попробуете снова. Если группа доступности настроена правильно для читаемой вторичной реплики, обработка возобновляется на новой вторичной реплике при повторной обработке.

Постоянные ошибки, скорее всего, вызваны проблемой конфигурации. Вы можете попробовать повторно запустить скрипт T-SQL, чтобы устранить проблемы со списком маршрутизации, URL-адресами маршрутизации только для чтения и режимом чтения на вторичной реплике. Кроме того, следует убедиться, что первичная реплика поддерживает все подключения.

Обратная запись при использовании базы данных доступности AlwaysOn

Функция обратной записи — это особенность служб Analysis Services, поддерживающая анализ "что, если" в Excel. Он также часто используется для бюджетирования и прогнозирования задач в пользовательских приложениях.

Для поддержки обратной записи требуется подключение клиента READWRITE. В Excel при попытке обратной записи при подключении только для чтения возникает следующая ошибка: "Данные не удалось извлечь из внешнего источника данных". "Не удалось извлечь данные из внешнего источника данных".

Если вы настроили подключение для постоянного доступа к доступной для чтения вторичной реплике, необходимо настроить новое подключение, использующее подключение READWRITE к первичной реплике.

Для этого создайте дополнительный источник данных в модели служб Analysis Services для поддержки подключения чтения и записи. При создании дополнительного источника данных используйте то же имя прослушивателя и базу данных, которые вы указали в подключении только для чтения, но вместо изменения намерения приложения сохраните значение по умолчанию, которое поддерживает подключения READWRITE. Теперь вы можете добавить новые таблицы фактов или измерений в представление источника данных, основанные на источнике данных для чтения и записи, а затем включить обратную запись в новых таблицах.

См. также

Слушатели групп доступности, подключение клиентов и отказоустойчивость приложений (SQL Server)
Активные вторичные реплики: доступные для чтения вторичные реплики (группы доступности AlwaysOn)
Политики AlwaysOn для операционных проблем с группами доступности AlwaysOn (SQL Server)
Создание источника данных (многомерный SSAS)
Включение обратной записи измерений