Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: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, и Linux может быть новым для специалистов SQL Server, статья иногда вводит понятия, которые могут быть знакомы некоторым и незнакомым для других.
Параметры доступности 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, должен иметь возможность. Она очень важна для конфигураций группы доступности.
Такие проблемы, как разрешения, могут существовать в Linux и на установках под управлением Windows. Тем не менее, знакомые с тем, как скопировать с сервера на сервер в Windows, возможно, не знакомы с тем, как это делается в Linux. Распространенным способом является использование служебной программы командной строки scp, которая расшифровывается как "secure copy" (безопасное копирование). В фоновом режиме scp использует OpenSSH. SSH означает "secure shell" (безопасная оболочка). В зависимости от дистрибутива Linux сам OpenSSH может быть не установлен. Если это не так, сначала необходимо установить OpenSSH. Дополнительные сведения о настройке OpenSSH см. по следующим ссылкам для каждого дистрибутива:
При использовании scpнеобходимо указать учетные данные сервера, если он не является источником или назначением. Например, следующая команда
scp MyAGCert.cer username@servername:/folder/subfolder
копирует файл MyAGCert.cer в папку, указанную на другом сервере. Для копирования файла необходимо иметь разрешения и, возможно, владение им, поэтому chown может потребоваться также использовать его. Кроме того, на принимающей стороне работать с файлом должен пользователь с надлежащими правами. Например, чтобы восстановить этот файл сертификата, пользователь mssql должен иметь к нему доступ.
Создавать общие ресурсы, доступ к которым осуществляется по UNC-путям, таким как \\SERVERNAME\SHARE, можно с помощью Samba, который является разновидностью протокола SMB в Linux. Дополнительные сведения о настройке Samba см. по следующим ссылкам для каждого дистрибутива:
Общие папки 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 для Pacemaker. Если вы хотите выбрать этот вариант, см. соответствующий дистрибутив. Например, в RHEL используется следующая команда для добавления в Pacemaker:
sudo firewall-cmd --permanent --add-service=high-availability
Документация по брандмауэру
Установка пакетов 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 — встроенный планировщик заданий SQL Server. Вы можете запланировать такие операции, как резервное копирование и другое обслуживание SQL Server. В отличие от установки SQL Server под управлением Windows, где агент SQL Server является совершенно другой службой в Linux, агент SQL Server выполняется в контексте самого SQL Server.
Группы доступности или экземпляры 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".
Другие необязательные пакеты для SQL Server на Linux, полнотекстового поиска SQL Server (mssql-server-fts) и служб SQL Server Integration Services (mssql-server-is), не требуются для обеспечения высокой доступности для FCI или группы доступности.
Партнеры в области высокой доступности и аварийного восстановления SQL Server
В отрасли доступно множество передовых средств, позволяющих обеспечить высокую доступность и аварийное восстановление для служб SQL Server. В этом разделе рассматриваются партнерские компании Майкрософт с высоким уровнем доступности и решениями аварийного восстановления, поддерживающими SQL Server.
| Партнер | Описание |
|---|---|
| DH2i | DxEnterprise — это ПО для обеспечения смарт-доступности для Windows, Linux и Docker, которое помогает добиться почти нулевого запланированного и незапланированного простоя, позволяет реализовать огромный потенциал экономии затрат, значительно упрощает управление и обеспечивает как физическую, так и логическую консолидацию. - Развертывание групп доступности с помощью 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 |