Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server в Linux
Начиная с SQL Server 2017 (14.x), SQL Server поддерживается как в Linux, так и в Windows. Как и развертывания SQL Server под управлением Windows, базы данных и экземпляры SQL Server должны быть высокодоступными в Linux.
В этой статье рассматриваются технические аспекты планирования и развертывания экземпляров и баз данных SQL Server на основе Linux, а также основные отличия от установок под управлением Windows. Так как SQL Server или Linux могут быть новыми для вас, в этой статье рассматриваются понятия, которые уже знакомы с вами.
Параметры доступности SQL Server для развертываний Linux
Помимо резервного копирования и восстановления, в Linux поддерживаются те же три компонента доступности, что и в развертываниях на основе Windows.
- Группы доступности для SQL Server на Linux
- Экземпляры отказоустойчивого кластера — SQL Server на Linux
- Начало работы с доставкой журналов в Linux
В Windows экземпляр FCI всегда должен находиться в отказоустойчивом кластере Windows Server (WSFC). В зависимости от сценария развертывания группа доступности обычно требует базового WSFC, за исключением нового варианта None в SQL Server 2017 (14.x). WSFC не существует в Linux. Реализация кластеризации в Linux обсуждается в Pacemaker для групп доступности и экземпляров отказоустойчивого кластера в Linux.
Краткое руководство по Linux
Хотя некоторые установки Linux включают интерфейс, большинство из них не делают. Командная строка используется почти для всего на уровне операционной системы. Общим термином для этой командной строки в мире Linux является оболочка, наиболее распространенная.bash
В Linux требуются повышенные привилегии для выполнения многих команд, аналогичных нуждающимся в привилегиях администратора в Windows Server. Команды можно выполнять с повышенными привилегиями двумя способами:
Выполните команду в качестве соответствующего пользователя. Чтобы изменить другого пользователя, используйте
suкоманду. Если вы запускаетеsuбез имени пользователя, вы входите в оболочку какroot, если вы знаете пароль.Используйте
sudoперед командой. Этот метод является более распространенным и более безопасным. Во многих примерах в этой статье используетсяsudo.
Ниже приведены некоторые распространенные команды. Каждая команда имеет различные параметры и опции, которые можно изучить в Интернете.
-
cd— изменение каталога -
chmod— изменение разрешений для файла или каталога -
chown— изменение владельца файла или каталога -
ls— отображение содержимого каталога -
mkdir— создание папки (каталога) на диске -
mv— перемещение файла из одного места в другое -
ps— отображение всех рабочих процессов -
rm— удаление файла локально на сервере -
rmdir— удаление папки (каталога) -
systemctl— запуск, остановка или включение служб - Команды текстового редактора. В Linux существуют различные параметры текстового редактора, например vi и emacs.
Общие задачи для конфигураций доступности SQL Server на Linux
В этом разделе рассматриваются задачи, которые являются общими для всех развертываний SQL Server под управлением Linux.
Убедитесь, что можно копировать файлы
Любой, кто управляет SQL Server в Linux, должен иметь возможность копировать файлы с одного сервера на другой. Эта задача ключевая для конфигураций AG.
Проблемы с разрешениями могут существовать как в установках Linux, так и на основе Windows. Однако пользователи Windows, знакомые с тем, как копировать файлы с сервера на сервер, могут не знать, как это делается в Linux. Распространенный метод — использовать служебную программу командной строки scp, что обозначает безопасную копию. В фоновом режиме scp использует OpenSSH. SSH означает безопасную оболочку. В зависимости от дистрибутива Linux сам OpenSSH может быть не установлен. Если это не так, необходимо установить OpenSSH.
Дополнительные сведения о настройке OpenSSH для дистрибутива Linux см. в следующем разделе:
Примечание.
Начиная с SQL Server 2025 (17.x), SUSE Linux Enterprise Server (SLES) не поддерживается.
При использовании scpнеобходимо указать учетные данные сервера, если он не является источником или назначением. Например, следующая команда копирует файл MyAGCert.cer в папку, указанную на другом сервере:
scp MyAGCert.cer username@servername:/folder/subfolder
Для копирования файла необходимо иметь разрешения и, возможно, права владения им, поэтому может потребоваться сначала использовать chown. Кроме того, на принимающей стороне работать с файлом должен пользователь с надлежащими правами. Например, чтобы восстановить этот файл сертификата, пользователь mssql должен иметь к нему доступ.
Создавать общие ресурсы, доступ к которым осуществляется по UNC-путям, таким как \\SERVERNAME\SHARE, можно с помощью Samba, который является разновидностью протокола SMB в Linux. Дополнительные сведения о настройке Samba см. по следующим ссылкам для каждого дистрибутива:
Примечание.
Начиная с SQL Server 2025 (17.x), SUSE Linux Enterprise Server (SLES) не поддерживается.
Вы также можете использовать общие папки SMB на основе Windows. Общие папки SMB не обязательно должны базироваться на Linux, если клиентская часть Samba настроена корректно на сервере Linux, на котором размещен SQL Server, и общий ресурс обладает корректными правами доступа. Для клиентов в смешанной среде этот подход позволяет использовать существующую инфраструктуру для развертываний SQL Server на основе Linux.
Версия Samba, которую вы развертываете, должна быть совместимой с SMB 3.0. При добавлении поддержки SMB в SQL Server 2012 (11.x) все общие папки должны поддерживать SMB 3.0. Если вы используете Samba для общей папки, а не Windows Server, общая папка на основе Samba должна использовать Samba 4.0 или более поздней версии, а в идеале — 4.3 или более поздней версии, которая поддерживает SMB 3.1.1. Сведения об SMB и Linux см. в документе об SMB3 в Samba.
Кроме того, можно использовать общий ресурс сетевой файловой системы (NFS). Вы не можете использовать NFS в развертываниях SQL Server на основе Windows, и его можно использовать только для развертываний на основе Linux.
Настройка брандмауэра
Как и в Windows, дистрибутивы Linux имеют встроенный брандмауэр. Если ваша организация использует внешний брандмауэр для серверов, вы можете отключить брандмауэры в Linux. Однако независимо от того, где включен брандмауэр, необходимо открыть порты. В следующей таблице перечислены общие порты, необходимые для высокодоступных развертываний SQL Server в Linux.
| Номер порта | Тип | Описание |
|---|---|---|
111 |
TCP/UDP | NFS — rpcbind/sunrpc |
135 |
TCP | Samba (если используется) — Mapper конечной точки |
137 |
UDP | Samba (если используется) — служба имен NetBIOS |
138 |
UDP | Samba (если используется) — датаграмма NetBIOS |
139 |
TCP | Samba (если используется) — сеанс NetBIOS |
445 |
TCP | Samba (если используется) — SMB по TCP |
1433 |
TCP | SQL Server — порт по умолчанию; При желании может измениться с помощью mssql-conf set network.tcpport <portnumber> |
2049 |
TCP, UDP; | NFS (если используется) |
2224 |
TCP | Pacemaker — используется pcsd |
3121 |
TCP | Pacemaker — требуется при наличии удаленных узлов Pacemaker |
3260 |
TCP | Инициатор iSCSI (если используется) — может быть изменен в /etc/iscsi/iscsid.config (RHEL), но должен соответствовать порту целевого объекта iSCSI. |
5022 |
TCP | SQL Server — порт по умолчанию, используемый для конечной точки группы доступности; при создании конечной точки можно изменить |
5403 |
TCP | Кардиостимулятор |
5404 |
UDP | Pacemaker — требуется для Corosync при использовании многоадресного протокола UDP |
5405 |
UDP | Pacemaker — требуется для Corosync |
21064 |
TCP | Pacemaker — требуется для ресурсов, использующих DLM |
| «Переменная» | TCP | Порт конечной точки группы доступности, значение по умолчанию — 5022 |
| «Переменная» | TCP | NFS — порт для LOCKD_TCPPORT (находится в /etc/sysconfig/nfs в RHEL) |
| «Переменная» | UDP | NFS — порт для LOCKD_UDPPORT (находится в /etc/sysconfig/nfs в RHEL) |
| «Переменная» | TCP/UDP | NFS — порт для MOUNTD_PORT (находится в /etc/sysconfig/nfs в RHEL) |
| «Переменная» | TCP/UDP | NFS — порт для STATD_PORT (находится в /etc/sysconfig/nfs в RHEL) |
Сведения о других портах, используемых Samba, см. в разделе "Использование портов Samba".
И наоборот, можно добавить имя службы в Linux как исключение вместо порта. Например, используйте high-availability для кардиостимулятора. Обратитесь к вашей версии или пакету программного обеспечения за соответствующими именами. Например, в RHEL команда для добавления в Pacemaker:
sudo firewall-cmd --permanent --add-service=high-availability
Документация по брандмауэру
Примечание.
Начиная с SQL Server 2025 (17.x), SUSE Linux Enterprise Server (SLES) не поддерживается.
Установка пакетов SQL Server для доступности
При установке SQL Server под управлением Windows некоторые компоненты устанавливаются даже в базовой установке ядра, а другие — нет. В Linux в процессе установки устанавливается только подсистема SQL Server. Все остальное является необязательным. Для экземпляров SQL Server с высоким уровнем доступности в Linux необходимо установить два пакета с SQL Server:
- агент SQL Server (
mssql-server-agent) - пакет высокого уровня доступности (HA) (
mssql-server-ha)
Хотя агент SQL Server технически необязателен, это планировщик по умолчанию для заданий SQL Server и требуется для доставки журналов, поэтому рекомендуется установить.
В SQL Server 2017 (14.x) с накопительным пакетом обновления 4 и более поздних версий агент SQL Server включен в пакет ядро СУБД, но его все равно необходимо включить. В установках под управлением Windows агент SQL Server не является необязательным.
Примечание.
Агент SQL Server — это встроенный планировщик заданий для SQL Server. Он используется для планирования таких задач, как резервное копирование и регулярное обслуживание. В Windows агент SQL Server выполняется как отдельная служба. В Linux он выполняется в контексте самого SQL Server.
При настройке AG или FCI в конфигурации под управлением Windows они поддерживают кластеры. Осведомленность о кластере означает, что SQL Server имеет определенные библиотеки DLL ресурсов, о которых знает WSFC (sqagtres.dll и sqsrvres.dll для hadrres.dll групп управления доступом) и используется WSFC для обеспечения правильной работы, работы и функционирования кластеризованных функций SQL Server.
Так как кластеризация является внешней не только для SQL Server, но и самой Linux, корпорация Майкрософт должна была закодировать эквивалент библиотеки DLL ресурсов для развертываний группы доступности на основе Linux и FCI. Этот ресурс является пакетом mssql-server-ha , также известным как агент ресурсов SQL Server для Pacemaker. Чтобы установить mssql-server-ha пакет, см. раздел "Развертывание кластера Pacemaker для SQL Server на Linux".
В Linux полнотекстовый поиск (mssql-server-fts) и службы Integration Services (mssql-server-is) являются необязательными пакетами SQL Server и не требуются для FCI или групп доступности.
Партнеры в области высокой доступности и аварийного восстановления SQL Server
В отрасли доступно множество передовых средств, позволяющих обеспечить высокую доступность и аварийное восстановление для служб SQL Server. В этом разделе рассматриваются партнерские компании Майкрософт с высоким уровнем доступности и решениями аварийного восстановления, поддерживающими SQL Server.
| Партнер | Описание |
|---|---|
| DH2i | DxEnterprise — это решение для управления доступностью для сред Windows, Linux и контейнеров. Она поддерживает высокий уровень доступности, сокращает запланированное и незапланированное время простоя и упрощает управление физическими и логическими ресурсами. - Развертывание групп доступности с помощью DH2i DxEnterprise в Kubernetes - Руководство. Настройка группы доступности AlwaysOn с помощью DH2i DxEnterprise |
| HPE Serviceguard | HPE SGLX предлагает параметры мониторинга и восстановления с учетом контекста для экземпляра отказоустойчивого кластера и групп доступности AlwaysOn. С помощью HPE SGLX вы можете обеспечить максимальное время доступности, не жертвуя целостностью данных и производительностью. - Руководство. Настройка группы доступности AlwaysOn с помощью HPE Serviceguard для Linux с тремя узлами. |
| Кардиостимулятор | Pacemaker — это открытый код диспетчер ресурсов кластера высокой доступности. С помощью Corosync система открытый код групповой связи Pacemaker может обнаруживать сбои компонентов и оркестрировать необходимые процедуры отработки отказа, чтобы свести к минимуму прерывания работы приложений. - Pacemaker для групп доступности и экземпляров отказоустойчивого кластера в Linux - Развертывание кластера Pacemaker для SQL Server на Linux |