SQL Server на Linux набрал популярность в последние годы, и с выпуском SQL Server 2017 Microsoft представила набор новых переменных среды, которые позволяют более гибко настраивать работу SQL Server в контейнерах Docker.
В более ранних версиях SQL Server на Linux были доступны только две переменные среды: ACCEPT_EULA и SA_PASSWORD. Эти переменные должны были быть установлены для запуска контейнера, причем для SA_PASSWORD требовался сложный пароль в целях безопасности.
Однако с выпуском CTP 2.1 для SQL Server 2017 было представлено несколько новых переменных среды:
- MSSQL_TCP_PORT: Указывает TCP-порт, на котором SQL Server слушает.
- MSSQL_IP_ADDRESS: Устанавливает IP-адрес для SQL Server.
- MSSQL_BACKUP_DIR: Определяет каталог для хранения резервных копий.
- MSSQL_DATA_DIR: Указывает каталог для хранения файлов данных.
- MSSQL_LOG_DIR: Устанавливает каталог для хранения файлов журнала.
- MSSQL_DUMP_DIR: Определяет каталог для хранения файлов дампа.
- MSSQL_ENABLE_HADR: Включает функции высокой доступности и восстановления после сбоя.
Эти новые переменные среды предоставляют больше возможностей для управления и настройки при создании контейнеров SQL Server. Например, теперь вы можете указать нестандартные порты, настроить различные каталоги для файлов данных и журнала, а также включить функции высокой доступности и восстановления после сбоя.
Давайте рассмотрим пример использования этих переменных среды при запуске контейнера SQL Server:
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=P455word1' -e MSSQL_BACKUP_DIR=/etc/ -e MSSQL_DATA_DIR=/etc/ -e MSSQL_TCP_PORT=6666 -p 5555:6666 --rm --name mssql1 -d microsoft/mssql-server-linux
В этом примере мы устанавливаем переменные ACCEPT_EULA и SA_PASSWORD, как и раньше, но также указываем каталог резервных копий как “/etc/”, каталог данных как “/etc/” и TCP-порт как 6666. Кроме того, мы сопоставляем порт 5555 на хост-машине с портом 6666 в контейнере.
Запустив команду “docker ps”, мы можем проверить, что контейнер работает с указанными портами. Чтобы проверить журналы контейнера, мы можем использовать команду “docker logs mssql1”, чтобы узнать, на каком порту он слушает.
Наконец, мы можем подключиться к контейнеру SQL Server с помощью SQL Server Management Studio (SSMS), чтобы проверить новые местоположения файлов по умолчанию и резервных копий. Если не указано, каталог по умолчанию для файлов данных будет “/var/opt/mssql/data”.
Хотя эти новые переменные среды значительно улучшают работу SQL Server в Docker, всегда есть место для дальнейшего совершенствования. Было бы замечательно увидеть дополнительные переменные для настройки максимальной памяти, файлов TempDB, MAXDOP и других важных параметров. Надеюсь, Microsoft рассмотрит возможность добавления этих опций в будущих версиях.
В целом, введение новых переменных среды в SQL Server в Docker позволяет более гибко настраивать и управлять контейнерами SQL Server, что упрощает развертывание и управление экземплярами SQL Server по мере того, как все больше организаций принимают контейнеризацию.
Следите за обновлениями и улучшениями, поскольку SQL Server продолжает развиваться в экосистеме Docker!
Спасибо за чтение!
С наилучшими пожеланиями,
Ваше имя