#sql-server #docker #azure-container-instances #azure-container-registry
#sql-сервер #docker #azure-container-instances #azure-container-registry
Вопрос:
Я использую docker для развертывания sql-сервера linux в azure.
И я не могу запустить агент Sql-Server в экземпляре контейнера в Ubuntu в azure. Sql-сервер запускается нормально, но не Sql-агент. Я пробовал использовать разные версии SQL-Server.
Локально он отлично работает с этим примером:
docker run -d -p 15789:1433 `
--env ACCEPT_EULA=Y `
--env SA_PASSWORD=Testing1122 `
--env MSSQL_AGENT_ENABLED=True `
--name testcontainer `
mcr.microsoft.com/mssql/server:2019-GDR1-ubuntu-16.04
Но при добавлении того же образа в реестр контейнеров Azure, а затем в экземпляр контейнера он не работает:
В журнале для контейнера я вижу следующую ошибку, которая, я не уверен, связана ли она с тем, что агент не запускается:
2020-10-20 14:36:24.91 spid35s Error: 39002, Severity: 16, State: 1.
2020-10-20 14:36:24.91 spid35s SQL failed to boot extensibility for error code 0x80070005.
2020-10-20 14:36:24.91 spid35s InitializeXdbPkgLauncher failed. ErrorCode: 0x80004005.
Кто-нибудь, кто знает, почему это не работает или как это можно исправить, чтобы иметь возможность запускать его в экземпляре контейнера Azure?
Комментарии:
1. Планировалось использовать агент для выполнения запланированных резервных копий, но на данный момент (и, возможно, позже) Я буду использовать эту службу для запланированных резервных копий: sqlbackupandftp.com что кажется приятным, например, иметь резервные копии в Dropbox.
Ответ №1:
У нас была аналогичная проблема, и мы выяснили, что это связано с ограничением, существующим в экземплярах контейнера Azure: агент sql не может быть включен (выглядит включенным, но на самом деле это не так), если длина имени экземпляра превышает 15 символов. К сожалению, имена экземпляров автоматически назначаются кластером Kubernetes во время создания контейнера, и вы не можете это контролировать. Проголосуйте за эту идею, если хотите, чтобы проблема была решена (https://feedback.azure.com/forums/602224-azure-container-instances/suggestions/42509800-support-setting-of-hostname).
Ответ №2:
Согласно моему тесту, изображение mcr.microsoft.com/mssql/server:2019-GDR1-ubuntu-16.04
имеет ту же ошибку как в локальном, так и в экземпляре контейнера Azure. Здесь проблема показывает, что это ошибка в SQL Server 2019. И я пытаюсь использовать изображение mcr.microsoft.com/mssql/server:2017-CU21-ubuntu-16.04
, и проблем нет. Если вы не возражаете, попробуйте.
Комментарии:
1. Спасибо за ваше предложение. Я пытался использовать 2017, но, к сожалению, с теми же результатами для моего экземпляра контейнера azure. Я не понимаю, почему это работает, когда я запускаю его локально. Не уверен, может ли это иметь какое-то отношение к проблеме, описанной здесь: github.com/microsoft/mssql-docker/issues/503
2. @Sgedda Как вы проверяете, все ли идет хорошо?
3. Я запускал контейнер docker локально как команду выше в Windows, которая отлично работала для меня даже с 2019. А как насчет вас? @Charles Xu
4. @Sgedda Изображение 2019 также плохо работает в моей локальной Windows. Он выдает ту же ошибку. Я предполагаю, что в моей Windows что-то упущено.
5. Это странно, я попробую на другой машине и сообщу вам о результатах.