Ошибки в SQL режиме (FAQ): различия между версиями
Admin (обсуждение | вклад) м (1 версия: Все статьи из старой AltaPedia) |
Smorodin (обсуждение | вклад) |
||
Строка 16: | Строка 16: | ||
'''Q: В Альта-ГТД не работает поиск''' | '''Q: В Альта-ГТД не работает поиск''' | ||
− | '''A:''' | + | '''A:''' Возможные проблемы: |
− | + | * не установлена служба полнотекстового поиска: переустановить SQL сервер, при переустановке не забыть поставить галку на "Компонент Full-Text Search" | |
− | + | * не запущена служба полнотекстового поиска: запустить службу, в параметрах запуска установить Авто | |
− | + | * служба полнотекстового поиска не запускается с ошибкой "Интерфейс не поддерживается", либо такая ошибка выскакивает при поиске: переустановить SQL-сервер | |
− | * | + | * при поиске выдается сообщение об ошибке "Служба не запущена", хотя она запущена, либо какая то еще ошибка: запустить скрипт FullText.sql (если каталог уже существует, будет выдана ошибка, но это не страшно), затем ConvertFtcLng.sql (выдается сообщение: "Внимание! Таблица или индексированное представление "dbo.Docs" имеет столбцы полнотекстового индекса... " - это нормально) |
− | * | ||
− | * | ||
− | |||
Строка 40: | Строка 37: | ||
* "гадит" протокол Общая память: в Диспетчере конфигурации отключить протокол Общая память, включить протокол TCP/IP и перезапустить службу SQL-севера | * "гадит" протокол Общая память: в Диспетчере конфигурации отключить протокол Общая память, включить протокол TCP/IP и перезапустить службу SQL-севера | ||
* нарушается таблица маршрутизации вследствии каких-либо причин (н-р установка подключения к интернет через модем): использовать в качестве имени сервера его ip-адрес | * нарушается таблица маршрутизации вследствии каких-либо причин (н-р установка подключения к интернет через модем): использовать в качестве имени сервера его ip-адрес | ||
+ | * ERRORLOG в папке sql сервера сильно вырос и не может переименоваться на ERRORLOG.1*, для создания нового. Тут, возможно, не хвататает прав на внесение изменений в этой папке(необходимо админам проверить), либо кривая установка SQL сервера(удалить вручную C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG, если не помогло, переустановка). | ||
Строка 66: | Строка 64: | ||
'''A:''' Для устранения данной ошибки можно попробовать: | '''A:''' Для устранения данной ошибки можно попробовать: | ||
− | + | * перерегистрировать OLEDB-компоненты доступа к данным, для чего необходимо выполнить команды в CMD | |
− | |||
− | * перерегистрировать OLEDB-компоненты доступа к данным, для чего необходимо выполнить команды | ||
- regsvr32 "C:\Program Files\Common Files\System\Ole DB\sqloledb.dll" | - regsvr32 "C:\Program Files\Common Files\System\Ole DB\sqloledb.dll" | ||
Строка 75: | Строка 71: | ||
- regsvr32 "C:\Program Files\Common Files\System\ADO\msado15.dll" | - regsvr32 "C:\Program Files\Common Files\System\ADO\msado15.dll" | ||
+ | * если выше указанные действия не помогли, скопировать целиком обе папки OLEDB и ADO с другой машины с АНАЛОГИЧНОЙ операционкой и также перерегистрировать указанные dll-ки | ||
+ | * установить/переустановить SQL сервер на проблемной машине | ||
+ | * если все перечисленные способы не помогли, попробовать сделать откат системы, либо переустановить операционку | ||
Строка 80: | Строка 79: | ||
'''A:''' Ошибка означает, что повторно удаляется или записывается одна и та же запись в таблицу SQL. Лечится перезапуском SQL сервера. | '''A:''' Ошибка означает, что повторно удаляется или записывается одна и та же запись в таблицу SQL. Лечится перезапуском SQL сервера. | ||
+ | |||
+ | |||
+ | '''Q: При подключении базы данных ругается на несоответствующий (ошибочный, и т.д.) лог-файл *.ldf | ||
+ | |||
+ | '''A:''' В этом случае необходимо выполнить ОДИН из скриптов. Естественно указав корректный путь к файлу базы и задав нужное имя БД. При этом сам битый файл *.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 | ||
+ | |||
+ | |||
+ | '''Q: База данных находится в режиме "Подозрительный" | ||
+ | |||
+ | '''A:''' Необходимо выполнить скрипт (заменить везде название базы, если она отличается от 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 | ||
+ | |||
[[Категория:Альта-ГТД]] | [[Категория:Альта-ГТД]] | ||
[[Категория:SQLServer]] | [[Категория:SQLServer]] |
Версия 15:39, 23 января 2013
В данной статье перечислены наиболее часто возникающие ошибки при работе программ в SQL режиме и описаны способы их устранения.
Q: Недопустимое имя объекта DOCS (или DO1DATA)
A: Данная ошибка обычно возникает при первичном подключении к базе данных ГТД.
Для устранения ошибки сделайте следующее:
- Откройте SQL Server Managment Studio, подключитесь к серверу
- Откройте файл (Файл - Открыть - Файл) DOCS.SQL (для DO1DATA - DO1DATA.SQL), который находится в папке UTILS с установленной программой ГТД (при установке по умолчанию это C:\Alta)
- Выберите из списка (рядом с кнопкой Выполнить) базу данных, в которой произошла ошибка
- Нажмите кнопку Выполнить
Q: В Альта-ГТД не работает поиск
A: Возможные проблемы:
- не установлена служба полнотекстового поиска: переустановить SQL сервер, при переустановке не забыть поставить галку на "Компонент Full-Text Search"
- не запущена служба полнотекстового поиска: запустить службу, в параметрах запуска установить Авто
- служба полнотекстового поиска не запускается с ошибкой "Интерфейс не поддерживается", либо такая ошибка выскакивает при поиске: переустановить SQL-сервер
- при поиске выдается сообщение об ошибке "Служба не запущена", хотя она запущена, либо какая то еще ошибка: запустить скрипт FullText.sql (если каталог уже существует, будет выдана ошибка, но это не страшно), затем ConvertFtcLng.sql (выдается сообщение: "Внимание! Таблица или индексированное представление "dbo.Docs" имеет столбцы полнотекстового индекса... " - это нормально)
Q: Невозможно подключиться к серверу с удаленной машины
A: Возможные проблемы:
- брандмауэр windows или установленный антивирус блокирует порт 1433: все отключить и проверить соединение
- на сервере не включен протокол TCP/IP: открыть Диспетчер конфигурации SQL сервер, включить протокол, перезапустить службу SQL-сервера
Q: При работе с программой внезапно теряется подключение к серверу
A: Возможные проблемы:
- "гадит" протокол Общая память: в Диспетчере конфигурации отключить протокол Общая память, включить протокол TCP/IP и перезапустить службу SQL-севера
- нарушается таблица маршрутизации вследствии каких-либо причин (н-р установка подключения к интернет через модем): использовать в качестве имени сервера его ip-адрес
- ERRORLOG в папке sql сервера сильно вырос и не может переименоваться на ERRORLOG.1*, для создания нового. Тут, возможно, не хвататает прав на внесение изменений в этой папке(необходимо админам проверить), либо кривая установка SQL сервера(удалить вручную C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG, если не помогло, переустановка).
Q: На локальной (удаленной) машине невозможно подключиться к SQL-серверу (Сервер не найден)
A: Возможно, установлен именованный instance SQL-сервера: указать в настройках ИМЯ_СЕРВЕРА\ИНСТАНС (обычно это SQLEXPRESS)
Q: Ошибка при создании новой базы данных "Разрешение CREATE DATABASE запрещено в базе данных "master"
A: У пользователя, под которым было произведено подключение к SQL-серверу, нет прав на создание новой базы данных: необходимо залогиниться под пользователем sa или другим пользователем с правами администратора
Q: Ошибка при создании новой базы данных "Ошибка операции CREATE DATABASE. Некоторые из перечисленных имен файлов не были созданы"
A: Проблема: база данных не подключена к серверу, однако сами файлы базы данных по какой то причине присутствуют в системном каталоге DATA SQL-сервера: присоедините базу данных, для чего
- Откройте SQL Server Managment Studio, подключитесь к серверу
- Кликните правой кнопкой мыши по Базам данных, в контекстном меню выберите пункт Присоединить
- В появившемся окне нажмите кнопку Добавить и выберите нужный файл *.mdf, нажмите ОК
- Нажмите ОК
Q: При подключении к базе выдается ошибка "Не удаётся найти указанного поставщика"
A: Для устранения данной ошибки можно попробовать:
- перерегистрировать 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 сервер на проблемной машине
- если все перечисленные способы не помогли, попробовать сделать откат системы, либо переустановить операционку
Q: Locking optimistic failed: user with class identifier...
A: Ошибка означает, что повторно удаляется или записывается одна и та же запись в таблицу SQL. Лечится перезапуском SQL сервера.
Q: При подключении базы данных ругается на несоответствующий (ошибочный, и т.д.) лог-файл *.ldf
A: В этом случае необходимо выполнить ОДИН из скриптов. Естественно указав корректный путь к файлу базы и задав нужное имя БД. При этом сам битый файл *.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
Q: База данных находится в режиме "Подозрительный"
A: Необходимо выполнить скрипт (заменить везде название базы, если она отличается от 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