Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Это важно
Azure SQL Edge прекращена с 30 сентября 2025 г. Дополнительные сведения и параметры миграции см. в уведомлении о выходе на пенсию.
Замечание
Azure SQL Edge больше не поддерживает платформу ARM64.
Это краткое руководство описывает использование Docker для извлечения и запуска образа контейнера SQL Azure для пограничных вычислений. Затем мы подключимся при помощи sqlcmd для создания первой базы данных и выполнения запросов.
Этот образ состоит из SQL Edge на основе Ubuntu 18.04. Он может использоваться с Dосker Engine 1.8 и более поздних версий на Linux.
Контейнеры SQL Azure для пограничных вычислений не поддерживаются на следующих платформах для рабочих нагрузок:
- Windows
- macOS
- Azure IoT Edge для Linux в Windows (EFLOW)
Предпосылки
- Docker Engine 1.8 и более поздних версий на любом поддерживаемом дистрибутиве Linux. Дополнительные сведения см. в разделе Установка Docker. Так как образы SQL Edge основаны на Ubuntu 18.04, мы рекомендуем использовать узел Docker Ubuntu 18.04.
- Драйвер хранилища overlay2 Docker. По умолчанию он используется большинством пользователей. Если вы обнаружите, что не используете этот поставщик хранилища и хотите изменить его, ознакомьтесь с инструкциями и предупреждениями в документации Docker по настройке наложения2.
- Не менее 10 ГБ места на диске.
- Не менее 1 ГБ ОЗУ.
- Требования к оборудованию для SQL Azure для пограничных вычислений.
Замечание
Для команд Bash в этой статье используется sudo. Если вы не хотите использовать sudo для запуска Docker, можно настроить группу Docker и добавить пользователей в эту группу. Дополнительные сведения см. в статье Действия после установки для Linux.
Извлечение и запуск образа контейнера
Извлеките образ контейнера SQL Azure для пограничных вычислений из Реестра контейнеров Майкрософт.
sudo docker pull mcr.microsoft.com/azure-sql-edge:latestПредыдущая команда извлекает последний образ контейнера SQL Edge. Чтобы просмотреть все доступные образы, см . страницу центра Docker azure-sql-edge.
Чтобы запустить образ контейнера с помощью Docker, используйте следующую команду из оболочки Bash:
Запустите экземпляр SQL Azure, работающий в качестве выпуска Developer:
sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=<password>' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edgeЗапустите экземпляр SQL Azure, работающий в качестве выпуска Premium:
sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=<password>' -e 'MSSQL_PID=Premium' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge
Это важно
Пароль должен соответствовать политике паролей ядра Microsoft База данных SQL по умолчанию, в противном случае контейнер не может настроить модуль База данных SQL и перестанет работать. По умолчанию пароль должен быть не короче восьми символов и содержать символы трех из следующих четырех групп: прописные буквы, строчные буквы, десятичные цифры, специальные символы. Проверить журнал ошибок можно, выполнив команду docker logs.
В следующей таблице приведено описание параметров в предыдущих
docker runпримерах:Параметр Description -e "ACCEPT_EULA=Y" Присвойте переменной ACCEPT_EULA любое значение, чтобы подтвердить свое согласие с лицензионным соглашением. Обязательный параметр для образа SQL Edge. -e "MSSQL_SA_PASSWORD=<password>" Укажите собственный надежный пароль, который не менее восьми символов и соответствует требованиям к паролям. Обязательный параметр для образа SQL Edge. -p 1433:1433 Сопоставление TCP-порта среды узла (первое значение) с TCP-портом в контейнере (второе значение). В этом примере SQL Edge прослушивает TCP 14333 в контейнере и предоставляется порту 1433 на узле. --name azuresqledge Укажите свое имя для контейнера вместо сгенерированного случайным образом. При запуске нескольких контейнеров нельзя использовать одинаковые имена. -d Запустите контейнер в фоновом режиме (управляющая программа) Полный список всех переменных среды SQL Azure для пограничных вычислений см. в статье "Настройка AZURE SQL Edge с помощью переменных среды". Вы также можете использовать файл mssql.conf для настройки контейнеров SQL Edge.
Для просмотра ваших контейнеров Docker используйте команду
docker ps.sudo docker ps -aЕсли столбец STATUS отображает состояние "Вверх", SQL Edge выполняется в контейнере и прослушивает порт, указанный в столбце PORTS. Если столбец STATUS для контейнера SQL Edge отображается "Выход", см. раздел "Устранение неполадок" документации по Sql Edge Azure.
Параметр
-h(имя узла) также полезен, но он не используется в этом руководстве для простоты. Он изменяет внутреннее имя контейнера на пользовательское значение. Это имя, возвращаемое в следующем запросе Transact-SQL:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');Установка параметров
-hи--nameравными позволяет легко идентифицировать целевой контейнер.В качестве последнего шага измените пароль SA, так как
MSSQL_SA_PASSWORDотображается в выходных данныхps -eaxи хранится в переменной среды с тем же именем. См. следующие действия.
Смена пароля администратора
Учетная запись SA обладает правами администратора на экземпляре SQL Azure для пограничных вычислений, создаваемом во время установки. После создания контейнера MSSQL_SA_PASSWORD SQL Edge указанная переменная среды может быть обнаружена путем запуска echo $MSSQL_SA_PASSWORD в контейнере. В целях безопасности смените пароль SA.
Назначьте для пользователя SA надежный пароль.
Используйте
docker execдля запуска sqlcmd, чтобы изменить пароль с помощью Transact-SQL. В следующем примере замените старый пароль<old-password>и новый пароль<new-password>собственными паролями.sudo docker exec -it azuresqledge /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA -P "<old-password>" \ -Q 'ALTER LOGIN SA WITH PASSWORD="<new-password>"'
Подключение к службе SQL Azure для пограничных вычислений
В следующих шагах используется средство командной строки SQL Azure SQL Edge, sqlcmd в контейнере для подключения к SQL Edge.
Выполните команду
docker exec -it, чтобы запустить интерактивную оболочку bash внутри запущенного контейнера. В следующем примере используется имя,azuresqledgeуказанное параметром--nameпри создании контейнера.sudo docker exec -it azuresqledge "bash"После подключения в контейнере подключитесь локально с помощью sqlcmd. sqlcmd по умолчанию не указан в пути, поэтому необходимо указать полный путь.
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<password>"Подсказка
Вы можете опустить пароль в командной строке. В этом случае вы получите приглашение для его ввода.
Если успешно, вы должны перейти к командной строке sqlcmd:
1>.
Создание и запрос данных
В следующих разделах приведено пошаговое руководство по созданию базы данных, добавлению данных и запуску запроса с использованием sqlcmd и Transact-SQL.
Создание базы данных
Выполните следующие шаги, чтобы создать базу данных TestDB.
В приглашении команды sqlcmd вставьте следующую команду Transact-SQL, чтобы создать тестовую базу данных:
CREATE DATABASE TestDB; GOВ следующей строке напишите запрос, который должен вернуть имена всех баз данных на сервере:
SELECT name from sys.databases; GO
Вставка данных
Теперь создайте таблицу Inventory и вставьте две новых строки.
В приглашении команды sqlcmd переключите контекст на новую базу данных
TestDB:USE TestDB;Создайте таблицу
Inventory:CREATE TABLE Inventory ( id INT, name NVARCHAR(50), quantity INT );Вставьте данные в новую таблицу:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);Введите
GO, чтобы выполнить предыдущие команды:GO
Выбор данных
Теперь выполните запрос, чтобы вернуть данные из таблицы Inventory.
В приглашении команды sqlcmd введите запрос, который должен вернуть из таблицы
Inventoryстроки, где количество превышает 152:SELECT * FROM Inventory WHERE quantity > 152;Выполните команду:
GO
Выйти из командной строки sqlcmd
Чтобы завершить сеанс sqlcmd, введите
QUIT:QUITЧтобы выйти из интерактивной командной строки в контейнере, введите команду
exit. Контейнер продолжит работать после выхода из интерактивной оболочки bash.
Подключение извне контейнера
Вы также можете подключиться к экземпляру SQL Edge на компьютере Docker из любого внешнего средства Linux, Windows или macOS, поддерживающего подключения к SQL. Дополнительные сведения о подключении к контейнеру SQL Edge извне см. в статье Connect and Query Azure SQL Edge.
Удаление контейнера
Если вы хотите удалить контейнер SQL Edge, используемый в этом руководстве, выполните следующие команды:
sudo docker stop azuresqledge
sudo docker rm azuresqledge
Предупреждение
Остановка и удаление контейнера окончательно удаляет все данные SQL Edge в контейнере. Чтобы сохранить данные, создайте и скопируйте файл резервной копии за пределы контейнера или используйте метод постоянного хранения данных контейнера.