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


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

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

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

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

Изменения емкости или рабочей области Fabric могут повлиять на зеркальное отображение. Дополнительные сведения см. о влиянии на зеркальное отображение из-за изменений в емкости Fabric.

Устранение неполадок с базой данных SQL Azure

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

Дополнительные сценарии устранения неполадок см. в статье "Устранение неполадок зеркальных баз данных Fabric " Microsoft Fabric".

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

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

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

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

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

    EXEC sp_help_change_feed;
    

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

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

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

Манажируемая идентичность

Необходимо включить управляемое удостоверение, назначенное системой (SAMI), или управляемое удостоверение, назначенное пользователем (UAMI) логического сервера Azure SQL, и одно из них должно быть основным удостоверением.

Замечание

Поддержка управляемой идентичности, назначаемой пользователем (UAMI), сейчас представлена в предварительной версии.

Проверьте верную первичную идентификацию с помощью следующего запроса Transact-SQL:

SELECT * FROM sys.dm_server_managed_identities;

Дополнительные сведения см. в статье "Создание сервера базы данных SQL Azure".

Разрешения для управляемых удостоверений

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

При создании зеркальной базы данных на портале Fabric разрешение предоставляется автоматически. Если во время установки возникла ошибка Unable to grant required permission to the source server. User does not have permission to reshare , убедитесь, что у вас есть роль участника или администратора в рабочей области с достаточными привилегиями. При использовании API или CI/CD для создания зеркальной базы данных убедитесь, что вы явно предоставляете разрешение.

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

Если вы удалите разрешения SAMI и/или UAMI для Azure SQL Database, или если разрешения настроены неправильно, воспользуйтесь шагами, приведенными в разделе "Учебник" для их настройки.

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

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

Пользователи базы данных, созданные с помощью имен входа Microsoft Entra, могут столкнуться с задержками при предоставлении ролей и разрешений. Это может привести к ошибке, например на портале Fabric:

"The database cannot be mirrored to Fabric due to below error: Unable to retrieve SQL Server managed identities. A database operation failed with the following error: 'VIEW SERVER SECURITY STATE permission was denied on object 'server', database 'master'. The user does not have permission to perform this action.' VIEW SERVER SECURITY STATE permission was denied on object 'server', database 'master'. The user does not have permission to perform this action. SqlErrorNumber=300,Class=14,State=1, Activity ID: ..."

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

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

Использование журнала транзакций

Использование журнала транзакций для базы данных, включенной в режиме зеркального отображения, может продолжать расти и препятствовать усечению журнала. После того как размер журнала транзакций достигает максимального предела, запись в базу данных завершается неудачей. Для защиты от этого зеркалирование активирует автоматическое повторное засевание всей базы данных, когда используемое пространство журнала превышает пороговое значение общего настроенного пространства журнала. Чтобы диагностировать эту проблему и узнать об автоматическом повторном слиянии, см. статью «Автоматическое повторное слияние для зеркальных баз данных Fabric» из базы данных SQL Azure.

Переинициализация автоматически запущена

Зеркальное отображение структуры из базы данных SQL Azure может автоматически изменяться в определенных условиях на отдельном уровне таблицы или для всей базы данных. Дополнительные сведения см. в автоматическом восстановлении зеркальных баз данных Fabric в базе данных Azure SQL.