Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server — Linux
В этой статье описывается, как устранить неполадки с SQL Server, работающей в Linux или в контейнере Linux. При устранении неполадок SQL Server на Linux не забудьте просмотреть поддерживаемые функции и известные ограничения:
- Заметки о выпуске SQL Server 2022 в Linux
- Заметки о выпуске SQL Server 2019 в Linux
- Заметки о выпуске SQL Server 2017 в Linux
Ответы на часто задаваемые вопросы об SQL Server на Linux см. в этой статье.
Устранение сбоев подключения
Если у вас возникли трудности при подключении к экземпляру SQL Server в Linux, нужно кое-что проверить.
Если вы не можете подключиться локально с помощью
localhost
, попробуйте использовать вместо этого IP-адрес 127.0.0.1. Возможно, этоlocalhost
неправильно сопоставлено с этим адресом.Убедитесь, что IP-адрес или имя сервера доступны с клиентского компьютера.
Чтобы найти IP-адрес своего компьютера Ubuntu, вы можете выполнить команду
ifconfig
, как показано в следующем примере:sudo ifconfig eth0 | grep 'inet addr'
Для Red Hat можно использовать команду
ip addr
, как показано в следующем примере:sudo ip addr show eth0 | grep "inet"
Совет
Исключение из этой методики связано с виртуальными машинами Azure. Для виртуальных машин Azure найдите общедоступный IP-адрес для виртуальной машины на портале Azure.
Если это применимо, проверьте, открыт ли порт SQL Server (по умолчанию 1433) в брандмауэре.
Для виртуальных машин Azure убедитесь в наличии правила группы безопасности сети для порта SQL Server по умолчанию.
Убедитесь, что имя пользователя и пароль не содержат опечатки, лишние пробелы или неверный регистр.
Попробуйте явно задать протокол и номер порта с именем сервера, как показано в следующем примере.
tcp:servername,1433
Проблемы с сетевым подключением также могут вызвать ошибки подключения и истечение времени ожидания. Проверив сведения о подключении и возможность сетевого подключения, повторите попытку подключения.
Управление службой SQL Server
В следующем разделе показано, как управлять выполнением контейнеров SQL Server Linux. Для управления службами Linux см. статью о запуске, остановке и перезапуске служб SQL Server в Linux.
Управление выполнением контейнера SQL Server Linux
Вы можете получить идентификатор состояния и контейнера последнего созданного контейнера SQL Server Linux, выполнив следующую команду (идентификатор находится под столбцом CONTAINER ID
):
sudo docker ps -l
Вы можете останавливать или перезапускать службу SQL Server по мере необходимости, используя следующие команды.
sudo docker stop <container ID>
sudo docker restart <container ID>
Совет
Дополнительные советы по устранению неполадок для контейнеров Linux см. в разделе "Устранение неполадок контейнеров Docker SQL Server".
Доступ к файлам журнала
SQL Server Database Engine записывает в файл /var/opt/mssql/log/errorlog
как в установках на Linux, так и в контейнерах. Для просмотра этого каталога вы должны находиться в режиме суперпользователя.
Журналы установщика находятся здесь: /var/opt/mssql/setup-<time stamp representing time of install>
Вы можете просматривать файлы errorlog
с помощью любого инструмента, совместимого с UTF-16, например vim или cat, следующим образом:
sudo cat errorlog
При желании можно также преобразовать файлы в UTF-8, чтобы прочесть их с помощью more или less, используя следующую команду:
sudo iconv -f UTF-16LE -t UTF-8 <errorlog> -o <output errorlog file>
Расширенные события
Расширенные события можно запрашивать с помощью команды SQL. Дополнительные сведения см. в статье о расширенных событиях.
Аварийные дампы
Ищите дампы в каталоге журналов в Linux. Проверьте в каталоге /var/opt/mssql/log
дампы Linux Core (.tar.gz2
расширение) или минидампы SQL (.mdmp
расширение).
Например, для просмотра дампов ядра:
sudo ls /var/opt/mssql/log | grep .tar.gz2
Для дампов SQL используйте следующий сценарий:
sudo ls /var/opt/mssql/log | grep .mdmp
Запуск SQL Server в режиме минимальной конфигурации или в однопользовательском режиме
Запуск SQL Server в режиме минимальной конфигурации
Этот режим полезен, если установка конфигурации (например, чрезмерная фиксация памяти) предотвращает запуск сервера.
sudo -u mssql /opt/mssql/bin/sqlservr -f
Запуск SQL Server в однопользовательском режиме
Иногда может потребоваться запустить экземпляр SQL Server в однопользовательском режиме с помощью параметра -m
запуска. Дополнительные сведения см. в статье о параметрах запуска. Например, может потребоваться изменить параметры конфигурации сервера или восстановить поврежденную master
базу данных или другую системную базу данных.
Например, используйте следующий скрипт для запуска SQL Server в однопользовательском режиме:
sudo -u mssql /opt/mssql/bin/sqlservr -m
Этот скрипт запускает SQL Server в однопользовательском режиме с sqlcmd:
sudo -u mssql /opt/mssql/bin/sqlservr -m sqlcmd
Вы всегда должны запускать SQL Server на Linux с пользователемmssql
, чтобы предотвратить будущие проблемы при запуске. Например: sudo -u mssql /opt/mssql/bin/sqlservr [STARTUP OPTIONS]
При случайном запуске SQL Server с другим пользователем необходимо передать права на файлы базы данных SQL Server пользователю mssql
, прежде чем запускать SQL Server с systemd. Например, чтобы изменить владельца всех файлов базы данных под /var/opt/mssql
на пользователя mssql
, выполните следующую команду:
chown -R mssql:mssql /var/opt/mssql/
Перестроение системных баз данных
В качестве крайней меры вы можете перестроить базы данных master
и model
до версий по умолчанию.
Предупреждение
Этот процесс является опасным, так как вы можете удалить все настроенные системные данные SQL Server, включая сведения о пользовательских базах данных (но не сами пользовательские базы данных).
После этого необходимо подключить пользовательские базы данных к экземпляру. Она также удаляет другие сведения, хранящиеся в системных базах данных, включая:
- Сведения о главном ключе базы данных (DMK)
- все сертификаты, загруженные в
master
- пароль для
sa
учетной записи - информация, связанная с работой, из
msdb
- Информация из Database Mail
msdb
-
sp_configure
параметры
Вы не можете повторно подключить какие-либо пользовательские базы данных, зашифрованные с помощью прозрачного шифрования данных (TDE), если ваши сертификаты и закрытые ключи также не резервируются.
Выполните эти действия, только если осознаете их потенциальные последствия.
Остановка ядра СУБД SQL Server
sudo systemctl stop mssql-server
Запустите sqlservr с параметром
force-setup
sudo -u mssql /opt/mssql/bin/sqlservr --force-setup
Вы всегда должны запускать SQL Server на Linux с пользователем
mssql
, чтобы предотвратить будущие проблемы при запуске.После того как появится сообщение "Восстановление завершено", нажмите клавишиCtrl+C. Это завершает работу SQL Server.
Перенастройка
sa
пароля.sudo /opt/mssql/bin/mssql-conf set-sa-password
Внимание
Пароль должен соответствовать политике паролей по умолчанию SQL Server. По умолчанию пароль должен быть не короче восьми символов и содержать три вида символов из следующих: прописные буквы, строчные буквы, десятичные цифры, специальные символы. Пароли могут иметь длину до 128 символов. Рекомендуется использовать максимально длинные и сложные пароли.
Запустите SQL Server и перенастройте сервер, включая восстановление или повторное подключение любых пользовательских баз данных.
sudo systemctl start mssql-server
Повышение производительности
Множество факторов влияют на производительность, в том числе структура базы данных, оборудование и требования к рабочим нагрузкам. Если вы хотите повысить производительность, начните с изучения статьи с рекомендациями по производительности и конфигурации для SQL Server в Linux. Затем изучите некоторые из доступных средств для устранения проблем с производительностью.
- Мониторинг производительности с использованием хранилища запросов
- Системные динамические административные представления
- Панель мониторинга производительности в SQL Server Management Studio
Распространенные проблемы
Не удается подключиться к удаленному экземпляру SQL Server.
См. раздел об устранении неполадок в статье Подключение к SQL Server в Linux.
Появится сообщение об ошибке:
ERROR: Hostname must be 15 characters or less.
Это известная проблема, возникающая, когда имя компьютера, который пытается установить пакет SQL Server, длиннее 15 символов. Сейчас способы обхода этой проблемы ограничены изменением имени компьютера. Это можно сделать, отредактировав как
/etc/hostname
, так и/etc/hosts
, изменив имя узла, сохранив каждый файл и перезагрузив компьютер.Пароль системного администратора (
sa
) должен быть сброшен, что временно останавливает службу SQL Server.Если вы забыли
sa
пароль или хотите сбросить его по какой-либо другой причине, выполните следующие действия.Войдите в терминал узла, выполните следующие команды и следуйте инструкциям по сбросу
sa
пароля:sudo systemctl stop mssql-server sudo /opt/mssql/bin/mssql-conf setup
Внимание
Пароль должен соответствовать политике паролей по умолчанию SQL Server. По умолчанию пароль должен быть не короче восьми символов и содержать три вида символов из следующих: прописные буквы, строчные буквы, десятичные цифры, специальные символы. Пароли могут иметь длину до 128 символов. Рекомендуется использовать максимально длинные и сложные пароли.
Специальные символы в паролях могут привести к ошибкам или сбоям входа.
Если вы используете в пароле SQL Server некоторые символы, может потребоваться экранировать их обратной косой чертой при использовании в командной строке Linux. Например, вы должны экранировать знак доллара (
$
) в любое время, когда вы используете его в скрипте командной или оболочки терминала:Не работает:
sudo sqlcmd -S myserver -U sa -P Test$$
Работает:
sqlcmd -S myserver -U sa -P Test\$\$
Связанный контент
Получить помощь
- Идеи об SQL. Есть рекомендации по улучшению SQL Server?
- Вопросы и ответы по продуктам Майкрософт (SQL Server)
- DBA Stack Exchange (тег sql-server): вопросы о SQL Server
- Stack Overflow (тег sql-server): ответы на вопросы о разработке SQL
- Условия лицензии и информация о Microsoft SQL Server
- Варианты поддержки для бизнес-пользователей
- Дополнительная справка и отзывы по SQL Server
Примите участие в разработке документации по SQL
Знаете ли вы, что содержимое SQL можно изменить самостоятельно? Это не только улучшит нашу документацию, но и даст вам статус участника в создании этой страницы.
Дополнительные сведения см. в разделе Редактирование документации Microsoft Learn.