Ошибки в SQL режиме (FAQ): различия между версиями

Материал из Alta-Soft Wikipedia
Перейти к навигации Перейти к поиску
Строка 2: Строка 2:
  
  
'''Q: Недопустимое имя объекта DOCS (или DO1DATA)'''
+
== Недопустимое имя объекта DOCS (или DO1DATA) ==
  
'''A:''' Данная ошибка обычно возникает при первичном подключении к базе данных ГТД.
+
Данная ошибка обычно возникает при первичном подключении к базе данных ГТД.
  
 
Для устранения ошибки сделайте следующее:
 
Для устранения ошибки сделайте следующее:
Строка 14: Строка 14:
  
  
'''Q: В Альта-ГТД не работает поиск'''
+
== В Альта-ГТД не работает поиск ==
  
'''A:''' Возможные проблемы:
+
Возможные проблемы:
 
* не установлена служба полнотекстового поиска: переустановить SQL сервер, при переустановке не забыть поставить галку на "Компонент Full-Text Search"
 
* не установлена служба полнотекстового поиска: переустановить SQL сервер, при переустановке не забыть поставить галку на "Компонент Full-Text Search"
 
* не запущена служба полнотекстового поиска: запустить службу, в параметрах запуска установить Авто
 
* не запущена служба полнотекстового поиска: запустить службу, в параметрах запуска установить Авто
Строка 23: Строка 23:
  
  
'''Q: Невозможно подключиться к серверу с удаленной машины'''
+
== Невозможно подключиться к серверу с удаленной машины ==
  
'''A:''' Возможные проблемы:
+
Возможные проблемы:
  
 
* брандмауэр windows или установленный антивирус блокирует порт 1433: все отключить и проверить соединение
 
* брандмауэр windows или установленный антивирус блокирует порт 1433: все отключить и проверить соединение
Строка 31: Строка 31:
  
  
'''Q: При работе с программой внезапно теряется подключение к серверу'''
+
== При работе с программой внезапно теряется подключение к серверу ==
  
'''A:''' Возможные проблемы:
+
Возможные проблемы:
  
 
* "гадит" протокол Общая память: в Диспетчере конфигурации отключить протокол Общая память, включить протокол TCP/IP и перезапустить службу SQL-севера
 
* "гадит" протокол Общая память: в Диспетчере конфигурации отключить протокол Общая память, включить протокол TCP/IP и перезапустить службу SQL-севера
Строка 40: Строка 40:
  
  
'''Q: На локальной (удаленной) машине невозможно подключиться к SQL-серверу (Сервер не найден)'''
+
== На локальной (удаленной) машине невозможно подключиться к SQL-серверу (Сервер не найден) ==
  
'''A:''' Возможно, установлен именованный instance SQL-сервера: указать в настройках ИМЯ_СЕРВЕРА\ИНСТАНС (обычно это SQLEXPRESS)
+
Возможно, установлен именованный instance SQL-сервера: указать в настройках ИМЯ_СЕРВЕРА\ИНСТАНС (обычно это SQLEXPRESS)
  
  
'''Q: Ошибка при создании новой базы данных "Разрешение CREATE DATABASE запрещено в базе данных "master"'''
+
== "Разрешение CREATE DATABASE запрещено в базе данных "master" при создании БД ==
  
'''A:''' У пользователя, под которым было произведено подключение к SQL-серверу, нет прав на создание новой базы данных: необходимо залогиниться под пользователем sa или другим пользователем с правами администратора
+
У пользователя, под которым было произведено подключение к SQL-серверу, нет прав на создание новой базы данных: необходимо залогиниться под пользователем sa или другим пользователем с правами администратора
  
  
'''Q: Ошибка при создании новой базы данных "Ошибка операции CREATE DATABASE. Некоторые из перечисленных имен файлов не были созданы"'''
+
== "Ошибка операции CREATE DATABASE. Некоторые из перечисленных имен файлов не были созданы" при созднии БД ==
  
'''A:''' Проблема: база данных не подключена к серверу, однако сами файлы базы данных по какой то причине присутствуют в системном каталоге DATA SQL-сервера: присоедините базу данных, для чего
+
Проблема: база данных не подключена к серверу, однако сами файлы базы данных по какой то причине присутствуют в системном каталоге DATA SQL-сервера: присоедините базу данных, для чего
  
 
* Откройте SQL Server Managment Studio, подключитесь к серверу
 
* Откройте SQL Server Managment Studio, подключитесь к серверу
Строка 60: Строка 60:
  
  
'''Q: При подключении к базе выдается ошибка "Не удаётся найти указанного поставщика"'''
+
== "Не удаётся найти указанного поставщика" при подключении к БД ==
  
'''A:''' Для устранения данной ошибки можно попробовать:
+
Для устранения данной ошибки можно попробовать:
  
 
* перерегистрировать OLEDB-компоненты доступа к данным, для чего необходимо выполнить команды в CMD
 
* перерегистрировать OLEDB-компоненты доступа к данным, для чего необходимо выполнить команды в CMD
Строка 76: Строка 76:
  
  
'''Q: Locking optimistic failed: user with class identifier...'''
+
== Locking optimistic failed: user with class identifier... ==
  
'''A:''' Ошибка означает, что повторно удаляется или записывается одна и та же запись в таблицу SQL. Лечится перезапуском SQL сервера.
+
Ошибка означает, что повторно удаляется или записывается одна и та же запись в таблицу SQL. Лечится перезапуском SQL сервера.
  
  
'''Q: При подключении базы данных ругается на несоответствующий (ошибочный, и т.д.) лог-файл *.ldf  
+
== Несоответствующий (ошибочный, и т.д.) лог-файл *.ldf ==
  
'''A:''' В этом случае необходимо выполнить ОДИН из скриптов. Естественно указав корректный путь к файлу базы и задав нужное имя БД. При этом сам битый файл *.ldf должен отсутствовать
+
В этом случае необходимо выполнить ОДИН из скриптов. Естественно указав корректный путь к файлу базы и задав нужное имя БД. При этом сам битый файл *.ldf должен отсутствовать
  
 
* Первый скрипт:
 
* Первый скрипт:
Строка 98: Строка 98:
  
  
'''Q: База данных находится в режиме "Подозрительный"
+
== База данных находится в режиме "Подозрительный" ==
  
'''A:''' Необходимо выполнить скрипт (заменить везде название базы, если она отличается от gtd):
+
Необходимо выполнить скрипт (заменить везде название базы, если она отличается от gtd):
  
 
  alter database gtd set emergency
 
  alter database gtd set emergency

Версия 10:39, 24 января 2013

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


Недопустимое имя объекта DOCS (или DO1DATA)

Данная ошибка обычно возникает при первичном подключении к базе данных ГТД.

Для устранения ошибки сделайте следующее:

  • Откройте SQL Server Managment Studio, подключитесь к серверу
  • Откройте файл (Файл - Открыть - Файл) DOCS.SQL (для DO1DATA - DO1DATA.SQL), который находится в папке UTILS с установленной программой ГТД (при установке по умолчанию это C:\Alta)
  • Выберите из списка (рядом с кнопкой Выполнить) базу данных, в которой произошла ошибка
  • Нажмите кнопку Выполнить


В Альта-ГТД не работает поиск

Возможные проблемы:

  • не установлена служба полнотекстового поиска: переустановить SQL сервер, при переустановке не забыть поставить галку на "Компонент Full-Text Search"
  • не запущена служба полнотекстового поиска: запустить службу, в параметрах запуска установить Авто
  • служба полнотекстового поиска не запускается с ошибкой "Интерфейс не поддерживается", либо такая ошибка выскакивает при поиске: переустановить SQL-сервер
  • при поиске выдается сообщение об ошибке "Служба не запущена", хотя она запущена, либо какая то еще ошибка: запустить скрипт FullText.sql (если каталог уже существует, будет выдана ошибка, но это не страшно), затем ConvertFtcLng.sql (выдается сообщение: "Внимание! Таблица или индексированное представление "dbo.Docs" имеет столбцы полнотекстового индекса... " - это нормально)


Невозможно подключиться к серверу с удаленной машины

Возможные проблемы:

  • брандмауэр windows или установленный антивирус блокирует порт 1433: все отключить и проверить соединение
  • на сервере не включен протокол TCP/IP: открыть Диспетчер конфигурации SQL сервер, включить протокол, перезапустить службу SQL-сервера


При работе с программой внезапно теряется подключение к серверу

Возможные проблемы:

  • "гадит" протокол Общая память: в Диспетчере конфигурации отключить протокол Общая память, включить протокол TCP/IP и перезапустить службу SQL-севера
  • нарушается таблица маршрутизации вследствии каких-либо причин (н-р установка подключения к интернет через модем): использовать в качестве имени сервера его ip-адрес
  • ERRORLOG в папке sql сервера сильно вырос и не может переименоваться на ERRORLOG.1*, для создания нового. Тут, возможно, не хватает прав на внесение изменений в этой папке(необходимо админам проверить), либо кривая установка SQL сервера(Остановить службу SQL сервера и удалить вручную C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG, если не помогло, переустановка).


На локальной (удаленной) машине невозможно подключиться к SQL-серверу (Сервер не найден)

Возможно, установлен именованный instance SQL-сервера: указать в настройках ИМЯ_СЕРВЕРА\ИНСТАНС (обычно это SQLEXPRESS)


"Разрешение CREATE DATABASE запрещено в базе данных "master" при создании БД

У пользователя, под которым было произведено подключение к SQL-серверу, нет прав на создание новой базы данных: необходимо залогиниться под пользователем sa или другим пользователем с правами администратора


"Ошибка операции CREATE DATABASE. Некоторые из перечисленных имен файлов не были созданы" при созднии БД

Проблема: база данных не подключена к серверу, однако сами файлы базы данных по какой то причине присутствуют в системном каталоге DATA SQL-сервера: присоедините базу данных, для чего

  • Откройте SQL Server Managment Studio, подключитесь к серверу
  • Кликните правой кнопкой мыши по Базам данных, в контекстном меню выберите пункт Присоединить
  • В появившемся окне нажмите кнопку Добавить и выберите нужный файл *.mdf, нажмите ОК
  • Нажмите ОК


"Не удаётся найти указанного поставщика" при подключении к БД

Для устранения данной ошибки можно попробовать:

  • перерегистрировать OLEDB-компоненты доступа к данным, для чего необходимо выполнить команды в CMD

- regsvr32 "C:\Program Files\Common Files\System\Ole DB\sqloledb.dll"

- regsvr32 "C:\Program Files\Common Files\System\Ole DB\oledb32.dll"

- regsvr32 "C:\Program Files\Common Files\System\ADO\msado15.dll"

  • если выше указанные действия не помогли, скопировать целиком обе папки OLEDB и ADO с другой машины с АНАЛОГИЧНОЙ операционкой и также перерегистрировать указанные dll-ки
  • установить/переустановить SQL сервер на проблемной машине
  • если все перечисленные способы не помогли, попробовать сделать откат системы, либо переустановить операционку


Locking optimistic failed: user with class identifier...

Ошибка означает, что повторно удаляется или записывается одна и та же запись в таблицу SQL. Лечится перезапуском SQL сервера.


Несоответствующий (ошибочный, и т.д.) лог-файл *.ldf

В этом случае необходимо выполнить ОДИН из скриптов. Естественно указав корректный путь к файлу базы и задав нужное имя БД. При этом сам битый файл *.ldf должен отсутствовать

  • Первый скрипт:
USE [master]
GO
EXEC sp_attach_single_file_db @dbname='gtd', @physname=N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\gtd.mdf'
GO
  • Второй скрипт:
USE [master]
GO
CREATE DATABASE gtd ON (FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\gtd.mdf')
FOR ATTACH_REBUILD_LOG
GO


База данных находится в режиме "Подозрительный"

Необходимо выполнить скрипт (заменить везде название базы, если она отличается от gtd):

alter database gtd set emergency
alter database gtd set single_user
go
DBCC CHECKDB (gtd, REPAIR_ALLOW_DATA_LOSS) with NO_INFOMSGS
go
alter database gtd set multi_user
go