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


Устранение проблем с зеркальными базами данных Fabric из Azure SQL Database

В этой статье рассматриваются действия по устранению неполадок для зеркалирования базы данных SQL Azure.

Сведения об устранении неполадок с автоматически настроенным зеркалированием базы данных SQL Fabric см. в разделе Устранение неполадок зеркалирования в базе данных SQL Fabric (предварительная версия).

Изменения вместимости или рабочей области системы Fabric

Дополнительные сведения см. в изменениях в емкости Fabric.

Кроме того, обратите внимание на следующую таблицу для устранения неполадок с базой данных SQL Azure:

Причина Результат Рекомендуемое решение
Рабочая область удалена Зеркальное отображение останавливается автоматически и отключает поток изменений в SQL базе данных Azure. Если зеркалирование по-прежнему активно в базе данных SQL Azure, выполните следующую хранимую процедуру в базе данных SQL Azure: exec sp_change_feed_disable_db;.
Любые другие ошибки ресурсов Зеркальное отображение отключено Чтобы гарантировать, что ваши вычислительные ресурсы не затронуты и защищены в базе данных SQL Azure, зеркальное отображение может быть отключено при возникновении любых постоянных ошибок ресурсов.
Параметр "Пользователи могут получать доступ к данным, хранящимся в OneLake, с использованием приложений, не связанных с Fabric", отключен. "Репликатор — таблицы не могут достичь состояния репликации" Включите опцию клиента Пользователи могут получить доступ к данным, хранящимся в OneLake, с приложениями, не относящимися к Fabric.

Запросы T-SQL для устранения неполадок

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

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

    SELECT * FROM sys.dm_change_feed_log_scan_sessions;
    
  2. Если динамические представления управления (DMV) не показывают никакого прогресса в обработке инкрементных изменений, выполните следующий T-SQL запрос, чтобы проверить, есть ли какие-либо проблемы:

    SELECT * FROM sys.dm_change_feed_errors;
    
  3. Если нет никаких зарегистрированных проблем, выполните следующую хранимую процедуру, чтобы просмотреть текущую конфигурацию зеркальной базы данных SQL Azure. Убедитесь, что он был правильно включен.

    EXEC sp_help_change_feed;
    

    Здесь следует обратить внимание на ключевые столбцы table_name и state. Любое значение, кроме того 4 , указывает на потенциальную проблему.

  4. Если репликация по-прежнему не работает, убедитесь, что правильный объект SAMI имеет разрешения.

    1. На портале Fabric выберите опцию с многоточием для элемента зеркальной базы данных.
    2. Выберите параметр "Управление разрешениями".
    3. Убедитесь, что имя логического сервера SQL Azure отображается с разрешениями на чтение, запись.
    4. Убедитесь, что Идентификатор приложения, который отображается, соответствует идентификатору SAMI логического сервера вашей базы данных SQL Azure.
  5. Обратитесь в службу поддержки , если требуется устранение неполадок.

Управляемая идентичность

Управляемое удостоверение, назначенное системой (SAMI) для логического сервера SQL Azure, должно быть включено и выступать в качестве основного удостоверения. Дополнительные сведения см. в статье "Создание сервера базы данных SQL Azure". Включите SAMI на портале Azure в меню ресурсов в разделе "Безопасность" на странице "Удостоверение ".

После включения, если настройка SAMI выключена или изначально включена, затем выключена, а потом снова включена, зеркальное отображение базы данных SQL Azure в Fabric OneLake не удастся.

SAMI должен быть основным удостоверением. Убедитесь, что SAMI является основным идентификатором со следующим скриптом T-SQL: SELECT * FROM sys.dm_server_managed_identities;

Управляемая идентичность, назначаемая пользователем (UAMI), не поддерживается. При добавлении UAMI он становится основным удостоверением, заменяя SAMI как основное. Это приводит к сбою репликации. Чтобы устранить проблему, сделайте следующее:

  • Удалите все UAMI. Убедитесь, что SAMI включен.

Разрешения SAMI

Системно назначенное управляемое удостоверение (SAMI) логического сервера SQL Azure должно иметь разрешения на чтение и запись для элемента зеркальной базы данных в Microsoft Fabric. При создании зеркальной базы данных на портале Fabric разрешение предоставляется автоматически. Если во время установки возникла ошибка Unable to grant required permission to the source server. User does not have permission to reshare , убедитесь, что у вас есть роль участника или администратора в рабочей области с достаточными привилегиями. При использовании API для создания зеркальной базы данных убедитесь, что вы предоставляете разрешение явным образом.

Не удаляйте разрешения на чтение и запись SAMI в зеркальном элементе базы данных Fabric. Если вы случайно удалите разрешения, зеркальное отображение базы данных SQL Azure не будет работать должным образом. Новые данные не могут быть зеркально отражены из исходной базы данных.

Если вы удалите разрешения SAMI для базы данных Azure SQL или они неправильно настроены, выполните следующие действия.

  1. Добавьте SAMI в качестве пользователя, выбрав ... опцию многоточия рядом с элементом зеркальной базы данных.
  2. Выберите параметр "Управление разрешениями".
  3. Введите имя логического сервера базы данных Azure SQL. Предоставьте разрешения на чтение и запись .

Ошибки устаревших разрешений при входах Microsoft Entra

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

Пользователи базы данных, созданные с помощью имен входа Microsoft Entra, могут столкнуться с задержками при предоставлении ролей и разрешений. Это может привести к ошибке, например на портале Fabric: "База данных не может быть зеркально отображена в Fabric из-за следующей ошибки: не удается получить управляемые удостоверения SQL Server. Не удалось выполнить операцию с базой данных, возникла следующая ошибка: "Разрешение VIEW SERVER SECURITY STATE было отказано для объекта 'server', базы данных 'master'". У пользователя нет разрешения на выполнение этого действия. Разрешение VIEW SERVER SECURITY STATE было запрещено на объекте 'сервер', базе данных 'master'. У пользователя нет разрешения на выполнение этого действия. SqlErrorNumber=300,Class=14,State=1, идентификатор действия: ..."

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

  • Удалите пользователя из пользовательской базы данных.
  • Выполните, DBCC FREESYSTEMCACHE('TokenAndPermUserStore') чтобы очистить кэши безопасности в базе данных.
  • Выполните DBCC FLUSHAUTHCACHE, чтобы очистить кэш контекста федеративной аутентификации.
  • В пользовательской базе данных повторно создайте пользователя на основе имени входа.