Я разрабатываю службу, которая подключается к серверу ms sql 2017 (работает на сервере Windows 2016) и выполняет некоторую работу. Несколько лет все работало нормально, а теперь начало случайно отключаться. ошибка:
SQLSTATE[08S01]: [Microsoft][Драйвер ODBC 17 для SQL Server]Поставщик TCP: существующее соединение было принудительно закрыто удаленным хостом .
Просмотр событий ничего не показывает. В тестовых базах данных есть некоторые ошибки (я не администратор):
Основная база данных доставки журналов SRV\DATA.testdb1 имеет порог резервного копирования 60 минут. и не выполнял операции резервного копирования журнала в течение 696777 минут. Проверьте журнал агента и информацию монитора доставки журналов.
Я не думаю, что они имеют какое-либо отношение к этой проблеме. Его даже нет в производственной базе данных — это старая копия, созданная для тестирования.
Дополнительная информация:
Я подключаюсь с помощью PHP. PHP и расширение/драйвер устарели — 7.4. Я обновил его до версии 8.2 и получил последнюю версию драйвера от Microsoft.
Сервер открыт для доступа в Интернет. Вполне возможно, что большое количество попыток взлома может привести к слишком большому количеству соединений.
Я сделал простой тест, который подключает и выбирает строку из таблицы. Иногда он выходит из строя сразу, иногда он работает несколько дней, прежде чем выйдет из строя.
Как мне это отладить? Могу ли я заставить SQL-сервер регистрировать причину отключения?
Обновить
Вот несколько ошибок из журнала. Эти две ошибки произошли примерно через 3 минуты. из письма об ошибке. Они также взяты из источника, который не сообщает о сообщениях об отсутствии резервного копирования:
Error: 59999, severity 16, state 1 was raised, but no message with that error number was found in sys.messages. If error is larger than 50000, make sure the user-defined message is added using sp_addmessage.
Error: 18054, Severity: 16, State: 1.
Они также сопровождаются сообщениями «нет резервного копирования», но они касаются временных тестовых баз данных:
Error: 14420, Severity: 16, State: 1.
Error: 3041, Severity: 16, State: 1.
Подробнее здесь: https://stackoverflow.com/questions/782 ... the-client