База 1с sql не запускается
На днях столкнулся с одной ошибкой SQL. Попробовал все варианты исправления, и на уровне 1С и на уровне самого SQL, даже индексы хотел было перестроить. Но помогла банальная перезагрузка (физически) сервера.
Но по пути накопал вот этот список ошибок и их решений. В будущем может пригодиться!
Duplicate key в таблице _1scrdoc
Удаление повторяющихся ключей с помощью метода описанного в статье может не помочь. При пересчете такие записи могут появиться вновь. Для решения проблемы можно применить следующую методику - создаете пустую базу в нее копируете файл конфигурации, заходите в конфигуратор, удаляете все графы отбора, сохраняете, копируете файл конфигурации в рабочую базу, запускаете пересчет служебных данных, восстанавливаете графы отбора. Все должно работать.
Восстановление базы только из MDF
1. Создаем новую базу с таким же именем и такимиже по именам и расположению .mdf и .ldf файлами
2. Останавливаем сервер, подменяем файл .mdf
3. Стартуем сервер, не обращаем внимания на статус базы
4. Из QA выполняем скрипт
Use master
go
sp_configure 'allow updates', 1
reconfigure with override
go
4.Там же выполняем
update sysdatabases set status= 32768 where name = '<db_name>'
5. Перезапускаем SQL Server
6. В принципе база должна быть видна (в emergency mode). Можно, например, заскриптовать все объекты. Заходим в EM, выбираем базу, снимаем галку Restricted access в свойствах базы.
7. Из QA выполняем
DBCC REBUILD_LOG('<db_name>', '<имя нового лога с указанием полного пути>')
SQL Server скажет - Warning: The log for database '<db_name>' has been rebuilt.
8. Если все нормально, то там же выполняем
Use master
go
sp_dboption '<db_name>', 'single_user', 'true'
go
USE <db_name>
GO
DBCC CHECKDB('<db_name>', REPAIR_ALLOW_DATA_LOSS)
go
9. Если все в порядке, то
sp_dboption '<db_name>', 'single_user', 'false'
go
Use master
go
sp_configure 'allow updates', 0
go
Ошибка violation of pirmary key при загрузке в базу УРБД
Симпотмы: При загрузке репликации в переферийную базу, SQL вылетает с ошибкой:
Violation of PRIMARY KEY constraint 'PK_RA4047'. Cannot insert duplicate key in object 'RA4047'
Лечение: Для решения данной проблемы отработана следующая технология. Запускаем SQL Profiler с регистрацией ошибок. Когда появляется ошибка смотрим последние операторы, определяем IDDOC сбойного документа. Проблема в том, что признак проведенности по регистру у документа снят (флаг RF), а движения существуют. Вот и происходит ошибка. Лечение - восстановить флаг RF и признак проведенности документы. Можно конечно удалить движения, но не факт, что это правильно отразится на итогах в регистре.
sp_change_users_login AUTO_FIX, 'user_1c'
"Cannot open user default database". Using master database instead
Какой выбрать сервер/сеть & etc для работы 1С на SQL Server Сервер двухпроцессорный , память минимум 256 (лучше больше, SQL память любит, и юзает ее грамотно)
Как производить проверку, переиндексацию базы на SQL Server
Для пересоздания индексов следует воспользоваться командой: DBCC DBREINDEX ('<имя таблицы>') или запустить хранимую процедуру, которая переиндексирует все таблицы в базе данных: EXEC _1sp_DBReindex
Время от времени возникает проблема "Доступ к базе на сервере возможен только из одного каталога информационной базы". Как лечить?
Диагноз: Такая ошибка возникает при попытке загрузить версию 1С для SQL после того, как один из пользователей некорректно вышел из системы. В редких случаях эта ошибка может быть результатом некорректной установки конфигурации.
Анамнез: После закрытия 1С на сервере NT освобождаются ресурсы, которые занимал пользователь. Однако в случае некорректного завершения работы не останавливается SQL-процесс, запущенный пользователем.
Если пользователи работают по протоколу Named pipes, то можно просто закрыть файлы на SQL-сервере, открытые повисшим пользователем. Такие файлы имеют вид \PIPE\MSSQL$NAMEDSERVER\SQL\query.
Если вышеизложенное слишком сложно для Вас, Вы можете просто перегрузить SQL server. Надо только убедиться, что ни одна другая програма не использует его в этот момент.
Если ошибка возникает постоянно, имеет смысл проверить правильность установки конфигурации: с одной базой данных на сервере пользователи должны работать из одного каталога с конфигурационными файлами. Иначе говоря, не могут одновременно работать две (даже идентичные) конфигурации, размещенные в разных каталогах и ссылающиеся на одну и ту же базу.
Умер SQL, но mdf и ldf-файлы остались. Можно ли поднять базу?
exec sp_attach_db <имя БД>,<путь к файлу *.mdf>,<путь к файлу *.ldf>
Ошибка SQL Server "Cannot resolve collation for equal operation"
Данная ошибка возникает при сравнении полей с различной collation. Подробно описание ошибки можно найти в статье "Transact-SQL ReferenceData TypesCollation Precedence" в Books OnLine. В случае 1С это может быть, например, когда различаются collation вашей рабочей базы и базы tempdb. При первоначальной установке collation базы tempdb устанавливается такой же как у сервера и обычно не меняется. Collation базы выбирается при создании базы, но может быть изменена с помощью команды ALTER DATABASE. Поэтому обычно такая ошибка возникает, когда collation базы первоначально была выбрана отличной от collation сервера. База tempdb используется для создания временных таблиц, в частности, когда используется конструкция "В" в запросе или когда используется отбор по группе в других выборках.
Чтобы устранить эту ошибку нужно поменять либо collation рабочей базы, либо collation сервера. Чтобы поменять collation рабочей базы воспользуйтесь командой ALTER DATABASE COLLATION = collation_сервера. При этом сами данные не изменяются. Поэтому необходимо сначала выгрузить ваши данные, а потом загрузить обратно. Я, например, делал это с помощью инструмента Data Transformation Services (DTS) с помощью задачи переноса объекто SQL Server с сервера на сервер. Для этого нужно создать новую базу с collation равной collation сервера, в параметрах задачи (на рабочем поле кликнете правой клавишой мышки, выберите "Disconnected Edit", затем ветку задач, вашу задачу переноса) нужно указать дополнительную опцию ScriptOptionEx = SQLDMOScript2_70Only(16777216), которая укажет не формировать для каждого поля его collation (чтобы не переносить старую). Затем нужно выполнить задачу. Все. Теперь можете пользоваться новой базой, либо загрузить данные обратно.
Про дополнительную опцию можно прочитать в статье "Data Transformation ServicesUsage Considerations in DTSData Conversion and Transformation Considerations".
Ошибка "Could not continue scan with NOLOCK due to data movement"
В BOL причина ошибки связана с сочетанием блокировки (NOLOCK) и уровнем изоляции (READ UNCOMMITED) таким образом, что при чтении данных некоторые прочитанные страницы могут быть удалены до завершения транзакции. Нам это ничего не дает. Кажется, что проблема связана с проектированием 1С. На самом деле система использует другой уровень изоляции, который не может привести к такой ситуации. Обычно ошибка появляется при разрушении данных. На моей памяти это было в двух случаях. Проверка БД производится как обычно с помощью DBCC CHECKDB. Если данные разрушены, то команда выдаст список объектов, в которых найдены повреждения. Сделайте резервную копию и попытайтесь с помощью все той же DBCC CHECKDB восстановить данные. Если повреждения несерьезные, то восстановление проходит гладко. Если нет, то проще произвести восстановление БД из резервной копии.
Совет. Чтобы не возникало данной ошибки, следите за местом на диске, следите за состоянием вашей дисковой системы, ставьте на сервер ИБП, делайте резервные копии.
Каким образом на клиентской рабочей станции можно настроить сетевой протокол (TCP/IP, Named Pipes и т.д.) взаимодействия с сервером MS SQL?
Для этого нужно воспользоваться вышеупомянутой утилитой Client Network Utility. С помощью нее можно настроить тип протокола (TCP/IP, Named Pipes, Multiprotocol и т.д.), а также ряд дополнительных параметров (например, при успользовании протокола TCP/IP можно указать порт, по которому будет производиться подключение к серверу MS SQL).
Как устранить ошибку "База не может быть открыта в однопользовательском режиме"?
Login failed for user XXX. Reason: Not associated with trusted SQL Server connection
1С поддерживает только смешанный режим подключения к SQL Server. Для установки режима подключения в свойствах сервера на закладке Security выберите Mixed mode.
При выгрузке-загрузке 1С зависает, либо вылетает
Одной из причин (довольно распространенной) является наличие реквизитов неограниченной длины. Например, такие рквизиты обычно присутствуют в общих реквизитах документа (Комментарий). При выгрузке такие реквизиты должны стоять в конце списка реквизитов. Если все же ошибка не устраняется, то поробуйте удалить эти реквизиты и произвести выгрузку-загрузку без них.
И конечно же самое первое, что вы должны сделать перед выгрузкой это тестирование базы. Подробно про переход на весрию SQL 1С (в том числе про выгрузку-загрузку) вы можете прочитать в этой статье.
Восстановление базы данных только из MDF
1. Создаем пустую базу с_тем_же_именем, остановливаем сервер и записываем вместо "родного" файла этой базы свой *.mdf.
2. Запускаем сервер. Он переведет базу в suspect.
3. Выводим базу из состояния suspect:
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
--Для сброса признака suspect выполняем в БД master ХП sp_resetstatus:
update sysdatabases set status=32768 where name='Base_New'
go
--А теперь запретим прямое изменение системных таблиц:
sp_configure 'allow updates',0
go
4. База находится в "emergency mode", поэтому копируем данные из этой базы в новую, используя режим "Copy objects and data, between SQL Server databases".
Автор ответа Джинн, neatmen
База находится в состоянии suspect. Как ее "оживить"?
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
--Для сброса признака suspect выполняем в БД master ХП sp_resetstatus:
update sysdatabases set status=32768 where name='Base_New'
go
--А теперь запретим прямое изменение системных таблиц:
sp_configure 'allow updates',0
go
Проблемы при соединении с SQL Server установленном на Windows 2003 Server
Рассмотрим в материале основные проблемы, из-за которых у пользователя не работает 1С, а также методы их решения.
Лицензия 1С не обнаружена
Означает ошибка следующее: попытка обнаружения лицензии — программного или аппаратного ключа защиты — завершилась неудачей.
Если вы используете аппаратный ключ защиты, убедитесь в доступности менеджера лицензий 1С и его правильной настройке или правильной установке ключа защиты на локальную машину.
Если вы пользуетесь программным ключом защиты, проверьте, правильно ли установлен ключ на локальную машину и доступен ли сервер 1С.
Информационная база не обнаружена
Ошибка «Информационная база не обнаружена» возникает только в клиент-серверном режиме работы 1С. Она означает, клиент 1С не может подключиться к указанной базе данных.
- Убедитесь, что сервер 1С доступен.
- Проверьте, существует ли указанная база данных на сервере 1С.
- Если база присутствует — убедитесь, что в настройках безопасности SQL сервера установлены разрешения для имени пользователя и пароля, под которыми база была добавлены на сервере 1С предприятия.
- Бывают ситуации, когда при восстановлении базы 1С из бекапа в Windows меняется владелец её владелец, для исправления просто выполните рекомендации из предыдущего пункта.
Отсутствует файл базы данных 1С
Ошибка возникает в файловом режиме работы 1C и означает только одно — адресу, который указан в свойствах системы, не найден файл базы данных 1Cv8.1CD. Причин может быть несколько, например:
- Выбранная база данных никогда не запускалась и поэтому в её свойствах указана неверная директория.
- Каталог, указанный в свойствах базы данных, стал недоступен — удалён, перенесен, переименован, запретили сетевой доступ к папке, сеть не доступна и т.д.
- Найдите файл «1Cv8.1CD» либо воспользуйтесь его актуальной копией.
- Поместите файл в нужный каталог по нужному адресу или пропишите новый путь к файлу в настройках 1С: выберите базу, нажмите кнопку «Изменить», в окне «Редактирование информационной базы» укажите каталог.
- Убедитесь, что доступ на чтение этой директории разрешен.
Различаются версии клиента и сервера
Ошибка возникает только в клиент-серверном режиме работы. Это значит, что произошла попытка запуска 1С клиентом, версия которого не соответствует версии сервера.
- Убедитесь, что на компьютере установлена такая же версия программы, как и на сервере.
- Проверьте, чтобы запуск происходил с ярлыка «1cestart.exe» или с ярлыка версии «1cv8.exe», соответствующей версии сервера 1С.
Ошибка при выполнении операции с информационной базой
Ошибку могут вызывать целый ряд причин. Некоторые возможные решения данной проблемы:
- Проверьте статус службы работы с сервером 1С и запустить её, если она остановлена.
- Проверьте режим авторизации. При смешанном режиме эта проблема возникает достаточно часто и лучше использовать обычный.
- Изменить пароль базы на сервере 1С.
- Часто помогает перезапуск сервера в 1С.
- Проверьте настройки сетевого доступа на клиента — ошибка может возникать из-за нестабильной связи или особенности построения сети предприятия.
Ошибка SDBL
Обычно ошибка SDBL происходит при сохранении и обновлении конфигураций, а также во время работы обменов данными.
Варианты исправления ошибки:
- Перезагрузка сервера 1С и SQL-сервера. Самый простой способ, при условии, что на текущий момент в базе никто не работает. Выключите службы «Агент сервера 1С» , «SQL Server» и «Агент SQL Сервера» , а затем просто включите обратно.
- Очистка кэша на сервере и клиента, где проявилась ошибка.
- Выгрузка базы данных в файл формата DT, а затем загрузка его обратно. Войдите в режим «Конфигуратор», выберите пункт меню «Администрирование» > «Выгрузить информационную базу» и выберите каталог для сохранения файла. Затем через аналогично через меню «Администрирование» > «Загрузить информационную базу» загрузите его обратно.
- Тестирование и исправление Информационной базы: войдите в «Конфигуратор», выберите пункт меню «Администрирование» > «Тестирование и исправление».
- Обновление платформы до новой версии.
- Очистка таблиц базы данных «dbo._ConfigChngR» и «dbo._ConfigChngR_ExtProps» скриптом вида:
use имя_базы_данных
delete from dbo._ConfigChngR
delete from dbo._ConfigChngR_ExtProps
Смотрите также материал «Ошибка SDBL в 1С».
Ошибки обновления 1С
В этой категории ошибок большую роль играет то, какая конфигурация и платформа 1С у вас используется. Конкретный релиз конфигурации запустится не на любом релизе платформы.
Основные ошибки, которые могут возникнуть при обновлении конфигурации 1С:
- Файл не содержит доступных обновлений.
- Имя предопределенного элемента не является уникальным.
- Предопределенный элемент отсутствует в данных.
- Ошибка формата потока.
Методы их решения читайте в материале «Ошибки при обновлении 1С».
Что нового для вашей 1С?
Оперативная информация о выходе и содержании свежих для 24 типов конфигураций.Рассылка осуществляется в день выхода обновления. Никакой рекламы, только полезная информация. Посмотрите пример →
Читайте также: