Разное

1С sql база данных не обнаружена: 404 — Страница не найдена

Содержание

Решение проблемы, когда не найден сервер 1С:Предприятие

Решаемая задача: Восстановление работоспособности сервера и программы 1С.

Для выполнения описанных действий требуется учетная запись Администратора.

Проверка программ и служб на работоспособность

Шаг 1. Проверяем доступность порта соединения

С:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 –port

Этот адрес меняется в зависимости от версии 1С:

  • C:\Program Files (x86)\1cv8\\bin — для 32-разрядной версии сервера «1С:Предприятие» версии 8.3
  • C:\Program Files\1cv8\\bin — для 64-разрядной версии сервера «1С:Предприятие» версии 8.3
  • C:\Program Files (x86)\1cv82\\bin — для 32-разрядной версии сервера «1С:Предприятие» версии 8.2
  • C:\Program Files\1cv82\\bin — для 64-разрядной версии сервера «1С:Предприятие» версии 8.2

Шаг 2. Проверяем в процессах есть ли «rphost.exe» «ragent.exe» «rmngr.exe», он должен быть активен.

Шаг 3. Проверяем запущен ли агент сервера 1С в службах и сравниванием версию и порт в строке «Исполняемый файл»

Шаг 4. Проверяем работоспособность сервера MS SQL

Выполняем: Пуск – Программы — Microsoft SQL Server 2008 R2 (у Вас может быть любая версия ) — Средства настройки.

Напротив служб «SQL Server» и «Агент SQL Server» должен быть статус Работает.

Если всё запущено и не работает

Шаг 5. Останавливаем службу 1С

В командной строке:

net stop "1C:Enterprise 8.3 Server Agent (x86-64)"

Шаг 6. Переходим к удалению процессов

Далее по очередности удаляем процессы:

TASKKIll /F /FI "IMAGENAME eq rphost*"

TASKKIll /F /FI "IMAGENAME eq rmngr*"

TASKKIll /F /FI "IMAGENAME eq ragent*"

Шаг 7. Чистим временные папки и файлы

Далее нужно будет почистить папки 1С с временными файлами с папками типа:

По таким адресам чистим папки подобного типа как на картинке:

C:\Users\ «Пользователь»\AppData\Local settings\Application data\1C\1Cv82\
C:\Users\ «Пользователь»\AppData\Local settings\Application data\1C\1Cv8
C:\Users\ «Пользователь»\AppData\Roaming\1C\1Cv82
C:\Users\ «Пользователь»\AppData\Roaming\1C\1Cv8)
С:\Program Files\1cv8\srvinfo\reg_1541\

Когда выполнили все условия, переходим к шагу запуска 1С.

Шаг 8. Запускаем службу 1С

net start "1C:Enterprise 8.3 Server Agent (x86-64)"

Теперь всё должно работать.

не обнаружена установленная версия 1С


Содержание:


1.       Причины ошибки «Не обнаружена установленная версия 1С»


2.       Из-за чего 1С выдает ошибку?


Прекрасным солнечным утром, придя на работу и включив компьютер, можно столкнуться с неприятной ситуацией, когда при запуске 1C появляется следующее:


 



 


В этой статье постараемся разобраться в причинах возникновения ошибки, и возможных вариантах её исправления.


 

1.   Причины ошибки «Не обнаружена установленная версия 1С»


Причин возникновения ошибки может быть несколько:


            — Перенос 1С на другой компьютер;


            — переустановка Windows;


            — обновление версии платформы;


            — изменение списка информационных баз 1С Предприятия;


            — внесение изменений в конфигурационные файлы 1С.


Давайте попробуем самостоятельно разобраться в том, что же именно произошло. Для этого нам потребуется открыть наш список информационных баз в программе 1С предприятие 8, выбрать базу 1С что не запускается, и нажать кнопку «Изменить», находящуюся справа от списка.


 



Теперь мы оказались в окне настроек нашей информационной базы 1С Предприятия. Нам нужно перейти на следующую страницу настроек, нажав кнопку «Далее».


 



И вот она строка, из-за которой и возникла проблема: «Версия 1С:Предприятия»



 


Именно она отвечает за то, какая именно версия платформы будет запущена для нашей информационной базы 1С Предприятия.


Для дальнейшего понимания сути нужно сделать небольшое отступление и рассказать немного про обновление версии платформы. На самом деле, версия платформы не обновляется, а устанавливается новая. При этом старая версия не удаляется. Таким образом на нашем компьютере может быть сколь угодно много различных версий платформы. Все эти версии по умолчанию устанавливаются в папку C:\Program Files (x86)\1cv8, ну, или если у вас 64-х битная версия Windows, то C:\Program Files\1cv8.



Также список установленных версий платформ можно посмотреть, открыв меню:


·         Для Winsows 7: Пуск → Панель управления → Программы и компоненты;


·         Для Windows 10: Пуск → Параметры Windows → Приложения.



Итак, вернемся к нашему параметру «Версия 1С:Предприятия». Если у нас появляется ошибка «Не обнаружена установленная версия 1С», значит либо у нас не установлена нужная версия платформы, указанная в параметре, либо версия платформы в параметре указана неверно. Этот параметр может состоять из нескольких разрядов. Чем правее число, тем меньше разряд. Младший разряд зависит от старшего, то есть мы можем указать только старшие разряды, а система сама выберет самый последний из младшего. Например, у нас установлено только две версии платформы: 8.3.14.65 и 8.3.14.77. Если в параметре «Версия 1С:Предприятия» указать 8.3.14, или просто 8.3, то система сама запустит версию платформы 8.3.14.77. Даже если ничего не указать, то система проанализирует какие платформы установлены и запустит самую новую версию. 


2.   Из-за чего 1С выдает ошибку?


Ошибка в программе 1С предприятие 8 возникает, если наша конфигурация использует версию платформы 8.3.хх.хх, а в параметре «Версия 1С:Предпирятия» указано 8.2, 8.1 или 8.0.


В таком случае нужно просто ничего не указывать в данном параметре, либо знать нужную для запуска версию платформы и проверить ее установку на вашем компьютере.


Для более продвинутых специалистов сферы IT скажу, что все эти параметры информационных баз, как и сам их список, хранятся по умолчанию в файле ibases.v8i в папке C:\Users\«Имя_Пользователя»\AppData\Roaming\1C\1CEStart.


Не буду вдаваться в подробности описания всех параметров файла конфигурации информационных баз, так как для решения рассматриваемой сегодня проблемы нам нужно знать только то, что в квадратных скобках указывается Имя нашей информационной базы, а параметр Version=8.3 – это как раз та версия платформы, на которой необходимо запускать нашу конфигурацию. Формат файла текстовый в кодировке UTF, так что его можно редактировать даже стандартным блокнотом.



Надеюсь, данный материал был Вам полезен и помог справиться с проблемой запуска программы.


Специалист компании ООО «Кодерлайн»


Цветов Дмитрий Александрович

Устранение неполадок при соединении с ядром СУБД SQL Server. — SQL Server



  • Чтение занимает 13 мин

В этой статье

Применимо к: SQL Server (все поддерживаемые версии)

В этой статье описаны методы поиска и устранения неполадок, при которых не удается подключиться к экземпляру ядра СУБД SQL Server на отдельном сервере.

Примечание

Для других сценариев см. такие материалы:

Эти инструкции не входят в процедуры решения наиболее вероятных проблем, так как, скорее всего, вы уже пробовали выполнить эти процедуры. Сначала указываются шаги по устранению базовых ошибок, а затем рассматриваются более сложные вопросы. При выполнении этих действий предполагается, что вы подключаетесь к экземпляру SQL Server с другого компьютера по протоколу TCP/IP, так как этот вариант является наиболее распространенным.

Эти инструкции предназначены для устранения неполадок, связанных с ошибкой «Подключение к серверу» (например, Error Number: 11001 (or 53), Severity: 20, State: 0). В следующем примере показано сообщение об ошибке:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.

(provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 53)

(provider: TCP Provider, error: 0 - No such host is known.) (Microsoft SQL Server, Error: 11001)

Эта ошибка обычно означает, что клиенту не удается найти экземпляр SQL Server. Обычно это происходит при наличии хотя бы одной из следующих проблем:

  • Имя компьютера, на котором размещен SQL Server
  • экземпляр не может правильно разрешить IP-адрес;
  • номер TCP-порта указан неправильно.

Совет

Интерактивную страницу по устранению неполадок можно найти на сайте службы технической поддержки Microsoft на странице Solving Connectivity errors to SQL Server (Устранение ошибок подключения к SQL Server).

Ошибки, не описанные в статье

Получение имени экземпляра из диспетчера конфигурации

На сервере, на котором размещен экземпляр SQL Server, проверьте имя экземпляра. Используйте диспетчер конфигурации SQL Server.

Диспетчер конфигурации автоматически устанавливается на компьютер при установке SQL Server. Инструкции по запуску диспетчера конфигурации могут незначительно отличаться в зависимости от версии SQL Server и Windows. Подробные сведения об определенных версиях см. в статье Диспетчер конфигурации SQL Server.

  1. Войдите на компьютер, на котором размещен экземпляр SQL Server.

  2. Запустите диспетчер конфигурации SQL Server.

  3. На левой панели выберите Службы SQL Server.

  4. На правой панели проверьте имя экземпляра ядра СУБД.

    • SQL SERVER (MSSQLSERVER) — это экземпляр SQL Server по умолчанию. <computer name> — имя экземпляра по умолчанию.
    • SQL SERVER (<instance name>) — это именованный экземпляр SQL Server. <computer name>\<instance name> — имя именованного экземпляра.

Проверка выполнения экземпляра

Проверить, выполняется ли экземпляр, позволяет значок около экземпляра SQL Server в диспетчере конфигурации.

  • Если экземпляр выполняется, отображается зеленая стрелка.
  • Красный квадрат означает, что экземпляр остановлен.

Если экземпляр остановлен, щелкните его правой кнопкой мыши и выберите команду Запустить. Экземпляр будет запущен, и красный квадрат поменяется на зеленую стрелку.

Убедитесь, что служба обозревателя SQL Server запущена

Чтобы подключиться к именованному экземпляру, нужно запустить службу обозревателя SQL Server. В диспетчере конфигурации найдите службу Обозреватель SQL Server и проверьте, запущена ли она. Если она не работает, запустите ее. Служба обозревателя SQL Server не требуется для экземпляров по умолчанию.

Экземпляр SQL Server по умолчанию не требует службы «Обозреватель SQL Server».

Тестирование локального подключения

Перед устранением неполадки, связанной с подключением с другого компьютера, нужно проверить возможность подключения из клиентского приложения, установленного локально на компьютере, на котором запущен SQL Server. Локальное подключение позволяет избежать проблем, связанных с сетями и брандмауэрами.

В этой процедуре используется среда SQL Server Management Studio. Если среда Management Studio не установлена, см. раздел Скачивание SQL Server Management Studio (SSMS). Если установить Management Studio не получается, вы можете проверить соединение с использованием служебной программы sqlcmd.exe. sqlcmd.exe устанавливается вместе с ядром СУБД. Дополнительные сведения о sqlcmd.exeсм. в разделе Программа sqlcmd.)

  1. Войдите на компьютер, на котором установлен SQL Server, с помощью имени входа с разрешением на доступ к SQL Server. (Во время установки для SQL Server требуется задать по меньшей мере одно имя входа в качестве администратора SQL Server. Если администратор неизвестен, см. сведения в статье Подключение к SQL Server в случае, если доступ системных администраторов заблокирован.)

  2. На начальной странице введите SQL Server Management Studio. В более старых версиях Windows в меню «Пуск» выберите Все программы, Microsoft SQL Server, а затем щелкните SQL Server Management Studio.

  3. В диалоговом окне Соединение с сервером в списке Тип сервера выберите Ядро СУБД. В поле Проверка подлинности выберите Проверка подлинности Windows. В поле Имя сервера задайте один из следующих типов подключения:

    Подключение кТипПример
    Экземпляр по умолчанию<computer name>ACCNT27
    Именованный экземпляр<computer name\instance name>ACCNT27\PAYROLL

    Примечание

    При подключении к SQL Server из клиентского приложения на том же компьютере используется протокол общей памяти. Общая память — это тип локального именованного канала, поэтому иногда возникают ошибки, связанные с каналами.

    Если на этом этапе происходит ошибка, ее необходимо устранить перед продолжением работы. Существует целый ряд потенциальных проблем. Имя входа может не иметь разрешений для подключения. Может отсутствовать база данных по умолчанию.

    Примечание

    В некоторых сообщениях об ошибках, передаваемых клиенту, намеренно не приведены достаточные сведения для устранения неполадок. Это связано с обеспечением безопасности, так как в этом случае злоумышленник не может получить данные о SQL Server. Чтобы просмотреть полные сведения об ошибке, обратитесь к журналу ошибок SQL Server. Там вы найдете все подробности.

  4. Если возникает ошибка 18456 Login failed for user, дополнительные сведения о кодах ошибки см. в описании ошибки MSSQLSERVER_18456. Подробный список кодов ошибок приведен в блоке Аарона Бертрана (Aaron Bertrand) в статье Troubleshooting Error 18456 (Устранение ошибки 18456). Журнал ошибок можно просмотреть помощью среды SSMS (при наличии соединения) в разделе «Управление» обозревателя объектов. В противном случае журнал можно просмотреть с помощью программы Блокнот Windows. Расположение по умолчанию зависит от версии и может быть изменено во время установки. Расположением по умолчанию для SQL Server 2019 (15.x) является C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG.

  5. Если соединение устанавливается с помощью общей памяти, проверьте его с использованием TCP. Вы можете принудительно задать TCP-подключение, указав tcp: перед именем. Пример:

    Подключение кТип:Пример
    Экземпляр по умолчаниюtcp:<computer name>tcp:ACCNT27
    Именованный экземплярtcp:<computer name/instance name>tcp:ACCNT27\PAYROLL
  6. Если соединение устанавливается с помощью общей памяти, но не TCP, необходимо устранить проблему с TCP. Скорее всего, проблема в том, что TCP-протокол отключен. Сведения о включении TCP см. в разделе Включение протоколов выше.

  7. Если вы хотите установить соединение с использованием учетной записи, отличной от учетной записи администратора, после соединения с правами администратора повторите попытку, используя имя входа для проверки подлинности Windows или имя входа для проверки подлинности SQL Server, которое использует клиентское приложение.

Получение IP-адреса сервера

Получите IP-адрес компьютера, на котором размещен экземпляр SQL Server.

  1. В меню «Пуск» щелкните Выполнить. В окне Выполнить введите cmd, а затем нажмите кнопку ОК.
  2. В окне командной строки введите ipconfig и нажмите клавишу ВВОД. Запишите IPv4 -адрес и IPv6 -адрес.

SQL Server может использовать для подключения IP-протокол версии 4 или версии 6. В вашей сети может быть разрешен один из них или оба. Большинство пользователей начинает устранение неполадок с IPv4 -адреса. Он короче и проще для ввода.

Получение данных о номере TCP-порта для экземпляра SQL Server

В большинстве случаев соединение с ядром СУБД SQL Server с другого компьютера устанавливается по протоколу TCP.

  1. Используя SQL Server Management Studio на компьютере с SQL Server, подключитесь к экземпляру SQL Server. В обозревателе объектов разверните узел Управление, разверните Журналы SQL Server, а затем дважды щелкните текущий журнал.
  2. В средстве просмотра журнала нажмите кнопку Фильтр на панели инструментов. В поле Сообщение содержит текст введите server is listening on, щелкните Применить фильтр, а затем — ОК.
  3. Должно отобразится сообщение, подобное этому: Server is listening on [ 'any' <ipv4> 1433].

Сообщение означает, что этот экземпляр SQL Server прослушивает все IP-адреса на этом компьютере (для IP-протокола версии 4) и TCP-порт 1433. (TCP-порт 1433 — это порт, обычно используемый ядром СУБД или экземпляром SQL Server по умолчанию. Использовать определенный порт может только один экземпляр SQL Server. Поэтому, если установлено несколько экземпляров SQL Server, некоторые из них должны работать с другими номерами портов.) Запишите номер порта для того экземпляра SQL Server, к которому вы пытаетесь подключиться.

Примечание

Вероятно, что будет указан IP address 127.0.0.1. Он называется петлевым адресом адаптера. Использовать его для подключения могут только процессы, выполняющиеся на одном компьютере. Он может быть полезен при устранения неполадок, но не подходит для соединения с другого компьютера.

Включение протоколов

В некоторых установках SQL Server соединение с компонентом Database Engine с другого компьютера по умолчанию отключено, если администратор не включил его с помощью диспетчера конфигурации. Чтобы разрешить соединения с других компьютеров, нужно выполнить указанные ниже действия.

  1. Запустите диспетчер конфигурации SQL Server, как описано выше.
  2. В диспетчере конфигурации на левой панели разверните узел Сетевая конфигурация SQL Server, а затем выберите экземпляр SQL Server, к которому нужно подключиться. На правой панели перечислены доступные протоколы соединений. Как правило, включена общая память. Ее можно использовать только на том же компьютере, поэтому в большинстве установок общая память остается включенной. Для подключения к SQL Server с другого компьютера обычно используется протокол TCP/IP. Если TCP/IP не включен, щелкните элемент TCP/IP правой кнопкой мыши и выберите команду Включить.
  3. Если включенный параметр для протокола был изменен, необходимо перезапустить ядро СУБД. На левой панели выберите Службы SQL Server. На правой панели щелкните экземпляр Database Engine правой кнопкой мыши и выберите команду Перезапустить.

Тестирование подключения TCP/IP

Для подключения к SQL Server по протоколу TCP/IP требуется возможность установки соединения в Windows. Для тестирования TCP-подключения воспользуйтесь средством ping .

  1. В меню «Пуск» щелкните Выполнить. В окне Выполнить введите cmd, а затем нажмите кнопку ОК.

  2. В окне командной строки введите ping <ip address> и IP-адрес компьютера, на котором запущен SQL Server. Пример:

    • IPv4: ping 192.168.1.101
    • IPv6: ping fe80::d51d:5ab5:6f09:8f48%11
  3. Если сеть настроена правильно, команда ping возвращает Reply from <IP address> и некоторые дополнительные сведения. Если ping возвращает Destination host unreachable или Request timed out, значит TCP/IP настроен неправильно. На этом этапе ошибка может указывать на проблему с клиентским компьютером, компьютером сервера или сетевую проблему, например ошибку маршрутизатора. Сведения об устранении неполадок сети см в статье Advanced troubleshooting for TCP/IP issues (Устранение проблем TCP/IP повышенной сложности).

  4. Затем, в случае успешной проверки связи с использованием IP-адреса, убедитесь, что имя компьютера может быть разрешено в TCP/IP-адрес. На клиентском компьютере в окне командной строки введите ping и имя компьютера, на котором запущен SQL Server. Например, ping newofficepc.

  5. Если команда ping для IP-адреса выполняется успешно, но ping по имени компьютера возвращает Destination host unreachable или Request timed out, причиной могут быть устаревшие сведения о разрешении имен, сохраненные в кэше клиентского компьютера. Введите ipconfig /flushdns , чтобы очистить кэш DNS. Затем проверьте связь с компьютером по имени еще раз. Клиентский компьютер с пустым кэшем DNS проверяет наличие последних сведений об IP-адресе компьютера сервера.

  6. Если сеть настроена правильно, команда ping возвращает Reply from <IP address> и некоторые дополнительные сведения. Если проверка связи с компьютером сервера по IP-адресу выполняется успешно, но при проверке связи по имени компьютера поступает сообщение об ошибке Destination host unreachable. или Request timed out., значит, разрешение имен настроено неправильно. (Дополнительные сведения см. в упомянутой ранее статье 2006 г. How to Troubleshoot Basic TCP/IP Problems (Устранение основных проблем с TCP/IP).) Для подключения к SQL Server успешное разрешение имен не требуется, но, если нельзя разрешить имя компьютера в IP-адрес, подключения следует выполнять по IP-адресам. Разрешение имен можно исправить позже.

Открытие порта в брандмауэре

По умолчанию брандмауэр Windows включен и блокирует подключения с других компьютеров. Чтобы подключиться с использованием протокола TCP/IP с другого компьютера, на компьютере SQL Server необходимо настроить брандмауэр для разрешения подключений к TCP-порту, используемому компонентом Database Engine. Экземпляр по умолчанию прослушивает по умолчанию TCP-порт 1433. Если запущены именованные экземпляры или вы изменили значение по умолчанию, TCP-порт SQL Server может прослушивать другой порт. См. раздел Получение данных о номере TCP-порта для экземпляра SQL Server.

При подключении к именованному экземпляру или порту, отличному от TCP-порта 1433, необходимо также открыть UDP-порт 1434 для службы обозревателя SQL Server. Пошаговые инструкции по открытию портов в брандмауэре Windows см. в статье Настройка брандмауэра Windows для доступа к компоненту Database Engine.

Проверка подключения

После того как появилась возможность соединения с использованием TCP на том же компьютере, нужно проверить подключение с клиентского компьютера. Теоретически можно использовать любое клиентское приложение, но чтобы избежать дополнительных сложностей, установите средства управления SQL Server на клиентском компьютере и попытайтесь запустить среду SQL Server Management Studio.

  1. На клиентском компьютере с помощью среды SQL Server Management Studio попробуйте подключиться, используя IP-адрес и номер TCP-порта в формате «IP-адрес, номер порта». Например, 192.168.1.101,1433. Если этот вариант не работает, вероятно, возникла одна из таких проблем:

  2. Если вы можете подключиться с помощью IP-адреса и номера порта, попробуйте подключиться, используя IP-адрес без указания номера порта. Для экземпляра по умолчанию просто используйте IP-адрес. Для именованного экземпляра используйте IP-адрес и имя экземпляра в формате «IP-адрес\имя экземпляра», например 192.168.1.101\<instance name>. Если этот вариант не работает, вероятно, возникла одна из следующих проблем:

    • Если вы подключаетесь к экземпляру по умолчанию, возможно, он прослушивает порт, отличный от TCP-порта 1433, а клиент пытается подключиться к неправильному номеру порта.
    • Если вы подключаетесь к именованному экземпляру, номер порта не возвращается клиенту.

    Обе эти проблемы связаны со службой обозревателя SQL Server, которая предоставляет клиенту номер порта. Далее приводятся возможные решения.

    • Запустите службу обозревателя SQL Server. См. инструкции по запуску обозревателя в диспетчере конфигурации SQL Server.
    • Служба обозревателя SQL Server блокируется брандмауэром. Откройте UDP-порт 1434 в брандмауэре. Вернитесь к разделу Открытие порта в брандмауэре. Убедитесь, что вы открываете UDP-порт, а не TCP-порт.
    • Данные о UDP-порте 1434 блокируются маршрутизатором. Соединения по протоколу UDP не предназначены для передачи через маршрутизаторы. Это исключает попадание трафика с низким приоритетом в сеть. Вы можете настроить в маршрутизаторе пересылку UDP-трафика или же всегда указывать номер порта при подключении.
    • Если клиентский компьютер работает под управлением Windows 7 или Windows Server 2008 (или более поздней операционной системы), ОС может отбрасывать UDP-трафик, поскольку ответ с сервера возвращается с IP-адреса, отличного от запрошенного. Это функция безопасности, блокирующая свободное сопоставление источника. Дополнительные сведения см. в разделе Сервер с несколькими IP-адресами статьи электронной документации Устранение неполадок. Время ожидания истекло. Это статья о SQL Server 2008 R2, но ее основные тезисы можно применить также к рассматриваемому вопросу. Вы можете настроить в клиенте использование правильного IP-адреса или же всегда указывать номер порта при подключении.
  3. Если вы можете установить соединение с помощью IP-адреса (или IP-адреса и имени экземпляра именованного экземпляра), попробуйте подключиться с помощью имени компьютера (или имени компьютера и имени экземпляра именованного экземпляра). Чтобы принудительно установить подключение TCP/IP, укажите tcp: перед именем компьютера. Например, для экземпляра по умолчанию на компьютере с именем ACCNT27используйте tcp:ACCNT27 . Для именованного экземпляра PAYROLLна этом компьютере используйте tcp:ACCNT27\PAYROLL . Если можно подключиться с помощью IP-адреса, но не имени компьютера, то существует проблема с разрешением имени. Вернитесь к разделу Тестирование подключения TCP/IP, подраздел 4.

  4. Если вы можете подключиться с помощью имени компьютера, активирующего TCP, попробуйте подключиться с использованием имени компьютера, но без принудительной активации TCP. Например, для экземпляра по умолчанию используйте только имя компьютера, например CCNT27. Для именованного экземпляра используйте имя компьютера и имя экземпляра, например ACCNT27\PAYROLL. Если вы можете установить соединение с активацией TCP, но не можете без активации TCP, возможно, клиент использует другой протокол (например, именованные каналы).

    1. На клиентском компьютере в левой панели диспетчера конфигурации SQL Server разверните узел Конфигурация клиента SQL Native Client версия, а затем выберите Клиентские протоколы.
    2. Убедитесь, что протокол TCP/IP на правой панели включен. Если протокол TCP/IP не включен, правой кнопкой мыши щелкните TCP/IP и выберите команду Включить.
    3. Убедитесь в том, что в последовательности протоколов TCP/IP используются значения, меньше чем для протоколов именованных каналов (или протоколов VIA в более старых версиях). Обычно общая память должна быть указана как первый порядок, а TCP/IP — как второй. Общая память используется только в том случае, когда клиент и сервер SQL выполняются на том же компьютере. Все включенные протоколы опрашиваются в указанном порядке до получения успешного результата. Следует отметить, что при установке соединения с другим компьютером общая память пропускается.

Ошибки SQL сервера

Отказ со стороны Microsoft SQL Server в доступе сервера 1С:Предприятия к базе данных от имени пользователя SQL сервера является наиболее частой причиной сообщения об ошибке, возникающего при попытке подсоединения клиентского приложения 1С:Предприятия к клиент-серверной информационной базе. К таким ошибкам относятся:

Microsoft OLE DB Provider for SQL Server: [DBNETLIB][Connection Write (WrapperWrite()).] General network error. Check your network documentation. HRESULT=80004005, SQLSTATE=08S01, native=11

Ошибка может возникнуть в следующих ситуациях:

  • на SQL сервере установлен режим аутентификации «Windows only»;


  • к данным от Microsoft SQL Server 7.0 (MDAC 2.1) применяются клиентские компоненты;


  • на клиентском компьютере используется протокол «Multiprotocol» для доступа к SQL Server.

Чтобы исправить положение, желательно настроить доступ к SQL серверу.

Microsoft OLE DB Provider for SQL Server: Connection failure. HRESULT=80004005, SQLSTATE=08501, native=0

Ошибка могла возникнуть при перезагрузке SQL сервера во время работы сервера 1С:Предприятия. Если данная ошибка появилась, то необходимо перезагрузить также сервер 1С:Предприятия.

Microsoft OLE DB Provider for SQL Server: [DBNMPNTW][ConnectionOpen (CreateFile()).] HRESULT=80004005, SQLSTATE=01000, native=1326

Для начала, обратите внимание на идентификатор библиотеки, который записан в квадратных скобках. Список некоторых возможных значений представлен ниже:

DBNETLIB — библиотека, которая используется на клиенте SQL сервера для доступа к SQL серверу по любому протоколу.


dbnmpntw — протокол Named Pipes для Win32


dbmssocn — протокол Winsock TCP/IP для WIN32


dbmsspxn — протокол SPX/IPX для WIN32


dbmsvinn — протокол Banyan Vines для Win32


dbmsrpcn — протокол Multi-Protocol (Windows RPC) для Win32


dbnmp3 — протокол Named Pipes для Win16


dbmssoc3 — протокол Winsock TCP/IP для Win16


dbmsspx3 — протокол SPX/IPX для Win16


dbmsvin3 — протокол Banyan Vines для Win16


dbmsrpc3 — протокол Multi-Protocol (Windows RPC) для Win16

В данном примере при попытке обращения к серверу 1С:Предприятия по протоколу «Named Pipes» пользователю USER1CV8SERVER (от его имени работает сервер 1С:Предприятия) отказано в доступе системой безопасности того компьютера, на котором установлен SQL сервер. Чтобы исправить ошибку, следует либо использовать другой протокол, либо обеспечить компьютеру с SQL сервером возможность аутентификации пользователя USER1CV8SERVER.

Microsoft OLE DB provider for SQL Server: Cannot open database request in Login «upp». Login fails.

Если у Вас появилось такое сообщение, это говорит о нештатном завершении сервера 1С:Предприятия, когда информационная база находилась в монопольном режиме. В это время база данных SQL сервера остается в однопользовательском режиме, и сервер 1С:Предприятия не может к ней присоединиться. Чтобы исправить данную ошибку, запустите Microsoft SQL Server Enterprise Manager, войдите в свойства базы данных, где располагается информацианная база, и выключите однопользовательский режим.

Microsoft OLE DB provider for SQL Server: The database could not be exclusive locked to perform the operation. HRESULT=80040E14, SQLSTATE=42000, native=5030

Подобная ошибка может возникать, если для выполнения какого-то действия в 1С:Предприятии нужно перевести информационную базу в режим монопольного доступа, а перевод базы данных в однопользовательский режим невозможен из-за того, что к ней, вместе с сервером 1С:Предприятия, подсоединено еще какое-либо приложение. Для выполнения необходимых действий, которые требуют монопольный доступ к информационной базе, необходимо отключиться от соответствующей базы данных всеми другими приложениями. Приложения, которые подсоединены к базе данных, можно найти в Microsoft SQL Server Query Analyzer.

Особенности исполнения запросов SQL сервером

Главная причина возникновения следующих ошибок — особенности исполнения запросов SQL сервером Microsoft SQL Server. Ошибки могут возникать в следующих ситуациях:

  • достижение недокументированных программных ограничений SQL сервера;


  • проявление на конкретном SQL запросе ошибок Microsoft SQL Server.

Эти ошибки встречаются довольно редко, и обычно, чтобы их устранить, просто переписывают запрос по-иному.

Microsoft OLE DB provider for SQL Server: Cannot perform an aggregate function on an expression containing an aggregate or a subquery. HRESULT=80040E14, SQLSTATE=42000, native=130

Данная ошибка означает, что выражение, вложенное в агрегатные функции или использованное в разделе СГРУППИРОВАТЬ ПО, содержит вложенные запросы. Начиная с 1С:Предприятия 8.0.9.32, данную ошибку диагностирует компилятор языка запросов.

Microsoft OLE DB provider for SQL Server: only text pointer are allowed in work tables, never text, text or image column. The query processor produced a query plan that reqied text, ntext or image column in work table. HRESULT=80040E14, SQLSTATE=42000, native=8226

Ошибка может возникнуть при построении планов запросов, которые включают вложенные запросы и операцию объединения таблиц. Чтобы предотвратить данную ошибку, избегайте объединения полей типа Строка ограниченной длины с полями типа Строка неограниченной длины, если при этом они являются результатами вложенных запросов. Начиная с версии 8.0.11.3, платформа 1С:Предприятия не накладывает каких-либо ограничений на пользовательские запросы.

Microsoft OLE DB Provider for SQL Server: SqlDumpExceptionHandler: Process 52 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process. HRESULT=80040E14, SQLSTATE=42000, native=0

Ошибка может возникать при исполнении сложных запросов. Если у Вас выскочило сообщение о такой ошибке, попробуйте видоизменить запрос.

Microsoft OLE DB provider for SQL Server: Too many table names in the query. The maximum allowable is 256. HRESULT=80040E14, SQLSTATE=42000, native=106

Microsoft SQL Server 2000 и 2005 позволяют использовать в простом запросе не более 256 таблиц базы данных. Если количество таблиц превышает 256, то выдается сообщение об ошибке. Начиная с версии 8.0.11.3 платформа 1С:Предприятия выдает диагностику без завершения работы клиентского приложения.

Microsoft OLE DB provider for SQL Server: ORDER BY items must appear in the select list if the statement contains a UNION operator. HRESULT=80040E14, SQLSTATE=42000, native=104

  Во избежание возникновения данной ошибки не используйте вложенных запросов с разделами «УПОРЯДОЧИТЬ ПО», если исходный запрос содержит операцию «ОБЪЕДИНИТЬ».

Microsoft OLE DB provider for SQL Server: Warning: The query processor could not produce a query plan from the optimizer because the total length of all the columns in the GROUP BY or ODER BY clause exceeds 8000 bytes. Resubmit your query without the ROBUST PLAN hint. HRESULT=80040E14, SQLSTATE=42000, native=8618

Данная ошибка возникает в случае группировки записей и вычисления агрегатных функций, если при этом группировка выполняется над результатом вложенного запроса, и длина записи результата этого запроса превышает 4000 байт. Причиной такой ошибки является неправильное вычисление Microsoft SQL Server 2000 максимальной длины результата операции SUBSTRING над полем неограниченной длины.

Ошибки при выполнении операций над данными

Такие ошибки могут возникать при выполнении запросов сервером в случае, если значениями выражений оказываются данные, которые недопустимы для объявленных типов.

Microsoft OLE DB provider for SQL Server: Adding a value to a ‘datetime’ column caused overflow. HRESULT=80040E07, SQLSTATE=22077, native=517

Данная ошибка возникает при выполнении функций над датами в том случае, когда в качестве результата получается слишком большая или слишком маленькая дата. Минимально допустимой датой является 1 января 1753 года, а максимально допустимой — 31 декабря 9999 года.

Ошибки размещения базы данных

Причинами сообщений об ошибках из этой группы является аварийная ситуация на компьютере, на котором установлени сервер SQL.

Microsoft OLE DB provider for SQL Server: Could not allocate space for object ‘_AccumReg224NG’ in database ‘…’ because the ‘PRIMARY’ filegroup is full. HRESULT=80004500, SQLSTATE=42000, native=1105

Подобное сообщение может возникнуть при загрузке информационной базы или при ее реструктуризации в том случае, если диск с базой данных SQL сервера имеет недостаточно свободного места.

Ошибки исполнения транзакций

Сообщения данного типа могут возникнуть при высокой загрузке сервера 1С:Предприятия из-за возникших конфликтов транзакционных блокировок записей. Если у Вас возникло подобное сообщение, повторите выполнение того же самого интерактивного действия.

Microsoft OLE DB provider for SQL Server: Transaction (Process ID 53) was deadlocked on lock resources with another process and has been chosen as the deadlock vitim. Rerun the transaction. HRESULT=80004005, SQLSTATE=40001, native=1205

Сообщение означает взаимную блокировку транзакций, начатых двумя или большим количеством пользователей. Если такое сообщение появляется часто, это свидетельствует о неудачных решениях, реализованных в конфигурации. Чтобы бороться со взаимной блокировкой, используют ключевое слово «ДЛЯ ИЗМЕНЕНИЯ» в языке запросов.

Статьи на схожую тематику:

Занимательно о сервере,

Самое главное о SQL сервере

Лицензия 1C 8.3 не обнаружена

Одна из частых ошибок 1C 8.3, подобная отсутствию ключа защиты в прежних версиях, — система сообщает «программная лицензия 1C 8.3 не обнаружена». Если учесть, что 1С не сообщает подробности возникновения ошибки, то за данным сообщением могут быть скрыты несколько проблем, связанных с защитой программной части и лицензированием.

Что делать в подобном случае? Если требуется программная лицензия, то следует обратиться в региональный центр лицензирования, получить лицензионный ключ и произвести активацию системы.

Как активировать лицензию 1С:

Пошаговое описание процесса активации лицензионного продукта:

  1. После запуска системы на экране возникает сообщение об отсутствии лицензионной информации «лицензия 1С 8.3 не обнаружена». Нажимаем кнопку «Да».
  2. Далее следует выбрать устройство, на котором требуется установить лицензию. Это либо данный компьютер или устройства сервера 1С:.
  3. На данном этапе выбирается способ получения лицензии — первичный или повторный, а также категория пользователей, имеющих доступ к работе с системой. Оптимальным будет разрешение для любого пользователя. Этот шаг в будущем значительно упростит запуск программного продукта.
  4. Выбирается способ получения лицензии — «автоматический», «ручной», «с электронного носителя».
  5. Необходимо заполнить соответствующие данные и пройти регистрацию. Все данные надо сохранить в файл.

После того как лицензия получена, файл с ключом лицензии помещается по адресу:

C:\Users\All Users\1C\1Cv82\conf\2*.lic (рабочим будет и такой вариант C:\Program Files (x86)\1cv82\conf).

Расположение файла может быть и другим. Подробную информацию можно получить в центре поддержки 1С:.

Причины возникновения ошибки активации 1C

При аппаратной лицензии ошибка «не обнаружен ключ лицензии 1с» может произойти в следующих ситуациях:

  • Если ключ отсутствует, или произошла попытка применить другой. В случае сетевых ключей ошибка может возникнуть, если на устройстве не произведен запуск Hasp License Manager (менеджер лицензий), либо при установке несетевого ключа или при отсутствии сети.
  • Если превышено число пользователей, работающих с данной лицензией. В случае одновременной работы двух Hasp License Manager с идентичными атрибутами, приложение будет использовать первый из найденных, что приводит к превышению максимума соединений.
  • В данных ключа нет сведений о лицензии. Ошибка может возникнуть при установке двух одинаковых ключей на одну машину. Менеджер лицензий в ходе первичного поиска также может обнаружить ключ, не содержащий сведений о лицензии.
  • Ошибка на уровне терминалов. В сессии нет локального ключа. Эту ситуацию можно обойти, перезапустив сессию и применив ключ «Admin».

Это только некоторые из возможных ошибок с ключом защиты и активацией лицензии программы.

Разновидности ошибок:

  • не обнаружено свободной лицензии 1с;
  • не обнаружена лицензия на приложение 31
  • на сервере 1с предприятия не найдена лицензия

Специалисты сервисного центра, имеющие лицензии для работы с продуктами 1С, помогут точно установить причины ошибок и оперативно устранить их.

Страничные блокировки в MS SQL Server при проведении документа в документе в 1С

Проблема ожидания на блокировках при параллельной работе пользователей в 1С


В процессе эксплуатации высоконагруженных систем можно столкнуться с  проблематикой ожидания на блокировках при параллельной работе пользователей. При этом встречаться такие блокировки могут даже в тех случаях, когда есть кажущаяся видимость того, что происходить их не должно. Именно такая ситуация случилась при внедрении на крупном предприятии решения для автоматизации предприятий питания «1С:Общепит. Модуль для 1С:ERP и 1С:КА2».


Стали поступать жалобы о  том, что при одновременном проведении двух документов «Выпуск блюд», которые не пересекаются по аналитикам учета, таким как склад, подразделение и номенклатура возникают ожидания на блокировках.


«Выпуск блюд» является центральным документом решения «1С:Общепит. Модуль для 1С:ERP и 1С:КА2» и объединяет в себе большое количество функционала, такого как отражение производства продукции, его дальнейшую реализацию, перемещение и так далее. Сложность разработки на базе 1С:ERP заключается в том, что крайне нежелательно вносить изменения в типовые объекты. Поэтому при разработке было решено сделать «Выпуск блюд» документом-интегратором. Это значит, что сам по себе объект не выполняет движений по типовым регистрам 1С:ERP. Выпуск блюд в момент своего проведения создает ряд типовых документов, которые и производят все движения. Соответственно, блокировка возникла в момент проведения типового документа, который формировался и проводился  внутри транзакции проведения документа «Выпуск блюд». На рисунке ниже показан пример дерева типовых документов. Видно, что по одному отраслевому документу «Выпуск блюд» может быть создано несколько типовых документов, например «Производство без заказа».


В рамках данной статьи будет рассмотрено выяснение причин возникновения ожиданий на блокировках для вышеописанного случая, а также возможные способы воздействия.

Расследование


Параметры стенда:

  • Копия клиентской базы «1С:Общепит. Модуль для 1С:ERP и 1С:КА2» в клиент-серверном режиме, на которой воспроизводится проблемная ситуация.
  • Операционная система: Windows Server 2012 R2.
  • База данных: Microsoft SQL Server 2017 64х.
  • Платформа 1С: 8.3.15.1656.
  • Конфигурация оборудования:
    • Процессор: Intel Xeon X5680 12M Cache 3.33, 6 ядер, 2 шт.
    • Оперативная память: 192GB/DDR3.
    • Дисковый накопитель: Intel SSDSC2BA800G4.


Для начала пробуем воспроизвести ситуацию, на которую поступила жалоба. Выбираем в базе 2 больших документа с различающимися значениями подразделения и склада и выполняем одновременное проведение. Получаем следующую блокировку:


Текст ошибки «Конфликт блокировок при выполнении транзакции: Microsoft SQL Native Client 11.0: Lock request timeout period exceeded» позволяет понять, что произошла ошибка ожидания на блокировках системы управления базами данных (сокр. СУБД) Microsoft SQL Server (сокр. MS SQL). Значит более подробную информацию следует искать при помощи Extended Events в Microsoft SQL Management Studio. События, которые позволят произвести анализ возникающих блокировок:

  • bloced_process_report
  • lock_deadlock
  • lock_timeout_greater_than_0
  • locks_lock_waits
  • xml_deadlock_report


Внешний вид настройки лога расширенных событий:


Запускаем сессию и смотрим за результатом при помощи команды «Watch Live Data». Воспроизводим ситуацию с блокировкой повторно, после чего в окне лога расширенных событий видим следующую ситуацию:


Зафиксировано событие lock_timeout_grater_than_0. Это событие наступает при ожидании на блокировках и содержит такую полезную информацию, как id ресурса, который вызвал конфликт (поля resourse), тип ресурса (resourse_type) и текст запроса (sql_text).

По типу ресурса PAGE становится понятно, что заблокированы были не записи таблицы, а страница, на которой содержатся записи. Из документации Microsoft можно понять, что в MS SQL Server размер страницы составляет 8 КБ.


Теперь посмотрим на текст запроса (sql_text) и запомним имя таблицы, на которой происходит блокировка:


Определим, что это за объект в терминах 1С. Для этого воспользуемся обработкой «Структура хранения метаданных». Видим, что таблица, из-за которой возникает блокировка это таблица итогов регистра накопления «Товары организации»:


Выдвинем гипотезу, что на заблокированной странице помимо необходимых записей могли также находиться и другие данные, которые никак не соответствуют ключам аналитики документа «Выпуск блюд». То есть, могла произойти избыточная блокировка. Значит следующим шагом будет просмотр содержимого заблокированной страницы. Идентификатор страницы можно увидеть по полям resourse события lock_timeout_grater_than_0:


Чтобы увидеть содержимое ресурса на заблокированной странице включим специальный флаг трассировки командой DBCC TRACEON(3604):


Не забываем после всех манипуляций выключить установленные флаги трассировки при помощи команды DBCC TRACEOFF:


DBCC TRACEOFF ([n — номер флага], [, -1 — глобально])


Непосредственно увидеть содержимое страницы можно при помощи следующей команды:

DBCC PAGE(db_name|db_id, file_id, page_id, print_option) WITH TABLE RESULTS

  • где db_name — имя исследуемой базы;
  • file_id и page_id — номер файла и страницы в файле, которые получаем из полей resourse;
  • а опция WITH TABLERESULTS позволяет вывести содержимое страницы в виде таблицы.


После выполнения команды анализируем результирующую таблицу и обнаруживаем, что во всех записях поле _Period имеет значение 5999-11-01:


Очень похоже на текущие итоги регистра накопления, для того чтобы в этом убедиться сделаем запрос к таблице итогов регистра накопления «Товары организации»:


Делаем вывод, что на заблокированной странице находятся текущие итоги регистра накопления «Товары организации», которые вовсе не обязательно совпадают по аналитикам учета с проводимым документом «Выпуск блюд».


Как средство оперативного воздействия отключаем текущие итоги, и снимаем остроту проблематики. Такое решение позволяет проводить ранее проблемные документы без ошибок.


Как уже говорилось ранее, документ «Выпуск блюд» является документом-интегратором и создает в процессе своего проведения ряд связанных типовых документов. Более тонкое исследование позволяет выяснить, что в процессе повторного проведения «Выпуск блюд» прежде чем обновить данные в связанных документах производит отмену проведения. В этот момент и обновляются текущие итоги, что приводит к блокировке:


Если убрать принудительную отмену проведения, то проблемные документы перепроводятся без ошибок.

Результат


В данной статье были рассмотрены подходы к расследованиям ожиданий на блокировках на примере блокировки, возникающей при одновременном проведении документов с разными аналитиками, которая была обнаружена в процессе внедрения решения «1С:Общепит. Модуль для 1С:ERP и 1С:КА2». Проведение расследования позволило выявить, что непересекающиеся данные были заблокированы на уровне страницы данных и это была таблица итогов регистра накопления.


Оперативное решение предполагало отключение текущих итогов для проблемных регистров. Детальное исследование показало наличие узких мест внутри транзакции проведения проблемного документа. Отказ от принудительной отмены проведения привел к нормализации работы системы, проведение документов по непересекающимся данным перестало быть причиной блокировок.


Однако, данное решение не застрахует от возможных страничных блокировок в будущем. Все потому, что все связанные документы проводятся вместе с документом «Выпуск блюд» в рамках одной и той же транзакции. Блокировки имеют время жизни до окончания транзакции, а значит они накапливаются и укрупняются, MS SQL Server начинает блокировать данные не по диапазону записей, а страницами, что и приводит к замедлению параллельной работы пользователей. Поэтому по результатам расследования можно рекомендовать переработку блока формирования связанных документов таким образом, чтобы раздробить транзакцию проведения на части. Эта оптимизация также была выполнена в обновлении типового отраслевого решения «1С:Общепит. Модуль для 1С:ERP и 1С:КА2», что полностью решило данную ситуацию на проекте.

Авторы статьи


Чесноков Дмитрий


Черанев Андрей

Ошибки обновлятора

Ошибки обновлятора

На этой странице я буду описывать наиболее частые ошибки при использовании моей программы «Обновлятор-1С: групповое (пакетное) обновление всех баз за один раз».

Первый и самый простой вариант

Суть ошибки и инструкция для её исправления указаны прямо в отчёте по операции. Ну, например, мы указали неверные логин и пароль для базы и тогда в отчёте будут такие строки:

Тут всё просто — читаем, переходим по ссылкам, исправляем и пробуем заново.

Второй и самый сложный вариант

Ошибка произошла на стороне 1с и обновлятор нам прямо об этом и говорит вот такой строчкой в отчёте:

В этом случае смотрим отчёт чуть выше и ищем там зелёные строки, начинающиеся с символов [1c].

Эти строки передала обновлятору сама платформа 1с и именно их нужно анализировать.

Ниже я подготовил список наиболее частых ошибок от платформы 1с (те, что зелёным цветом) и способы их устранения:

Какие ещё есть варианты проблем

Ниже я перечислю ответы лишь на самые важные вопросы. Если вашей проблемы здесь нет —  воспользуйтесь поиском по сайту (форма ниже) , при этом:

  • если речь об ошибке — формулируйте поисковый запрос, включая строку с ошибкой
  • в начале поискового запроса добавьте фразу «обновлятор 1с»
  • вот пример хорошего запроса «обновлятор 1с ошибка не удалось снять установленную блокировку новых сеансов с базой»

А вот ответы на самые важные вопросы:

Запуск программы:

Подключение к базе:

Архивация:

Обновление:

Разное:

Другие материалы по обновлятору:

Мне ничего не помогло (или проблема в другом) — хочу написать вам письмо

Видимо ваш случай какой-то особенный и я с удовольствием вам помогу, но со своей стороны прошу вас выполнить ряд моих требований:

1. Обязательно прочтите условия оказания технической поддержки: ссылка.

2. В начале письма сразу укажите, что уже читали «Ошибки обновлятора» и это вам не помогло.

3. Приложите к письму полный отчёт по операции из обновлятора (в виде отдельного файла, не нужно вставлять отчёт в текст самого письма). Отчёт можно сохранить в отдельный файл, нажав на нём правой кнопкой мыши и выбрав соответствующий пункт открывшегося контекстного меню.

4. Если есть возможность повторить ошибку, то запустите операцию в режиме отладки. Для этого запустите операцию, удерживая на клавиатуре клавишу «Shift«. В результате у вас получится более детальный отчёт, который также нужно приложить к письму.

5. Приложите к письму снимки экрана настроек обновлятора (всех или тех, что вы считаете важными), а также закладок в «свойствах проблемной базы«. О том как делать снимки рассказано здесь.

6. Если проблема в каком-то конкретном обновлении (например, оно не находится или выдаётся ошибка при его загрузке в базу) сожмите его в архив и приложите к письму. О том как загрузить большой архив в интернет — рассказано здесь (с пункта 5) на примере базы 1с.

Информации я прошу, конечно, много и для начинающих пользователей собрать и прислать её мне может быть не так легко. Но в этом случае я прошу вас обратиться к более опытным товарищам, чтобы они вам помогли.

С уважением к вам, Владимир Милькин

Устранение неполадок при подключении к ядру СУБД SQL Server — SQL Server

  • 14 минут на чтение

В этой статье

Применимо к: SQL Server (все поддерживаемые версии)

В этой статье перечислены методы устранения неполадок, которые следует использовать, когда не удается подключиться к экземпляру ядра СУБД SQL Server на одном сервере.

Примечание

Для других сценариев см .:

Эти шаги не относятся к наиболее вероятным проблемам, которые вы, вероятно, уже пробовали. Эти шаги идут в порядке от самых основных проблем к более сложным. Эти шаги предполагают, что вы подключаетесь к экземпляру SQL Server с другого компьютера, используя протокол TCP / IP, что является наиболее распространенной ситуацией.

Эти инструкции полезны при устранении ошибки « Connect to Server », которая может быть Номер ошибки: 11001 (или 53), уровень серьезности: 20, состояние: 0 .Ниже приведен пример сообщения об ошибке:

Ошибка, связанная с сетью или конкретным экземпляром, при установке соединения с SQL Server. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений.

(поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server) (Microsoft SQL Server, ошибка: 53)

(поставщик: поставщик TCP, ошибка: 0 - такой хост не известен.) (Microsoft SQL Server, ошибка: 11001)

Эта ошибка обычно означает, что клиент не может найти экземпляр SQL Server. Обычно это происходит, когда существует хотя бы одна из следующих проблем:

  • Имя компьютера, на котором размещен SQL Server
  • .

  • Экземпляр не разрешает правильный IP-адрес
  • Номер порта TCP указан неправильно

Не включено

Получить имя экземпляра из диспетчера конфигураций

На сервере, на котором размещен экземпляр SQL Server, проверьте имя экземпляра.Используйте диспетчер конфигурации SQL Server.

Configuration Manager автоматически устанавливается на компьютер при установке SQL Server. Инструкции по запуску Configuration Manager незначительно различаются в зависимости от версии SQL Server и Windows. Подробные сведения о версии см. В разделе Диспетчер конфигурации SQL Server.)

  1. Войдите на компьютер, на котором размещен экземпляр SQL Server.

  2. Запустите диспетчер конфигурации SQL Server.

  3. На левой панели выберите Службы SQL Server .

  4. На правой панели проверьте имя экземпляра ядра базы данных.

    • SQL SERVER (MSSQLSERVER) обозначает экземпляр SQL Server по умолчанию. Имя экземпляра по умолчанию — <имя компьютера> .
    • SQL SERVER (<имя экземпляра>) обозначает именованный экземпляр SQL Server. Имя экземпляра имени: <имя компьютера> \ <имя экземпляра>

Проверить — экземпляр работает

Чтобы убедиться, что экземпляр запущен, в Configuration Manager посмотрите на символ у экземпляра SQL Server.

  • Зеленая стрелка указывает на то, что экземпляр запущен.
  • Красный квадрат указывает, что экземпляр остановлен.

Если экземпляр остановлен, щелкните его правой кнопкой мыши и выберите Запустить . Экземпляр сервера запускается, и индикатор становится зеленой стрелкой.

Проверить — служба обозревателя SQL Server работает

Для подключения к именованному экземпляру должна быть запущена служба обозревателя SQL Server. В Configuration Manager найдите службу обозревателя SQL Server и убедитесь, что она работает.Если не работает, запустите. Служба обозревателя SQL Server не требуется для экземпляров по умолчанию.

Экземпляр SQL Server по умолчанию не требует службы обозревателя SQL Server.

Тестирование локального соединения

Прежде чем устранять неполадки с подключением с другого компьютера, сначала проверьте свою способность подключаться из клиентского приложения, установленного локально на компьютере, на котором выполняется SQL Server. Локальное подключение позволяет избежать проблем с сетями и брандмауэрами.

В этой процедуре используется SQL Server Management Studio.Если у вас не установлена ​​среда Management Studio, см. Раздел Загрузка SQL Server Management Studio (SSMS). Если вы не можете установить Management Studio, вы можете проверить соединение с помощью утилиты sqlcmd.exe . sqlcmd.exe устанавливается вместе с компонентом Database Engine. Дополнительные сведения о sqlcmd.exe см. В служебной программе sqlcmd.)

  1. Войдите на компьютер, на котором установлен SQL Server, используя имя входа, имеющее разрешение на доступ к SQL Server. (Во время установки SQL Server требует, чтобы по крайней мере один логин был указан как администратор SQL Server.Если вы не знаете администратора, см. Подключение к SQL Server, когда системные администраторы заблокированы.)

  2. На начальной странице введите SQL Server Management Studio или в более старых версиях Windows в меню «Пуск» выберите Все программы , укажите Microsoft SQL Server , а затем щелкните SQL Server Management Studio .

  3. В диалоговом окне Connect to Server в поле типа Server выберите Database Engine .В поле Authentication выберите Windows Authentication . В поле Имя сервера введите один из следующих типов подключения:

    Подключение к Тип Пример
    Экземпляр по умолчанию <имя компьютера> ACCNT27
    Именованный экземпляр <имя компьютера \ имя экземпляра> ACCNT27 \ PAYROLL

    Примечание

    При подключении к SQL Server из клиентского приложения на том же компьютере используется протокол общей памяти.Общая память — это тип локального именованного канала, поэтому иногда возникают ошибки, касающиеся каналов.

    Если вы получили сообщение об ошибке на этом этапе, вам необходимо устранить ее, прежде чем продолжить. Есть много возможных вещей, которые могут стать проблемой. Возможно, ваш логин не авторизован для подключения. Ваша база данных по умолчанию может отсутствовать.

    Примечание

    Некоторые сообщения об ошибках, переданные клиенту намеренно, не содержат достаточно информации для устранения проблемы. Это функция безопасности, позволяющая избежать предоставления злоумышленнику информации о SQL Server.Чтобы просмотреть полную информацию об ошибке, просмотрите журнал ошибок SQL Server. Подробности указаны там.

  4. Если вы получаете сообщение об ошибке 18456 Ошибка входа для пользователя , раздел электронной документации MSSQLSERVER_18456 содержит дополнительную информацию о кодах ошибок. А в блоге Аарона Бертрана есть обширный список кодов ошибок в разделе Устранение неполадок при ошибке 18456. Вы можете просмотреть журнал ошибок с помощью SSMS (если вы можете подключиться) в разделе «Управление» обозревателя объектов.В противном случае вы можете просмотреть журнал ошибок с помощью программы Windows Notepad. Местоположение по умолчанию зависит от вашей версии и может быть изменено во время установки. Расположение по умолчанию для SQL Server 2019 (15.x) — C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ MSSQL \ Log \ ERRORLOG .

  5. Если вы можете подключиться с использованием общей памяти, протестируйте подключение с помощью TCP. Вы можете принудительно установить TCP-соединение, указав перед именем tcp: . Например:

    Подключение к: Тип: Пример:
    Экземпляр по умолчанию tcp: <имя компьютера> tcp: ACCNT27
    Именованный экземпляр tcp: <имя компьютера / имя экземпляра> tcp: ACCNT27 \ PAYROLL
  6. Если вы можете подключиться к общей памяти, но не к TCP, то вы должны исправить проблему TCP.Скорее всего, проблема в том, что TCP не включен. Чтобы включить TCP, см. Действия по включению протоколов выше.

  7. Если ваша цель — подключиться с учетной записью, отличной от учетной записи администратора, как только вы сможете подключиться как администратор, попробуйте подключение еще раз, используя имя входа для проверки подлинности Windows или имя входа для проверки подлинности SQL Server, которое использует клиентское приложение.

Получить IP-адрес сервера

Получите IP-адрес компьютера, на котором размещен экземпляр SQL Server.

  1. В меню «Пуск» выберите Выполнить . В окне Выполнить введите cmd , а затем нажмите ОК .
  2. В окне командной строки введите ipconfig и нажмите клавишу ВВОД. Запишите адрес IPv4 и адрес IPv6 .

SQL Server может подключаться по протоколу IP версии 4 или IP версии 6. Ваша сеть может разрешить одно или то и другое. Большинство людей начинают с поиска неисправностей в адресе IPv4 .Это короче и легче набирать.

Получить TCP-порт экземпляра SQL Server

В большинстве случаев вы подключаетесь к компоненту Database Engine с другого компьютера по протоколу TCP.

  1. Используя SQL Server Management Studio на компьютере, на котором запущен SQL Server, подключитесь к экземпляру SQL Server. В обозревателе объектов разверните Management , разверните Журналы SQL Server , а затем дважды щелкните текущий журнал.
  2. В средстве просмотра журнала нажмите кнопку Фильтр на панели инструментов.В поле Сообщение содержит текст введите сервер прослушивает , щелкните Применить фильтр , а затем щелкните ОК .
  3. Должно быть указано сообщение, подобное Сервер прослушивает ['any' 1433] .

Это сообщение указывает на то, что данный экземпляр SQL Server прослушивает все IP-адреса на этом компьютере (для IP версии 4) и прослушивает TCP-порт 1433. (TCP-порт 1433 обычно является портом, используемым компонентом Database Engine или экземпляр SQL Server по умолчанию.Только один экземпляр SQL Server может использовать порт, поэтому, если установлено несколько экземпляров SQL Server, некоторые экземпляры должны использовать другие номера портов.) Запишите номер порта, используемый экземпляром SQL Server, который вы пытаетесь чтобы подключиться к.

Примечание

IP-адрес 127.0.0.1 , вероятно, указан. Он называется адресом адаптера обратной связи. Только процессы на одном компьютере могут использовать его для подключения. Это может быть полезно для устранения неполадок, но вы не можете использовать его для подключения с другого компьютера.

Включить протоколы

В некоторых установках SQL Server подключение к ядру СУБД с другого компьютера невозможно, если администратор не использует Configuration Manager для его включения. Чтобы разрешить соединения с другого компьютера:

  1. Откройте диспетчер конфигурации SQL Server, как описано ранее.
  2. С помощью Configuration Manager на левой панели разверните Сетевая конфигурация SQL Server , а затем выберите экземпляр SQL Server, к которому вы хотите подключиться.На правой панели перечислены доступные протоколы подключения. Общая память обычно включена. Его можно использовать только с одного компьютера, поэтому в большинстве установок общая память остается включенной. Для подключения к SQL Server с другого компьютера обычно используется TCP / IP. Если TCP / IP не включен, щелкните правой кнопкой мыши TCP / IP , а затем щелкните Включить .
  3. Если вы изменили включенный параметр для любого протокола, перезапустите компонент Database Engine. На левой панели выберите Службы SQL Server .На правой панели щелкните правой кнопкой мыши экземпляр компонента Database Engine и выберите Перезапустить .

Тестирование подключения TCP / IP

Для подключения к SQL Server с помощью TCP / IP требуется, чтобы Windows могла установить соединение. Используйте инструмент ping для проверки TCP.

  1. В меню «Пуск» выберите Выполнить . В окне Выполнить введите cmd , а затем нажмите ОК .

  2. В окне командной строки введите ping , а затем IP-адрес компьютера, на котором работает SQL Server.Например:

    • IPv4: пинг 192.168.1.101
    • IPv6: эхо-запрос fe80 :: d51d: 5ab5: 6f09: 8f48% 11
  3. Если ваша сеть настроена правильно, ping возвращает Reply from , за которым следует некоторая дополнительная информация. Если ping возвращает Целевой хост недоступен или Истекло время ожидания запроса , то TCP / IP настроен неправильно. Ошибки на этом этапе могут указывать на проблему с клиентским компьютером, серверным компьютером или что-то в сети, например маршрутизатор.Чтобы устранить неполадки в сети, см. Расширенное устранение неполадок TCP / IP.

  4. Затем, если проверка связи с использованием IP-адреса прошла успешно, проверьте, можно ли разрешить имя компьютера в адрес TCP / IP. На клиентском компьютере в окне командной строки введите ping , а затем имя компьютера, на котором работает SQL Server. Например, ping newofficepc .

  5. Если ping на IP-адрес завершается успешно, но ping на компьютер возвращает Destination host unreachable or Request timed out , возможно, на клиентском компьютере кэширована старая (устаревшая) информация о разрешении имен.Введите ipconfig / flushdns , чтобы очистить кеш DNS (динамическое разрешение имен). Затем снова пропингуйте компьютер по имени. При пустом кэше DNS клиентский компьютер проверяет наличие самой последней информации об IP-адресе серверного компьютера.

  6. Если ваша сеть настроена правильно, ping возвращает Reply from , за которым следует некоторая дополнительная информация. Если вы можете успешно проверить связь с серверным компьютером по IP-адресу, но получите сообщение об ошибке, например, Целевой хост недоступен. или Истекло время ожидания запроса. при проверке связи по имени компьютера, разрешение имен настроено неправильно. (Дополнительные сведения см. В упомянутой ранее статье 2006 г. Как устранить основные проблемы TCP / IP.) Успешное разрешение имени не требуется для подключения к SQL Server, но если имя компьютера не может быть преобразовано в IP-адрес, тогда соединения должны быть выполнены с указанием IP-адреса. Разрешение имени может быть исправлено позже.

Открыть порт в брандмауэре

По умолчанию брандмауэр Windows включен и блокирует соединения с другим компьютером.Чтобы подключиться с помощью TCP / IP с другого компьютера, на компьютере с SQL Server необходимо настроить брандмауэр, чтобы разрешить подключения к порту TCP, используемому компонентом Database Engine. Экземпляр по умолчанию по умолчанию прослушивает TCP-порт 1433. Если вы присвоили экземплярам имена или изменили порт экземпляра по умолчанию, TCP-порт SQL Server может прослушивать другой порт. См. Раздел Получение TCP-порта экземпляра SQL Server.

Если вы подключаетесь к именованному экземпляру или к порту, отличному от TCP-порта 1433, необходимо также открыть UDP-порт 1434 для службы браузера SQL Server.Пошаговые инструкции по открытию порта в брандмауэре Windows см. В разделе Настройка брандмауэра Windows для доступа к ядру СУБД.

Проверить соединение

Как только вы сможете подключиться с помощью TCP на том же компьютере, самое время попробовать подключиться с клиентского компьютера. Теоретически вы можете использовать любое клиентское приложение, но, чтобы избежать дополнительных сложностей, установите на клиенте инструменты управления SQL Server и попробуйте использовать SQL Server Management Studio.

  1. На клиентском компьютере с помощью SQL Server Management Studio попытайтесь подключиться, используя IP-адрес и номер порта TCP в формате IP-адрес номер порта запятой.Например, 192.168.1.101,1433 . Если это соединение не удается, возможно, у вас одна из следующих проблем:

  2. После того, как вы сможете подключиться, используя IP-адрес и номер порта, попытайтесь подключиться, используя IP-адрес без номера порта. Для экземпляра по умолчанию просто используйте IP-адрес. Для именованного экземпляра используйте IP-адрес и имя экземпляра в формате IP-адрес обратная косая черта имя экземпляра, например 192.168.1.101 \ <имя экземпляра> Если это не сработает, возможно, у вас есть одна из следующих проблем :

    • Если вы подключаетесь к экземпляру по умолчанию, возможно, он прослушивает порт, отличный от TCP-порта 1433, и клиент не пытается подключиться к правильному номеру порта.
    • Если вы подключаетесь к именованному экземпляру, номер порта не возвращается клиенту.

    Обе эти проблемы связаны со службой обозревателя SQL Server, которая предоставляет номер порта клиенту. Решения:

    • Запустите службу обозревателя SQL Server. См. Инструкции по запуску браузера в диспетчере конфигурации SQL Server.
    • Служба обозревателя SQL Server блокируется брандмауэром. Откройте UDP-порт 1434 в брандмауэре.Вернитесь в раздел Открыть порт в брандмауэре. Убедитесь, что вы открываете порт UDP, а не порт TCP.
    • Информация о UDP-порте 1434 заблокирована маршрутизатором. Связь UDP (протокол пользовательских дейтаграмм) не предназначена для прохождения через маршрутизаторы. Это предохраняет сеть от заполнения низкоприоритетным трафиком. Вы можете настроить маршрутизатор для пересылки UDP-трафика или всегда указывать номер порта при подключении.
    • Если на клиентском компьютере используется Windows 7 или Windows Server 2008 (или более поздняя операционная система), трафик UDP может быть сброшен клиентской операционной системой, поскольку ответ от сервера возвращается с IP-адреса, отличного от запрошенного. .Это функция безопасности, блокирующая «неплотное сопоставление источников». Для получения дополнительной информации см. Раздел Несколько IP-адресов серверов раздела Электронной документации Устранение неполадок: Истекло время ожидания. Это статья из SQL Server 2008 R2, но принципы все еще применяются. Вы можете настроить клиент для использования правильного IP-адреса или всегда указывать номер порта при подключении.
  3. После того, как вы сможете подключиться, используя IP-адрес (или IP-адрес и имя экземпляра для именованного экземпляра), попытайтесь подключиться, используя имя компьютера (или имя компьютера и имя экземпляра для именованного экземпляра).Поместите tcp: перед именем компьютера, чтобы установить TCP / IP-соединение. Например, для экземпляра по умолчанию на компьютере с именем ACCNT27 используйте tcp: ACCNT27 Для именованного экземпляра с именем PAYROLL на этом компьютере используйте tcp: ACCNT27 \ PAYROLL Если вы можете подключиться, используя IP-адрес, но Если вы не используете имя компьютера, то у вас проблема с разрешением имени. Вернитесь к разделу Тестирование соединения TCP / IP , раздел 4.

  4. После того, как вы сможете подключиться с использованием имени компьютера с принудительной установкой TCP, попробуйте подключиться с использованием имени компьютера, но не с принудительной установкой TCP.Например, для экземпляра по умолчанию используйте только имя компьютера, такое как CCNT27 Для именованного экземпляра используйте имя компьютера и имя экземпляра, например ACCNT27 \ PAYROLL . Если вы можете подключиться, используя TCP, но не без принудительного TCP, тогда клиент, вероятно, использует другой протокол (например, именованные каналы).

    1. На клиентском компьютере с помощью диспетчера конфигурации SQL Server на левой панели разверните Собственный клиент SQL версия Конфигурация , а затем выберите Клиентские протоколы .
    2. Убедитесь, что на правой панели включен TCP / IP. Если TCP / IP отключен, щелкните правой кнопкой мыши TCP / IP , а затем щелкните Включить .
    3. Убедитесь, что порядок протоколов для TCP / IP меньше, чем для именованных каналов (или VIA в более старых версиях). Обычно следует оставлять общую память в порядке 1, а TCP / IP — в порядке 2. Общая память используется только тогда, когда клиент и SQL Server работают на одном компьютере. Все включенные протоколы проверяются по порядку до тех пор, пока один из них не завершится успешно, за исключением того, что общая память пропускается, когда соединение не с одним и тем же компьютером.

1с. Установите образец базы данных

При работе с этим руководством вы будете использовать базу данных AdventureWorks в качестве образца данных.

Примеры данных

Образец базы данных AdventureWorks будет недоступен после установки, если вы используете MS SQL Express. Вам необходимо скачать базу данных отдельно и установить ее.

Чтобы узнать больше о базе данных AdventureWorks, посетите Microsoft TechNet.

Скачать базу данных AdventureWorks

База данных AdventureWorks — это резервная копия базы данных для сервера MS SQL.

Загрузите резервную копию базы данных AdventureWorks2014.bak с GitHub:

https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks

Вы также можете попробовать прямую ссылку для скачивания.

Версия резервной копии базы данных должна совпадать с версией вашей установки Microsoft SQL Server. В этом руководстве используется Microsoft SQL Server 2014 . Если вы используете другую версию, загрузите соответствующую резервную копию базы данных.
Вам необходимо сохранить файл .bak в папку, доступную пользователю NETWORK_SERVICES.

Восстановить базу данных из резервной копии

Для установки резервной копии базы данных:

  1. Запустите SQL Server Management Studio .

  2. Появится диалоговое окно « Подключиться к серверу ».

    Выберите свой именованный сервер, используйте метод Authentication по вашему выбору и нажмите Connect .

  3. Менеджер подключается к базе данных.

    Щелкните изображение, чтобы увеличить его.

    Щелкните правой кнопкой мыши Базы данных и выберите Восстановить базу данных .

    Щелкните изображение, чтобы увеличить его.

  4. Появится окно Восстановить базу данных .

    Выберите Устройство и нажмите Обзор :

    Щелкните изображение, чтобы увеличить его.

  5. Появится диалоговое окно Указать резервную копию .Нажмите Добавить .

    Щелкните изображение, чтобы увеличить его.

  6. Появится диалоговое окно «Найти файл резервной копии ».

    Выберите каталог, в котором вы сохранили файл, выберите файл .bak и нажмите OK .

    Щелкните изображение, чтобы увеличить его.

  7. Резервная копия появится в списке. Нажмите ОК .

    Щелкните изображение, чтобы увеличить его.

  8. Резервная копия также отображается в диалоговом окне «Восстановление базы данных » в списке «Наборы резервных копий для восстановления ».

    Щелкните изображение, чтобы увеличить его.

    Обязательно установите флажок Восстановить рядом с резервной копией базы данных и нажмите ОК .

  9. База данных установлена, и появится диалоговое окно подтверждения.

    Щелкните изображение, чтобы увеличить его.

    Нажмите ОК .

Вы добавили базу данных.

Щелкните изображение, чтобы увеличить его.

Теперь вы можете установить драйвер JDBC.

Параметр Описание
ODBCDM_Home путь к домашнему каталогу диспетчера драйверов unixODBC
Install_Location * Путь к каталогу Oracle Instant Client.Путь по умолчанию — текущий каталог
Имя_драйвера * Имя драйвера для идентификации драйвера Oracle ODBC, находящегося в текущем домашнем каталоге Oracle Instant Client. Имя по умолчанию будет иметь вид «Oracle 19c ODBC driver»
DSN * Задает имя ODBC DSN. Имя по умолчанию будет «OracleODBC-19c»
ODBCINI * Путь к каталогу файла .odbc.ini .Путь по умолчанию — домашний каталог пользователя, например ~ / .odbc.ini

Описание Linux и UNIX Окна
Общая библиотека драйвера ODBC для Oracle libsqora.так.XX.Y. Например libsqora.so.19.1 sqora32.dll
Установочный файл odbc_update_ini.sh odbc_install.exe, odbc_uninstall.exe
диалоговое окно конфигурации драйвера ODBC Oracle (GUI) Не доступен sqoras32.dll, sqresus.dll, sqresja.dll
Справочная система справка / справка /

Платформа Диспетчер драйверов unixODBC, версия
Linux 32-разрядная, 64-разрядная 2.3,4
Solaris SPARC64 32-разрядная, 64-разрядная 2.3.4
Solaris 32-разрядная, 64-разрядная 2.3.4
AIX 5L 32-разрядная, 64-разрядная 2.3.4
HP IA64 32-разрядная, 64-разрядная 2.3.4
z / Linux 31 бит, 64 бит 2.3.4

Платформа Диспетчер драйверов unixODBC, версия
Linux 32-разрядная, 64-разрядная 2.3.1
Solaris SPARC64 32-разрядная, 64-разрядная 2.3.1
Solaris 32-разрядная, 64-разрядная 2.3.1
AIX 5L 32-разрядная, 64-разрядная 2.3.1
HP IA64 32-разрядная, 64-разрядная 2.3,1
z / Linux 31 бит, 64 бит 2.3.1

Платформа Диспетчер драйверов unixODBC, версия
Linux 32-разрядная, 64-разрядная 2.2.11, 2.2.14
Solaris SPARC64 32-разрядная, 64-разрядная 2.2.11
Solaris 32-разрядная, 64-разрядная 2.2,11
AIX 5L 32-разрядная, 64-разрядная 2.2.11
HP IA64 32-разрядная, 64-разрядная 2.2.11
z / Linux 31 бит, 64 бит 2.2.11

без CDB CDB
 выберите COMP_ID
  из DBA_REGISTRY
  где STATUS = 'VALID'
  заказ на 1;

COMP_ID
--------------
КАТАЛОГ
CATJAVA
CATPROC
JAVAVM
OLS
ORDIM
OWM
RAC
XDB
XML 
 выберите COMP_ID
  из CDB_REGISTRY
  где CON_ID = 1 и STATUS = 'VALID'
  заказ по 1;

COMP_ID
----------------
КАТАЛОГ
CATPROC
OLS
OWM
RAC
XDB