Известные проблемы с Управляемым экземпляром SQL Azure

Применимо к:Управляемый экземпляр SQL Azure

В этой статье перечислены известные проблемы с Управляемый экземпляр SQL Azure, а также дата их решения или возможный обходной путь. Дополнительные сведения о Управляемый экземпляр SQL Azure см. в статье "Что такое Управляемый экземпляр SQL Azure?", а также новые возможности Управляемый экземпляр SQL Azure?

Примечание.

Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).

Известные проблемы

Проблема Дата обнаружения Состояние Дата разрешения
Список долгосрочных резервных копий в портал Azure отображает файлы резервных копий для активных и удаленных баз данных с тем же именем. Мар 2024 г. Существует обходной путь
Доступность временного экземпляра с помощью прослушивателя группы отработки отказа во время операции масштабирования Январь 2024 г. Нет разрешения
Недоступен целевой объект event_file сеанса событий system_health Декабрь 2023 г. Существует обходной путь
Procedure sp_send_dbmail might fail when @query parameter is used on Nov22FW enabled managed instances Декабрь 2023 г. Существует обходной путь
Увеличение количества системных имен входа, используемых для реплика транзакций Декабрь 2022 г. Нет разрешения
Таблица msdb для резервных копий вручную не сохраняет имя пользователя Ноябрь 2022 г. Нет разрешения
Промежуточное руководство по обновлениям часового пояса 2022 года для Чили Август 2022 г. Существует обходной путь
Запрос к внешней таблице завершается ошибкой с сообщением "Не поддерживается" Январь 2022 г. "Разрешено" Сентябрь 2022 г.
При использовании проверки подлинности SQL Server имена пользователей с именем @не поддерживаются Октябрь 2021 г. "Разрешено" Февраль 2022 г.
Неправильное сообщение об ошибке на портале Azure с предложением повторно создать субъект-службу Сентябрь 2021 г. Октябрь 2021 г.
Изменение типа подключения не влияет на подключения через конечную точку группы отработки отказа январь 2021г. Существует обходной путь
Procedure sp_send_dbmail might transiently fail when @query parameter is used январь 2021г. "Разрешено" Март 2022 г.
Распределенные транзакции можно выполнять после удаления Управляемого экземпляра Базы данных SQL Azure из группы доверия сервера Октябрь 2020 г. Существует обходной путь
Распределенные транзакции не могут выполняться после операции масштабирования управляемого экземпляра Октябрь 2020 г. "Разрешено" 2021 мая
Не удается создать Управляемый экземпляр SQL с тем же именем, что и ранее удаленный логический сервер Авг 2020 Существует обходной путь
Субъект-служба не может получить доступ к идентификатору Microsoft Entra ID и AKV Авг 2020 Существует обходной путь
Восстановление резервной копии вручную без CHECKSUM может завершиться ошибкой Май 2020 г. "Разрешено" Июнь 2020 г.
Агент перестает отвечать на запросы при изменении, отключении или включении существующих заданий. Май 2020 г. "Разрешено" Июнь 2020 г.
Разрешения для группы ресурсов не применяются к Управляемому экземпляру SQL. Фев 2020 "Разрешено" Ноябрь 2020 г.
Ограничение отработки отказа вручную с помощью портала для групп отработки отказа Янв 2020 Существует обходной путь
Роли агента SQL нуждаются в явных разрешениях EXECUTE для имен входа, не относящихся к узлу входа Дек 2019 г. "Разрешено" Сентябрь 2022 г.
Задания агента SQL могут быть прерваны перезапуском процесса агента Дек 2019 г. "Разрешено" Мар 2020
Имена входа Microsoft Entra и пользователи не поддерживаются в SSDT Ноя 2019 г. Обходной путь отсутствует
Ограничения памяти OLTP в памяти не применяются Окт 2019 Существует обходной путь
Ошибка, возвращенная при попытке удалить файл, который не пуст Окт 2019 "Разрешено" Август 2020 г.
Изменение уровня служб и создание операций экземпляра заблокировано текущим восстановлением базы данных Сен 2019 г. Существует обходной путь
Resource Governor на уровне служб "Критически важный для бизнеса" может потребовать перенастройки после отработки отказа Сен 2019 г. Существует обходной путь
После обновления уровня службы необходимо повторно инициализировать диалоговые окна Service Broker для нескольких баз данных. Aug 2019 Существует обходной путь
Олицетворение типов входа Microsoft Entra не поддерживается Jul 2019 Обходной путь отсутствует
Параметр @query не поддерживается в sp_send_db_mail Апр 2019 "Разрешено" январь 2021г.
После геоизбыточной отработки отказа необходимо перенастроить транзакционные реплика tion Мар 2019 Обходной путь отсутствует
Структура tempdb и содержимое создаются повторно Обходной путь отсутствует
Превышение дискового пространства с небольшими файлами баз данных Существует обходной путь
Значения GUID, отображаемые вместо имен баз данных Существует обходной путь
Журналы ошибок не сохраняются Обходной путь отсутствует
Не поддерживается разделение области транзакции на две базы данных внутри одного экземпляра Существует обходной путь Мар 2020
Модули среды CLR и связанные серверы иногда не могут ссылаться на локальный IP-адрес Существует обходной путь
Согласованность базы данных не проверена после DBCC CHECKDB восстановления базы данных из Хранилище BLOB-объектов Azure. "Разрешено" Ноя 2019 г.
Восстановление базы данных на момент времени с уровня "Критически важный для бизнеса" на уровень "Общего назначения" не будет выполняться, если база данных-источник содержит объекты выполняющейся в памяти OLTP. "Разрешено" Окт 2019
Функция Database Mail с внешними (не Azure) почтовыми серверами с использованием безопасного подключения. "Разрешено" Окт 2019
Автономные базы данных не поддерживаются в Управляемом экземпляре SQL. "Разрешено" Aug 2019

Существует обходной путь

Список долгосрочных резервных копий в портал Azure отображает файлы резервных копий для активных и удаленных баз данных с тем же именем.

Долгосрочные резервные копии можно перечислить и управлять на странице портал Azure для Управляемый экземпляр SQL Azure на вкладке "Резервные копии". На странице перечислены активные или удаленные базы данных, основные сведения об их долгосрочных резервных копиях и ссылка на управление резервными копиями. Щелкнув ссылку "Управление ", откроется новая боковая колонка со списком резервных копий. Из-за проблемы с логикой фильтрации список отображает резервные копии для активной базы данных и удаленных баз данных с одинаковым именем. Это требует особого внимания при выборе резервных копий для удаления, чтобы избежать удаления резервных копий для неправильной базы данных.

Обходное решение. Используйте отображаемые сведения о времени резервного копирования (UTC) в списке, чтобы отличить резервные копии, принадлежащие базам данных с тем же именем, что и в экземпляре в разные периоды. Кроме того, используйте команды PowerShell Get-AzSqlInstanceDatabaseLongTermRetentionBackup и Remove-AzSqlInstanceDatabaseLongTermRetentionBackup или CLI команды az sql midb ltr-backup list и az sql midb ltr-backup delete для управления долгосрочными резервными копиями с помощью параметра DatabaseState и DatabaseDeletionTime возвращаемого значения для фильтрации резервных копий для базы данных.

Недоступен целевой объект event_file сеанса событий system_health

При попытке прочитать содержимое целевого event_filesystem_health объекта сеанса событий возникает ошибка 40538, "Допустимый URL-адрес, начинающийся с "https://", требуется в качестве значения для любого указанного файлового пути". Это происходит в СРЕДЕ SQL Server Management Studio или при чтении данных сеанса с помощью функции sys.fn_xe_file_target_read_file .

Это изменение поведения является непредвиденным следствием недавнего необходимого исправления безопасности. Мы исследуем возможность дополнительного изменения, которое позволит клиентам продолжать использовать system_health сеанс на Управляемый экземпляр SQL Azure безопасно. В то же время клиенты могут обойти эту проблему, создав собственный эквивалент сеанса system_health с целевым event_file объектом в хранилище BLOB-объектов Azure. Дополнительные сведения, включая скрипт T-SQL для создания system_health сеанса, который можно изменить для создания собственного system_healthэквивалента, см. в разделе "Использование сеанса system_health".

Процедура sp_send_dbmail может завершиться ошибкой, если @query параметр используется в управляемых экземплярах с поддержкой Nov22FW

Процедура sp_send_dbmail может завершиться ошибкой, если @query используется параметр, и это влияет на экземпляры, включаемые в ноябре 2022 года. Сбои происходят, когда хранимая процедура выполняется в учетной записи sysadmin.

Эта проблема вызвана известной ошибкой, связанной с тем, как sp_send_dbmail используется олицетворение.

Обходное решение. Убедитесь, что вы вызываете sp_send_dbmail соответствующую пользовательскую учетную запись, которую вы создали, и не в учетной записи sysadmin.

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

USE [msdb]
GO

-- Step 1: Create a user mapped to a login to specify as a runtime user.
CREATE USER [user_name] FOR LOGIN [login_name]
GO
EXEC msdb.dbo.sp_update_jobstep @job_name=N'db_mail_sending_job', @step_id=db_mail_sending_job_id , @database_user_name=N'user_name'
GO

-- Step 2: Grant DB Mail permissions to the user who created it.
ALTER ROLE [DatabaseMailUserRole] ADD MEMBER [user_name]
GO

-- Step 3: If the database of the job step is not msdb, the permission error cannot be avoided even if it is a member of the role, so set it to msdb.
EXEC msdb.dbo.sp_update_jobstep @job_name=N'db_mail_sending_job', @step_id=db_mail_sending_job_id , @database_name=N'msdb'
GO 

-- Step 4: Set a principal in the email profile
EXEC msdb.dbo.sysmail_add_principalprofile_sp @principal_name=N'user_name', @profile_name=N'profile_name', @is_default=0
GO

Промежуточное руководство по обновлениям часового пояса 2022 года для Чили

8 августа 2022 года чилийское правительство сделало официальное объявление об изменении часового пояса дневного времени (DST). Начиная с 12:00 в субботу, 10 сентября 2022 года, до 12:00 в субботу, 1 апреля 2023 года, официальное время будет продвигаться 60 минут. Это изменение влияет на следующие три часовых пояса: тихоокеанское стандартное время SA, стандартное время острова Пасхи и магалланы стандартного времени. Управляемый экземпляр SQL Azure, использующие затронутые часовые пояса, не отражают изменения, пока корпорация Майкрософт не выпускает обновление ОС для поддержки этого, и Управляемый экземпляр SQL Azure служба поглощает обновление на уровне ОС.

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

Изменение типа подключения не влияет на подключения через конечную точку группы отработки отказа

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

Обходное решение. Удаление и повторное создание группы отработки отказа после изменения типа подключения.

Процедура sp_send_dbmail может временно завершиться ошибкой при @query использовании параметра

Процедура sp_send_dbmail может завершиться временным сбоем при @query использовании параметра. При возникновении этой проблемы каждое второе выполнение процедуры sp_send_dbmail завершается ошибкой Msg 22050, Level 16, State 1 и сообщением Failed to initialize sqlcmd library with error number -2147467259. Чтобы правильно увидеть эту ошибку, необходимо вызвать процедуру со значением по умолчанию 0 для параметра @exclude_query_output, в противном случае ошибка не распространяется.

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

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

CREATE PROCEDURE send_dbmail_with_retry AS
BEGIN
    DECLARE @miid INT
    EXEC msdb.dbo.sp_send_dbmail
        @recipients = 'name@mail.com', @subject = 'Subject', @query = 'select * from dbo.test_table',
        @profile_name ='AzureManagedInstance_dbmail_profile', @execute_query_database = 'testdb',
        @mailitem_id = @miid OUTPUT

    -- If sp_send_dbmail returned NULL @mailidem_id then retry sending email.
    --
    IF (@miid is NULL)
    EXEC msdb.dbo.sp_send_dbmail
        @recipients = 'name@mail.com', @subject = 'Subject', @query = 'select * from dbo.test_table',
        @profile_name ='AzureManagedInstance_dbmail_profile', @execute_query_database = 'testdb',
END

Распределенные транзакции можно выполнять после удаления Управляемого экземпляра Базы данных SQL Azure из группы доверия сервера

Группы доверия сервера используются для установления отношений доверия между управляемыми экземплярами. Это предварительное требование для выполнения распределенных транзакций. После удаления Управляемого экземпляра Базы данных SQL Azure из группы доверия сервера или удаления группы распределенные транзакции по-прежнему можно выполнять. Существует обходное решение, которое можно применить, чтобы убедиться, что распределенные транзакции отключены, и это инициируется пользователем ручной отработки отказа в управляемом экземпляре.

Распределенные транзакции не могут выполняться после операции масштабирования управляемого экземпляра

Операции масштабирования Управляемого экземпляра Базы данных SQL Azure, включающие изменение уровня служб или количества виртуальных ядер, сбросят параметры группы доверия сервера в серверной части и запретят выполнение распределенных транзакций. Обходное решение состоит в удалении и создании новой группы доверия сервера на портале Microsoft Azure.

Не удается создать Управляемый экземпляр SQL с тем же именем, что и ранее удаленный логический сервер

При создании логического сервера в Azure для База данных SQL Azure и при создании управляемого экземпляра SQL создается запись DNS <name>.database.windows.com. Имя записи DNS должно быть уникальным. Таким образом, если вы создадите логический сервер для База данных SQL, а затем удалите его, пороговый период составляет семь дней до освобождения имени из записей. В этом периоде невозможно создать Управляемый экземпляр SQL с тем же именем, что и удаленный логический сервер. В качестве обходного решения используйте другое имя Управляемого экземпляра SQL или создайте запрос в службу поддержки для освобождения логического имени сервера.

Субъект-служба не может получить доступ к идентификатору Microsoft Entra ID и AKV

В некоторых случаях может возникнуть проблема с субъектом-службой, используемой для доступа к идентификатору Microsoft Entra (ранее Azure Active Directory) и службам Azure Key Vault (AKV). В результате эта проблема влияет на использование проверки подлинности Microsoft Entra и прозрачного шифрования данных (TDE) с Управляемый экземпляр SQL. Могут происходить нерегулярные подключения или будет невозможно выполнить такие инструкции, как CREATE LOGIN/USER FROM EXTERNAL PROVIDER или EXECUTE AS LOGIN/USER. Настройка TDE с использованием ключа, управляемого клиентом, на новом Управляемом экземпляре SQL Azure в некоторых случаях также может не работать.

Обходное решение. Чтобы предотвратить возникновение этой проблемы на Управляемом экземпляре SQL перед выполнением каких-либо команд обновления или в том случае, если эта проблема уже возникла после выполнения команд обновления, перейдите на портал Azure и откройте страницу администрирования AD DS Управляемого экземпляра SQL. Проверьте, отображается ли сообщение об ошибке "Управляемый экземпляр требуется субъект-служба для доступа к идентификатору Microsoft Entra. Для создания субъекта-службы нажмите здесь". Если вы столкнулись с этим сообщением об ошибке, выберите его и следуйте пошаговые инструкции, указанные до устранения этой ошибки.

Ограничение отработки отказа вручную с помощью портала для групп отработки отказа

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

Обходное решение: инициируйте отработку отказа на портале из дополнительного экземпляра георепликации.

Ролям Агента SQL требуются явные разрешения EXECUTE для имен для входа, отличных от системного администратора

Если имена входа, отличные от sysadmin, добавляются к любым предопределенным ролям базы данных агента SQL, существует проблема, в которой явные разрешения EXECUTE должны быть предоставлены трем хранимым процедурам в master базе данных для работы этих имен входа. Если эта проблема возникла, отображается сообщение The EXECUTE permission was denied on the object <object_name> (Microsoft SQL Server, Error: 229) об ошибке.

Обходной путь. После добавления входа в предопределенную роль базы данных агента SQL (SQLAgentUserRole, SQLAgentReaderRole или SQLAgentOperatorRole) для каждого из входов, добавленных в эти роли, выполните следующий скрипт T-SQL, чтобы явно предоставить разрешения EXECUTE хранимым процедурам.

USE [master];
GO

CREATE USER [login_name] FOR LOGIN [login_name];
GO

GRANT EXECUTE ON master.dbo.xp_sqlagent_enum_jobs TO [login_name];
GRANT EXECUTE ON master.dbo.xp_sqlagent_is_starting TO [login_name];
GRANT EXECUTE ON master.dbo.xp_sqlagent_notify TO [login_name];

Ограничения памяти OLTP в памяти не применяются

Уровень служб критически важный для бизнеса не правильно применяет максимальные ограничения памяти для оптимизированных для памяти объектов в некоторых случаях. Управляемый экземпляр SQL может позволить рабочей нагрузке использовать больше памяти для операций OLTP в памяти, что может повлиять на доступность и стабильность экземпляра. Запросы выполняющейся в памяти OLTP, которые достигли ограничений, могут не завершаться сбоем немедленно. Запросы, использующие больше памяти OLTP, завершаются сбоем раньше, если они достигают ограничений.

Обходной путь. Отслеживайте использование хранилища OLTP в памяти с помощью SQL Server Management Studio , чтобы убедиться, что рабочая нагрузка не использует больше доступной памяти. Увеличьте ограничения памяти, зависящие от числа виртуальных ядер, или оптимизируйте рабочую нагрузку для использования меньшего объема памяти.

Ошибка, возвращенная при попытке удалить файл, который не пуст

SQL Server и Управляемый экземпляр SQL не позволяют пользователю удалять файл, который не пуст. Если вы пытаетесь удалить файл данных nonempty с помощью ALTER DATABASE REMOVE FILE инструкции, ошибка Msg 5042 – The file '<file_name>' cannot be removed because it is not empty не возвращается немедленно. Управляемый экземпляр SQL будет пытаться удалить файл, и операция завершится после 30 минут с ошибкой Internal server error.

Изменение уровня служб и создание операций экземпляра заблокировано текущим восстановлением базы данных

Текущий RESTORE оператор, процесс миграции Data Migration Service и встроенное восстановление на определенный момент времени блокирует обновление уровня служб или изменение размера существующего экземпляра и создание новых экземпляров до завершения процесса восстановления.

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

Возможное решение: дождитесь завершения процесса восстановления или отмените процесс восстановления, если операция создания или обновления уровня службы имеет более высокий приоритет.

Resource Governor на уровне служб "Критически важный для бизнеса" может потребовать перенастройки после отработки отказа

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

Возможное решение: запускайте ALTER RESOURCE GOVERNOR RECONFIGURE периодически или в рамках задания Агента SQL, которое выполняет задачу SQL при запуске экземпляра, если используется Resource Governor.

После обновления уровня службы необходимо повторно инициализировать диалоговые окна Service Broker для нескольких баз данных

Диалоговые окна Service Broker для нескольких баз данных перестают предоставлять сообщения службам в других базах данных после изменения уровня служб. Сообщения не теряются, и их можно найти в очереди отправителей. Любое изменение размера виртуальных ядер или хранилища экземпляров в Управляемый экземпляр SQL приводит service_broke_guid к изменению значения в представлении sys.database для всех баз данных. Все созданные DIALOG с помощью инструкции BEGIN DIALOG , ссылающиеся на Service Brokers в другой базе данных, перестают доставлять сообщения в целевую службу.

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

Превышение дискового пространства с небольшими файлами баз данных

Операторы CREATE DATABASE, ALTER DATABASE ADD FILE и RESTORE DATABASE могут завершиться ошибкой, так как экземпляр может достичь ограничения хранилища Azure.

Каждый экземпляр общего назначения Управляемого экземпляра SQL имеет до 35 ТБ хранилища, зарезервированного для дискового пространства Azure уровня "Премиум". Каждый файл базы данных размещается на отдельном физическом диске. Поддерживаются диски размером 128 ГБ, 256 ГБ, 512 ГБ, 1 ТБ или 4 ТБ. Неиспользуемое пространство на диске не оплачивается, но суммарный размер дисков Azure уровня "Премиум" не может превышать 35 ТБ. В некоторых случаях из-за внутренней фрагментации размер управляемого экземпляра, которому требуется не более 8 ТБ дискового пространства, может превысить ограничение в 35 ТБ.

Например, экземпляр общего назначения Управляемого экземпляра SQL может иметь один большой файл размером 1,2 ТБ, размещенный на диске объемом 4 ТБ. У него также может быть 248 файлов размером 1 ГБ, каждый из которых размещается на отдельных дисках емкостью 128 ГБ. В этом примере:

  • общий размер выделенного дискового хранилища составляет 1 x 4 ТБ + 248 x 128 ГБ = 35 ТБ;
  • общий объем зарезервированного пространства для баз данных в экземпляре составляет 1 x 1,2 ТБ + 248 x 1 ГБ = 1,4 ТБ.

В этом примере показано, что в определенных обстоятельствах из-за определенного распределения файлов экземпляр Управляемый экземпляр SQL может достичь ограничения 35-ТБ, зарезервированного для подключенного диска Azure Premium, если вы не ожидаете этого.

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

Можно узнать количество оставшихся файлов с помощью системных представлений. Если вы достигли этого лимита, попробуйте опустошить и удалить некоторые из файлов меньшего размера с помощью инструкции DBCC SHRINKFILE или переключиться на уровень "Критически важный для бизнеса", который не имеет этого лимита.

Значения GUID, отображаемые вместо имен баз данных

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

Обходное решение. Используйте представление sys.databases для разрешения имени фактической базы данных из имени физической базы данных, указанного в виде идентификаторов базы данных GUID.

SELECT name AS ActualDatabaseName,
    physical_database_name AS GUIDDatabaseIdentifier
FROM sys.databases
WHERE database_id > 4;

Модули среды CLR и связанные серверы иногда не могут ссылаться на локальный IP-адрес

Модули среды CLR, помещенные в Управляемый экземпляр SQL и связанные серверы или распределенные запросы, ссылающиеся на текущий экземпляр, иногда не могут разрешить IP-адрес локального экземпляра. Это временная ошибка.

Не поддерживается разделение области транзакции на две базы данных внутри одного экземпляра.

(Решено в марте 2020 г.) Класс TransactionScope в .NET не работает, если два запроса отправляются двум базам данных из одного экземпляра в той же области транзакции:

using (var scope = new TransactionScope())
{
    using (var conn1 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn1.Open();
        SqlCommand cmd1 = conn1.CreateCommand();
        cmd1.CommandText = string.Format("insert into T1 values(1)");
        cmd1.ExecuteNonQuery();
    }

    using (var conn2 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn2.Open();
        var cmd2 = conn2.CreateCommand();
        cmd2.CommandText = string.Format("insert into b.dbo.T2 values(2)");        cmd2.ExecuteNonQuery();
    }

    scope.Complete();
}

Возможное решение (не требуется с марта 2020 г.): вместо двух подключений используйте SqlConnection.ChangeDatabase(String), чтобы подключиться к другой базе данных в том же контексте.

Нет разрешения

Увеличение количества системных имен входа, используемых для реплика транзакций

Управляемый экземпляр SQL Azure служба создает системное имя входа в целях реплика транзакций. Это имя входа можно найти в SSMS (в обозревателе объектов, в разделе "Безопасность", "Имена входа") или в системном представленииsys.syslogins. Формат имени входа выглядит следующим образом 'DBxCy\WF-abcde01234QWERT', а имя входа имеет роль общедоступного сервера. В определенных условиях этот вход создается повторно, и из-за сбоя в системе предыдущего входа не удаляется. Это может привести к увеличению числа имен входа. Эти имена входа не представляют угрозу безопасности. Их можно безопасно игнорировать. Эти имена входа не следует удалять, так как по крайней мере один из них используется для реплика транзакций.

Таблица для резервных копий вручную в msdb не сохраняет имя пользователя

Недавно мы ввели поддержку автоматического резервного копирования msdb, но таблица в настоящее время не содержит сведения о имени пользователя.

Имена входа Microsoft Entra и пользователи не поддерживаются в SSDT

Sql Server Data Tools не полностью поддерживает имена входа и пользователей Microsoft Entra.

Олицетворение типов входа Microsoft Entra не поддерживается

Олицетворение с использованием EXECUTE AS USER или EXECUTE AS LOGIN из следующих субъектов Microsoft Entra не поддерживается:

  • Псевдоним пользователей Microsoft Entra. В этом случае возвращается ошибка 15517.
  • Имена входа и пользователи Microsoft Entra на основе приложений Microsoft Entra или субъектов-служб. В этом случае возвращаются ошибки 15517 и 15406.

После геоизбыточной отработки отказа необходимо перенастроить транзакционные реплика tion

Если в базе данных в группе отработки отказа включена транзакционная реплика, администратор Управляемый экземпляр SQL должен очистить все публикации на старом первичном сервере и перенастроить их на новый первичный после отработки отказа в другой регион. Дополнительные сведения см. в разделе Репликация.

tempdb структура и содержимое создаются повторно

База tempdb данных всегда разделена на 12 файлов данных, а структура файлов не может быть изменена. Максимальный размер каждого файла нельзя изменить, и в нее нельзя добавить tempdbновые файлы. База tempdb данных всегда создается повторно как пустая база данных при запуске или отработке отказа экземпляра, и любые изменения, внесенные в tempdb нее, не сохраняются.

Журналы ошибок не сохраняются

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

Доступность временного экземпляра с помощью прослушивателя группы отработки отказа во время операции масштабирования

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

В текущей структуре операции масштабирования записи DNS прослушивателя удаляются из исходного виртуального кластера до полного переноса управляемого экземпляра в новый виртуальный кластер, который в некоторых ситуациях может привести к длительному времени, в течение которого IP-адрес экземпляра не может быть разрешен с помощью прослушивателя. В течение этого времени клиент SQL пытается получить доступ к экземпляру, масштабируемом с помощью конечной точки прослушивателя, может ожидать сбоев входа со следующим сообщением об ошибке: "Ошибка 40532: не удается открыть сервер "xxx.xxx.xxx.xxx", запрошенный именем входа. Не удалось выполнить вход. (Microsoft SQL Server, ошибка: 40532)".

Эта проблема будет устранена путем перепроектирования операций масштабирования.

"Разрешено"

Запрос во внешней таблице завершается сбоем с сообщением об ошибке, которое не поддерживается

Запрос внешней таблицы может завершиться ошибкой с универсальным сообщением об ошибке "Запросы по внешним таблицам не поддерживаются с текущим уровнем служб или уровнем производительности этой базы данных. Consider upgrading the service tier or performance level of the database". (Запросы к внешним таблицам не поддерживаются для текущего уровня служб или производительности этой базы данных. Попробуйте повысить уровень служб или уровень производительности для базы данных.) Единственным типом внешней таблицы, поддерживаемой в Управляемом экземпляре SQL Azure, являются внешние таблицы PolyBase (предоставляется в режиме предварительной версии). Чтобы разрешить запросы во внешних таблицах PolyBase, необходимо включить PolyBase в управляемом экземпляре, выполнив sp_configure команду.

Внешние таблицы, связанные с функцией эластичных запросов База данных SQL Azure, не поддерживаются в Управляемый экземпляр SQL, но создание и запросы не были явно заблокированы. Вместе с поддержкой внешних таблиц PolyBase появились новые проверки, которые блокируют запросы любого типа к внешним таблицам в управляемом экземпляре, если не включена поддержка PolyBase.

Если вы используете неподдерживаемые внешние таблицы с функцией эластичных запросов для запроса данных в Базе данных SQL Azure или Azure Synapse из управляемого экземпляра, вместо этого следует использовать функцию связанного сервера. Чтобы установить подключение связанного сервера из Управляемый экземпляр SQL к База данных SQL, следуйте инструкциям из этой статьи. Чтобы установить подключение связанного сервера из Управляемого экземпляра SQL к SQL Synapse, ознакомьтесь с этими пошаговыми инструкциями. Так как настройка и тестирование подключения связанного сервера занимает некоторое время, можно в качестве временного решения применить обходной путь, позволяющий выполнять запросы к внешним таблицам, связанным с функцией запросов к эластичным базам данных.

Обходное решение. Выполните следующие команды (один раз на экземпляр), которые позволяют выполнять запросы во внешних таблицах:

sp_configure 'polybase enabled', 1;
GO

RECONFIGURE;
GO

При использовании проверки подлинности SQL Server имена пользователей с именем @не поддерживаются

Имена пользователей, содержащие символ @, в середине (например, 'abc@xy') не могут выполнять вход с помощью проверки подлинности SQL Server.

Восстановление резервной копии вручную без CHECKSUM может завершиться ошибкой

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

Обходное решение: выполняйте резервное копирование баз данных вручную на управляемом экземпляре с включенной CHECKSUM.

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

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

Разрешения для группы ресурсов не применяются к Управляемому экземпляру SQL

Если роль Azure "Участник Управляемого экземпляра" применяется к группе ресурсов (RG), к Управляемому экземпляру SQL она не применяется и не оказывает какого-либо воздействия.

Обходное решение: настройте роль участника Управляемого экземпляра SQL для пользователей на уровне подписки.

Задания Агента SQL могут быть прерваны перезапуском процесса агента

(Разрешено в марте 2020 г.) Агент SQL создает новый сеанс каждый раз, когда запускается задание, постепенно увеличивая потребление памяти. Чтобы избежать попадания в предел внутренней памяти, который будет блокировать выполнение запланированных заданий, процесс агента перезапускается после достижения порогового значения потребления памяти. Это может привести к прерыванию выполнения заданий, выполняемых в момент перезапуска.

Параметр @query не поддерживается в sp_send_db_mail

Параметр @query в процедуре sp_send_db_mail не работает.

Неправильное сообщение об ошибке на портале Azure с предложением повторно создать субъект-службу

Страница администрирования Active Directory портал Azure для Управляемый экземпляр SQL Azure может отобразить следующее сообщение об ошибке, даже если субъект-служба уже существует:

"Управляемый экземпляр требуется субъект-служба для доступа к идентификатору Microsoft Entra (ранее Azure Active Directory). Щелкните здесь, чтобы создать субъект-службу".

Это сообщение об ошибке можно игнорировать, если субъект-служба для управляемого экземпляра уже существует и (или) проверка подлинности Microsoft Entra в управляемом экземпляре работает.

Чтобы проверка, существует ли субъект-служба, перейдите на страницу корпоративных приложений на портал Azure, выберите управляемые удостоверения из раскрывающегося списка типов приложений, выберите "Применить" и введите имя управляемого экземпляра в поле поиска. Если имя экземпляра есть в списке результатов, это указывает на то, что субъект-служба уже существует и дальнейшие действия не требуется.

Если вы уже выполнили инструкции из сообщения об ошибке и выбрали ссылку из сообщения об ошибке, субъект-служба управляемого экземпляра была повторно создана. В этом случае назначьте идентификатор Microsoft Entra ID разрешения на чтение только что созданному субъекту-службе для правильной работы проверки подлинности Microsoft Entra. Это можно сделать в Azure PowerShell с помощью этих инструкций.

Участие в разработке содержимого

Чтобы внести свой вклад в разработку документации по Azure SQL, ознакомьтесь с руководством для участников разработки портала "Документация".