|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Всем доброе время суток! Коллеги, вопрошаю о помощи всемогущий коллективный разум. Итак: Мы, в нашей компании, занимаемся переводом базы 1С ТиС 7.7 (релиз 27) из файлового формата .dbf в формат MSSQL 2000 сервера. Размер базы ~900Mb. Для этого используется стандартная, описанная, процедура данного перевода: через выгрузку-загрузку файла переноса данных базы. Но во время загрузки файла переноса в SQL, Конфигуратор1С стопится с ошибкой от SQLя, принтскрин которой я привожу. На всякий случай вот: --------------------------------------------------------------------------------------------------------------------------------------- SQL State: 23000 Native: 1505 Message: [Microsoft][ODBC SQL Server Driver][SQL Server]CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID2. Most significant primary key is ' 15N '. SQL State: 01000 Native: 3621 Message: [Microsoft][ODBC SQL Server Driver][SQL Server] The statement has been terminated. --------------------------------------------------------------------------------------------------------------------------------------- Телодвижение с пунктом Тестирование и Исправление базы из 1C Конфигуратора- никак на результат не влияет: ошибка не уходит. Cам я не программист 1С и не SQL dba. Я специалист по сетям.. Что можно сделать с базой или ,возможно, с настройками в SQL2000 чтобы попытаться своими силами решить проблему данной ошибки ? Заранее благодарен за любую информацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 16:17 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
похоже база с косяками. попробуйте сначала тестирование в dbf версии запустить ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 16:35 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242, Оно тебе ж написало что есть дубли. Открывай табличку в дбф редакторе и исправляй. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 18:16 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Злой Бобр, какой самый оптимальный редактор посоветуешь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 18:18 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242, Любой. Это дело вкуса. Главное ведь результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 18:20 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
кстати, а как тут понять - какую именно табличку (какой именно .dbf файл) мне открывать в редакторе DBF ? вопрос тупой согласен. но я не знаю структуру таблиц 1С и прочую матчасть конкретно в этой области. благодарю за ответ ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 23:58 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242, В строке состояния пишет "Создание индексов таблицы: Справочник Место". Значит открываем файл 1cv7.dd в базе DBF. Ищем указанный справочник. Будет что-то типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
SC33735 - имя DBF-файла (у вас, конечно, другое имя) Дальше открываем файл подходящим редактором (вполне неплох CDBF), ищем в колонке ID указанное в ошибке значение ключа '15N'. И решаем, что делать с дублирующимися записями. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2016, 07:49 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242кстати, а как тут понять - какую именно табличку (какой именно .dbf файл) мне открывать в редакторе DBF ? вопрос тупой согласен. но я не знаю структуру таблиц 1С и прочую матчасть конкретно в этой области. благодарю за ответ Смотрим в Монитор на чем именно затык. Строка состояния иногда совпадает а иногда нет, поэтому на нее я не смотрю. Описание таблиц в файле 1cv7.dd в каталоге базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2016, 09:19 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Bone serpentSteve242, В строке состояния пишет "Создание индексов таблицы: Справочник Место". Значит открываем файл 1cv7.dd в базе DBF. Ищем указанный справочник. Будет что-то типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Bone serpent, thnx a lot! файл со справочником нашел. нашел также запись ошибочного ключа. Дальше открываем файл подходящим редактором (вполне неплох CDBF), ищем в колонке ID указанное в ошибке значение ключа '15N'. И решаем, что делать с дублирующимися записями. теперь самый основной для меня вопрос: - что мне делать с этой стройкой ? Удалить ? или может как-нибудь отредактировать ?? Это может както деструктивно повлиять на работу 1С в целом и вылезти где-нибудь боком при дальнейшей работе ? привожу принскрин проблемного куска с этим ключом ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 01:54 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Нужно смотреть описание таблиц, точнее раздел их индексов, в аналогичном файле каталога базы подключаемой к SQL (расширение файла dds). Без этого запись трогать не следует!!! Т.к. само значение ' 15N ' поля ID корректно, иначе ТИИ её поймало. Пути решения: 1) Перед выгрузкой из DBF базы удалить этот индекс; 2) Перед повторной загрузкой (возможно какой-то из вариантов и не рабочий, давно всё это было...) 2.1) Файле dds поменять описание индекса на не уникальный; или 2.2) В таблице SQL поменять определение индекса; 3) Но самый правильный - разобраться с данными, но это уже не совсем техническая задача. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 08:16 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242, Твой принт ниочем. Тебе написало что есть дубли. Так что сортируй по ИД и смотри на дубль. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 14:09 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Злой Бобр, ну это я понял.. Что мне дальше делать с этими дублями ? Вопрос: _по какому принципу_ необходимо обрабатывать дубли (я так понял- удалять) ? Какой из дублей нужно оставить, а какой удалить - как это определить вообще ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 15:43 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242, Ну смотри что за информация в записях. Посмотри в справочнике на эти записи. Смотри где задействованы эти ИД. Ну и т.д. Исходя из этого уже и принимаешь решение что делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2016, 16:55 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
AHDPНужно смотреть описание таблиц, точнее раздел их индексов, в аналогичном файле каталога базы подключаемой к SQL (расширение файла dds). Без этого запись трогать не следует!!! Т.к. само значение ' 15N ' поля ID корректно, иначе ТИИ её поймало. Пути решения: 1) Перед выгрузкой из DBF базы удалить этот индекс; 2) Перед повторной загрузкой (возможно какой-то из вариантов и не рабочий, давно всё это было...) 2.1) Файле dds поменять описание индекса на не уникальный; или 2.2) В таблице SQL поменять определение индекса; 3) Но самый правильный - разобраться с данными, но это уже не совсем техническая задача. можно поподробнее: файл с расширением .dds - он где именно находится ? в каталоге с базой для SQLя ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2016, 04:13 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242, Не-не, никакого DDS. Проблема в DBF базе, значит смотрим её и 1CV7.DD Разбираться именно с данными надо. Всё остальное - от лукавого и проблему, на самом деле, не решает. Найти в файле DBF записи с неуникальным идентификатором, по значению полей решить, какая из записей более валидная, лишнюю удалить. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2016, 04:46 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242, Да, в каталоге базы, которая подключена к SQL. Смотрите описание (из каких полей состоит) индекса ID2. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2016, 07:58 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Bone serpentНайти в файле DBF записи с неуникальным идентификатором, по значению полей решить, какая из записей более валидная, лишнюю удалить . Это только если записи полей одинаковые, что бывает не так часто. А то автор по наивности удалит то что не нужно и вазелин ему уже не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2016, 11:44 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
AHDPSteve242, Да, в каталоге базы, которая подключена к SQL. Смотрите описание (из каких полей состоит) индекса ID2. Ну что за очередная глупость. ID2 это не поле, а поле ID и количество дублей 2. Помогать это хорошо, но только помогайте правильно а не дезинформируйте автора - он по ходу совсем зеленый и по наивности верит всему что говорят. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2016, 11:48 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Злой Бобр, Steve242, Прошу прощения, похоже я совсем забыл 7.7. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2016, 14:24 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
друзья, после многочасового секса и курения манов, раскопал в соответствующем таблице .dbf- следующее: см.аттач.. Вопрос: - какую запись из 2х удалять ? как видно на картинке они различаются только лишь значением поля VERSTAMP: H и S (а может это- пятерка?) прочитал про поле VERSTAMP. это типа версия записи во времени. Итак, какой VERSTAMP 'свежее': H или S ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2016, 00:27 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
у одной из записей стоит пометка удаления- в поле ismark стоит звездочка. если возможно то зайти в базу в режиме предприятия и сделать поиск ссылок на эту запись. если есть то заменить на другой, если нет то смело можно удалять ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2016, 09:32 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Базулька.. dbf.. mssql-2000.. 2016.. Спец по сетям в роли dba.. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2016, 09:54 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242, В таком случае удаляйте любую запись, а в VERSTAMP поставьте 0 (как в принте выше). По сути вы кривыми ручками что-то с УРБД накосячили. Я б прошелся по всем справочникам на предмет дублей, прежде чем снова пытаться впихивать все в скуль. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2016, 11:09 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
+ Упс. Немного ошибся. Вторую запись оставляй, VERSTAMP не меняй. Эх, давно это было. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2016, 11:15 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
host.13, да. чем только не приходится заниматься ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2016, 14:33 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
tvmу одной из записей стоит пометка удаления- в поле ismark стоит звездочка. если возможно то зайти в базу в режиме предприятия и сделать поиск ссылок на эту запись. если есть то заменить на другой, если нет то смело можно удалять это я поставил эту пометку. От балды если честно! просто забыл убрать. То есть, можно считать что этой пометки нет.. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2016, 14:36 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Злой Бобр+ Упс. Немного ошибся. Вторую запись оставляй, VERSTAMP не меняй. Эх, давно это было. я правильно понял, что в обсуждаемом нами случае: VERSTAMP S (ну или 5) - валиднее верстампа H ? и его и нужно оставлять, этот S ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2016, 16:11 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242, я правильно понял, что в обсуждаемом нами случае: VERSTAMP S (ну или 5) - валиднее верстампа H ? и его и нужно оставлять, этот S Не факт. Оставлять лучше ту, которой пользовались пользователи. А она, скорее всего первая в физическом порядке записей. Лучше всего ориентироваться по пользовательским полям в DBF (поля SP*). Если одинаковые, всё равно какую запись удалять. Если разные, спросить пользователей, какая актуальней. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2016, 18:07 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242я правильно понял, что в обсуждаемом нами случае: VERSTAMP S (ну или 5) - валиднее верстампа H ? и его и нужно оставлять, этот S Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2016, 23:02 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
ладно. с этим примерно понятно.. а вот ещё такой вопрос. Как известно, классическая архитектура Терминальник +1C77 на SQLe2000 = отдельно сервак под Терминальник с движком 1С, отдельно под сервер SQL. на SQLе в свою очередь базу 1С кладешь на отдельный HDD а логи транзакций скуля - на ещё отдельный hdd, ну или раздел. Вопрос: - куда в этой архитектуре _в идеализированном варианте_ нужно помещать каталог 'скелета' базы 1С (с конфигами и юзерскими папками) ? На сервер Терминалов или на сервер с SQL ? Какие вообще классические технические требования к месту размещения данного каталога ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 04:38 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242, - куда в этой архитектуре _в идеализированном варианте_ нужно помещать каталог 'скелета' базы 1С (с конфигами и юзерскими папками) ? На сервер Терминалов или на сервер с SQL ? На терминал. С точки зрения быстродействия. Замерял разницу в скорости работы автообмена УРБД (как операции, массово пишущей в журнал регистрации). При размере журнала регистрации порядка гига разница во времени сеанса обмена между локальным и сетевым размещением базы была раза в полтора (точно не помню, давно это было). Какие вообще классические технические требования к месту размещения данного каталога ? Классических требований не припоминаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 05:09 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Steve242Как известно, классическая архитектура Терминальник +1C77 на SQLe2000 = отдельно сервак под Терминальник с движком 1С, отдельно под сервер SQL. Если пользователей до 20, то смело можно на одной железке все ставить. Благо сейчас железо на порядок лучше чем раньше было. Плюс SSD сейчас уже по цене вполне доступны для бизнеса (тип памяти SLC и 8+ каналов). Хотя можно обойтись и классическими SAS дисками (если нагрузка небольшая). Steve242на SQLе в свою очередь базу 1С кладешь на отдельный HDD а логи транзакций скуля - на ещё отдельный hdd, ну или раздел. Не совсем так. Сначала делаешь 10 рейд, а потом уже на физически разные диски ложишь. И тут не важно на одной железке все будет или нет - базу и лог разделять нужно всегда. Steve242Вопрос: - куда в этой архитектуре _в идеализированном варианте_ нужно помещать каталог 'скелета' базы 1С (с конфигами и юзерскими папками) ? Нету "идеального" варианта. Ложится на Терминал, а уже положишь ты в програм файл или в другую папку (логический диск) - особой разницы нет. Я обычно ложил на диск D. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 13:16 |
|
SQL2000 отфутболивает при попытке залить в него базульку 1C77 ТиС
|
|||
---|---|---|---|
#18+
Злой БобрSteve242Как известно, классическая архитектура Терминальник +1C77 на SQLe2000 = отдельно сервак под Терминальник с движком 1С, отдельно под сервер SQL. Если пользователей до 20, то смело можно на одной железке все ставить. Благо сейчас железо на порядок лучше чем раньше было. Плюс SSD сейчас уже по цене вполне доступны для бизнеса (тип памяти SLC и 8+ каналов). Хотя можно обойтись и классическими SAS дисками (если нагрузка небольшая). кстати. по поводу SSD.. Купленный примерно два года назад хард SSD OCZ Vertex 450 (из первых партий, когда это только началось) прожил ровно год. потом самозалочился и капут: имели веселый разнообразно-анальный секс с восстановлением данных с этого винта. Гугление проблемы привело к выводу, что это болезнь всей технологии SSD, а не конкретной модели. вопрос: сейчас что-нибудь изменилось в контексте надёжности SSD ? или они по-прежнему ,в среднем примерно год, очень быстро и клёво летают, а потом -3.14сда ? Steve242на SQLе в свою очередь базу 1С кладешь на отдельный HDD а логи транзакций скуля - на ещё отдельный hdd, ну или раздел. Не совсем так. Сначала делаешь 10 рейд, а потом уже на физически разные диски ложишь. И тут не важно на одной железке все будет или нет - базу и лог разделять нужно всегда. ну я примерно так и сделал этот момент. Steve242Вопрос: - куда в этой архитектуре _в идеализированном варианте_ нужно помещать каталог 'скелета' базы 1С (с конфигами и юзерскими папками) ? Нету "идеального" варианта. Ложится на Терминал, а уже положишь ты в програм файл или в другую папку (логический диск) - особой разницы нет. Я обычно ложил на диск D. just the same :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 14:15 |
|
|
start [/forum/topic.php?all=1&fid=28&tid=1518846]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 435ms |
0 / 0 |